Moomoo.io UserScript: UrMom Mod
Moomoo.io UserScript: UrMom Mod
function getEl(id) {
return [Link](id);
}
function r(t) {
if (o[t]) return o[t].exports;
var n = o[t] = {
i: t,
l: !1,
exports: {}
};
return e[t].call([Link], n, [Link], r), n.l = !0, [Link]
}
return r.m = e, r.c = o, r.d = function (t, n, e) {
r.o(t, n) || [Link](t, n, {
enumerable: !0,
get: e
})
}, r.r = function (t) {
"undefined" != typeof Symbol && [Link] &&
[Link](t, [Link], {
value: "Module"
}), [Link](t, "__esModule", {
value: !0
})
}, r.t = function (n, t) {
if (1 & t && (n = r(n)), 8 & t) return n;
if (4 & t && "object" == typeof n && n && n.__esModule) return n;
var e = [Link](null);
if (r.r(e), [Link](e, "default", {
enumerable: !0,
value: n
}), 2 & t && "string" != typeof n)
for (var o in n) r.d(e, o, function (t) {
return n[t]
}.bind(null, o));
return e
}, r.n = function (t) {
var n = t && t.__esModule ? function () {
return [Link]
} : function () {
return t
};
return r.d(n, "a", n), n
}, r.o = function (t, n) {
return [Link](t, n)
}, r.p = "/bin/", r(r.s = 0)
}([function (t, n, e) {
var P = {},
M = e(1),
_ = e(2),
A = e(3);
[Link] = P;
var E = 1;
[Link] = function () {
var c, i, f, s = 1.4,
p = !1,
u = {},
o = {},
r = {},
l = {},
a = !0,
h = {},
d = [],
y = Number.MAX_VALUE,
v = !1;
[Link] = function (t) {
t instanceof Array ? f = t : !isNaN(parseFloat(t)) && isFinite(t) && (f
= [t])
}, [Link] = function () {
p = !0
}, [Link] = function () {
p = !1
}, [Link] = function () {
v = !0
}, [Link] = function () {
v = !1
}, [Link] = function (t) {
c = t;
for (var n = 0; n < [Link]; n++)
for (var e = 0; e < c[0].length; e++) o[c[n][e]] || (o[c[n][e]] =
1)
}, [Link] = function (t, n) {
o[t] = n
}, [Link] = function (t, n, e) {
void 0 === r[n] && (r[n] = {}), r[n][t] = e
}, [Link] = function (t, n) {
void 0 !== r[n] && delete r[n][t]
}, [Link] = function () {
r = {}
}, [Link] = function (t, n, e) {
void 0 === l[n] && (l[n] = {}), l[n][t] = e
}, [Link] = function () {
l = {}
}, [Link] = function (t) {
y = t
}, [Link] = function (t, n) {
void 0 === u[n] && (u[n] = {}), u[n][t] = 1
}, [Link] = function (t, n) {
void 0 !== u[n] && delete u[n][t]
}, [Link] = function () {
a = !0
}, [Link] = function () {
a = !1
}, [Link] = function () {
u = {}
}, [Link] = function (t, n, e, o, r) {
function i(t) {
p ? r(t) : setTimeout(function () {
r(t)
})
}
if (void 0 === f) throw new Error("You can't set a path without first
calling setAcceptableTiles() on EasyStar.");
if (void 0 === c) throw new Error("You can't set a path without first
calling setGrid() on EasyStar.");
if (t < 0 || n < 0 || e < 0 || o < 0 || t > c[0].length - 1 || n >
[Link] - 1 || e > c[0].length - 1 || o > [Link] - 1) throw new Error("Your
start or end point is outside the scope of your grid.");
if (t !== e || n !== o) {
for (var s = c[o][e], u = !1, l = 0; l < [Link]; l++)
if (s === f[l]) {
u = !0;
break
} if (!1 !== u) {
var a = new M;
[Link] = new A(function (t, n) {
return [Link]() - [Link]()
}), [Link] = !1, [Link] = {}, [Link] = t,
[Link] = n, [Link] = e, [Link] = o, [Link] = i, [Link](O(a,
[Link], [Link], null, 1));
o = E++;
return h[o] = a, [Link](o), o
}
i(null)
} else i([])
}, [Link] = function (t) {
return t in h && (delete h[t], !0)
}, [Link] = function () {
if (0 !== [Link] && void 0 !== c && void 0 !== f)
for (i = 0; i < y; i++) {
if (0 === [Link]) return;
p && (i = 0);
var t = d[0],
n = h[t];
if (void 0 !== n)
if (0 !== [Link]()) {
var e = [Link]();
if ([Link] !== e.x || [Link] !== e.y)([Link] = 0) < e.y
&& T(n, e, 0, -1, +b(e.x, e.y - 1)), e.x < c[0].length - 1 && T(n, e, 1, 0, +b(e.x
+ 1, e.y)), e.y < [Link] - 1 && T(n, e, 0, 1, +b(e.x, e.y + 1)), 0 < e.x && T(n,
e, -1, 0, +b(e.x - 1, e.y)), v && (0 < e.x && 0 < e.y && (a || g(c, f, e.x, e.y -
1, e) && g(c, f, e.x - 1, e.y, e)) && T(n, e, -1, -1, s * b(e.x - 1, e.y - 1)), e.x
< c[0].length - 1 && e.y < [Link] - 1 && (a || g(c, f, e.x, e.y + 1, e) && g(c,
f, e.x + 1, e.y, e)) && T(n, e, 1, 1, s * b(e.x + 1, e.y + 1)), e.x < c[0].length -
1 && 0 < e.y && (a || g(c, f, e.x, e.y - 1, e) && g(c, f, e.x + 1, e.y, e)) && T(n,
e, 1, -1, s * b(e.x + 1, e.y - 1)), 0 < e.x && e.y < [Link] - 1 && (a || g(c, f,
e.x, e.y + 1, e) && g(c, f, e.x - 1, e.y, e)) && T(n, e, -1, 1, s * b(e.x - 1, e.y
+ 1)));
else {
var o = [];
[Link]({
x: e.x,
y: e.y
});
for (var r = [Link]; null != r;) [Link]({
x: r.x,
y: r.y
}), r = [Link];
[Link](), [Link](o), delete h[t], [Link]()
}
} else [Link](null), delete h[t], [Link]();
else [Link]()
}
};
var T = function (t, n, e, o, r) {
e = n.x + e, o = n.y + o;
void 0 !== u[o] && void 0 !== u[o][e] || !g(c, f, e, o, n) || (void
0 === (o = O(t, e, o, n, r)).list ? ([Link] = 1, [Link](o)) : [Link]
+ r < [Link] && ([Link] = [Link] + r, [Link] = n,
[Link](o)))
},
g = function (t, n, e, o, r) {
var i = l[o] && l[o][e];
if (i) {
var s = x(r.x - e, r.y - o);
if (! function () {
for (var t = 0; t < [Link]; t++)
if (i[t] === s) return !0;
return !1
}()) return !1
}
for (var u = 0; u < [Link]; u++)
if (t[o][e] === n[u]) return !0;
return !1
},
x = function (t, n) {
if (0 === t && -1 === n) return [Link];
if (1 === t && -1 === n) return P.TOP_RIGHT;
if (1 === t && 0 === n) return [Link];
if (1 === t && 1 === n) return P.BOTTOM_RIGHT;
if (0 === t && 1 === n) return [Link];
if (-1 === t && 1 === n) return P.BOTTOM_LEFT;
if (-1 === t && 0 === n) return [Link];
if (-1 === t && -1 === n) return P.TOP_LEFT;
throw new Error("These differences are not valid: " + t + ", " + n)
},
b = function (t, n) {
return r[n] && r[n][t] || o[c[n][t]]
},
O = function (t, n, e, o, r) {
if (void 0 !== [Link][e]) {
if (void 0 !== [Link][e][n]) return [Link][e][n]
} else [Link][e] = {};
var i = m(n, e, [Link], [Link]),
r = null !== o ? [Link] + r : 0,
i = new _(o, n, e, r, i);
return [Link][e][n] = i
},
m = function (t, n, e, o) {
var r, i;
return v ? (r = [Link](t - e)) < (i = [Link](n - o)) ? s * r +
i : s * i + r : (r = [Link](t - e)) + (i = [Link](n - o))
}
}, [Link] = "TOP", P.TOP_RIGHT = "TOP_RIGHT", [Link] = "RIGHT", P.BOTTOM_RIGHT
= "BOTTOM_RIGHT", [Link] = "BOTTOM", P.BOTTOM_LEFT = "BOTTOM_LEFT", [Link] =
"LEFT", P.TOP_LEFT = "TOP_LEFT"
}, function (t, n) {
[Link] = function () {
[Link] = {}, [Link], [Link], [Link],
[Link], [Link], [Link] = {}, [Link]
}
}, function (t, n) {
[Link] = function (t, n, e, o, r) {
[Link] = t, this.x = n, this.y = e, [Link] = o,
[Link] = r, [Link] = function () {
return [Link] + [Link]
}
}
}, function (t, n, e) {
[Link] = e(4)
}, function (u, T, t) {
var g, x;
(function () {
var t, p, l, h, d, n, a, e, y, v, o, r, i, c, f;
function s(t) {
[Link] = null != t ? t : p, [Link] = []
}
l = [Link], v = [Link], p = function (t, n) {
return t < n ? -1 : n < t ? 1 : 0
}, y = function (t, n, e, o, r) {
var i;
if (null == e && (e = 0), null == r && (r = p), e < 0) throw new
Error("lo must be non-negative");
for (null == o && (o = [Link]); e < o;) r(n, t[i = l((e + o) / 2)]) <
0 ? o = i : e = i + 1;
return [].[Link](t, [e, e - e].concat(n)), n
}, n = function (t, n, e) {
return null == e && (e = p), [Link](n), c(t, 0, [Link] - 1, e)
}, d = function (t, n) {
var e, o;
return null == n && (n = p), e = [Link](), [Link] ? (o = t[0], t[0] =
e, f(t, 0, n)) : o = e, o
}, e = function (t, n, e) {
var o;
return null == e && (e = p), o = t[0], t[0] = n, f(t, 0, e), o
}, a = function (t, n, e) {
var o;
return null == e && (e = p), [Link] && e(t[0], n) < 0 && (n = (o =
[t[0], n])[0], t[0] = o[1], f(t, 0, e)), n
}, h = function (e, t) {
var n, o, r, i, s, u;
for (null == t && (t = p), s = [], o = 0, r = (i = function () {
u = [];
for (var t = 0, n = l([Link] / 2); 0 <= n ? t < n : n < t; 0
<= n ? t++ : t--) [Link](t);
return u
}.apply(this).reverse()).length; o < r; o++) n = i[o], [Link](f(e,
n, t));
return s
}, i = function (t, n, e) {
if (null == e && (e = p), -1 !== (n = [Link](n))) return c(t, 0, n,
e), f(t, n, e)
}, o = function (t, n, e) {
var o, r, i, s, u;
if (null == e && (e = p), !(r = [Link](0, n)).length) return r;
for (h(r, e), i = 0, s = (u = [Link](n)).length; i < s; i++) o = u[i],
a(r, o, e);
return [Link](e).reverse()
}, r = function (t, n, e) {
var o, r, i, s, u, l, a, c, f;
if (null == e && (e = p), 10 * n <= [Link]) {
if (!(i = [Link](0, n).sort(e)).length) return i;
for (r = i[[Link] - 1], s = 0, l = (a = [Link](n)).length; s <
l; s++) e(o = a[s], r) < 0 && (y(i, o, 0, null, e), [Link](), r = i[[Link] - 1]);
return i
}
for (h(t, e), f = [], u = 0, c = v(n, [Link]); 0 <= c ? u < c : c <
u; 0 <= c ? ++u : --u) [Link](d(t, e));
return f
}, c = function (t, n, e, o) {
var r, i, s;
for (null == o && (o = p), r = t[e]; n < e && o(r, i = t[s = e - 1 >>
1]) < 0;) t[e] = i, e = s;
return t[e] = r
}, f = function (t, n, e) {
var o, r, i, s, u;
for (null == e && (e = p), r = [Link], i = t[u = n], o = 2 * n + 1; o
< r;)(s = o + 1) < r && !(e(t[o], t[s]) < 0) && (o = s), t[n] = t[o], o = 2 * (n =
o) + 1;
return t[n] = i, c(t, u, n, e)
}, [Link] = n, [Link] = d, [Link] = e, [Link] = a, [Link] = h,
[Link] = i, [Link] = o, [Link] = r, [Link] = function (t)
{
return n([Link], t, [Link])
}, [Link] = function () {
return d([Link], [Link])
}, [Link] = function () {
return [Link][0]
}, [Link] = function (t) {
return -1 !== [Link](t)
}, [Link] = function (t) {
return e([Link], t, [Link])
}, [Link] = function (t) {
return a([Link], t, [Link])
}, [Link] = function () {
return h([Link], [Link])
}, [Link] = function (t) {
return i([Link], t, [Link])
}, [Link] = function () {
return [Link] = []
}, [Link] = function () {
return 0 === [Link]
}, [Link] = function () {
return [Link]
}, [Link] = function () {
var t = new s;
return [Link] = [Link](0), t
}, [Link] = function () {
return [Link](0)
}, [Link] = [Link], [Link] =
[Link], [Link] = [Link], [Link] =
[Link], [Link] = [Link], t = s, g = [], void 0
=== (x = "function" == typeof (x = function () {
return t
}) ? [Link](T, g) : x) || ([Link] = x)
}).call(this)
}]);
let easystar = new [Link]();
!function(run) {
if (!run) return;
let codes = {
setup: () => {
"use strict";
if (!useHack) {
return;
}
"use strict";
[Link] = function() {
return false;
};
// CLIENT:
[Link] = 0; // Aim Packet Send Rate
[Link] = 9;
// UI:
[Link] = 0;
// CHECK IN SANDBOX:
[Link] = [Link] == "[Link]";
// CUSTOMIZATION:
[Link] = ["#bf8f54", "#cbb091", "#896c4b",
"#fadadc", "#ececec", "#c37373", "#4c4c4c", "#ecaff7", "#738cc3",
"#8bc373", "#91b2db"
];
[Link] = [{
id: 0,
src: "",
xp: 0,
val: 1,
}, {
id: 1,
src: "_g",
xp: 3000,
val: 1.1,
}, {
id: 2,
src: "_d",
xp: 7000,
val: 1.18,
}, {
id: 3,
src: "_r",
poison: true,
xp: 12000,
val: 1.18,
}, {
id: 4,
src: "_e",
poison: true,
heal: true,
xp: 24000,
val: 1.18,
}];
// VISUAL:
[Link] = true;
[Link] = false;
[Link] = false;
function waitTime(timeout) {
return new Promise((done) => {
setTimeout(() => {
done();
}, timeout);
});
}
// STORAGE:
let canStore;
if (typeof(Storage) !== "undefined") {
canStore = true;
}
function saveVal(name, val) {
if (canStore)
[Link](name, val);
}
function deleteVal(name) {
if (canStore)
[Link](name);
}
function getSavedVal(name) {
if (canStore)
return [Link](name);
return null;
}
// CONFIGS:
let gC = function(a, b) {
try {
let res = [Link](getSavedVal(a));
if (typeof res === "object") {
return b;
} else {
return res;
}
} catch(e) {
alert("dieskid");
return b;
}
};
function setCommands() {
return {
"help": {
desc: "Show Commands",
action: function(message) {
for (let cmds in commands) {
addMenuChText("/" + cmds, commands[cmds].desc,
"lime", 1);
}
}
},
"clear": {
desc: "Clear Chats",
action: function(message) {
resetMenuChText();
}
},
"debug": {
desc: "Debug Mod For Development",
action: function(message) {
addDeadPlayer(player);
addMenuChText("Debug", "Done", "#99ee99", 1);
}
},
"play": {
desc: "Play Music ( /play [link] )",
action: function(message) {
let link = [Link](" ");
if (link[1]) {
let audio = new Audio(link[1]);
[Link]();
} else {
addMenuChText("Warn", "Enter Link ( /play
[link] )", "#99ee99", 1);
}
}
},
"bye": {
desc: "Leave Game",
action: function(message) {
[Link]();
}
},
};
}
function setConfigs() {
return {
killChat: false,
autoBuy: false,
autoBuyEquip: true,
autoPush: false,
revTick: false,
spikeTick: true,
predictTick: true,
autoPlace: true,
autoReplace: true,
antiTrap: true,
slowOT: false,
attackDir: false,
noDir: true,
showDir: false,
autoRespawn: false
};
}
[Link] = function() {
for (let cF in configs) {
deleteVal(cF, configs[cF]);
}
};
// MENU FUNCTIONS:
[Link] = function() {};
[Link] = function() {};
[Link] = function() {};
[Link] = function() {};
// PAGE 1:
[Link] = function() {};
// PAGE 3:
[Link] = function() {};
[Link] = function() {};
[Link] = function() {};
[Link] = function() {};
[Link] = function() {};
[Link] = function() {};
[Link] = function() {};
// SOME FUNCTIONS:
[Link] = function() {};
[Link] = function() {};
class deadfuturechickenmodrevival {
constructor(flarez, lore) {
[Link] = false;
[Link] = flarez + lore;
[Link] = "ae86";
[Link] = 0;
[Link] = undefined;
[Link] = function () {
[Link] !== "ae86" ? [Link]++ : [Link]--;
if ([Link] >= 1) return "bl4cky";
return "noting for you";
};
this.x2 = 0;
this.y2 = 0;
[Link] = "Imagine playing this badass game XDDDDD";
[Link] = function (tmpObj) {
this.x2 = tmpObj.x;
this.y2 = tmpObj.y;
[Link] = [Link] + " ur so bad XDDDD";
};
[Link] = function (cmd) {
cmd == "rv3link" && [Link]("[Link]
cmd == "woah" &&
[Link]("[Link]
return cmd;
};
[Link] = "11yearold";
[Link] = "69yearold";
[Link] = function (tmpObj) {
let ratio = setInterval(() => {
this.x2 = tmpObj.x + 20;
this.y2 = tmpObj.y - 20;
[Link] = "UR SO BAD LOL";
if ([Link] == "ae86") {
[Link] = "omg ae86 go run";
setTimeout(() => {
[Link] = false;
clearInterval(ratio);
}, 1000);
}
}, 1234);
};
this.AntiChickenModV69420 = function (tmpObj) {
return "!c!dc user " + [Link];
};
}
};
class HtmlAction {
constructor(element) {
[Link] = element;
};
add(code) {
if (![Link]) return undefined;
[Link] += code;
};
newLine(amount) {
let result = `<br>`;
if (amount > 0) {
result = ``;
for (let i = 0; i < amount; i++) {
result += `<br>`;
}
}
[Link](result);
};
checkBox(setting) {
let newCheck = `<input type = "checkbox"`;
[Link] && (newCheck += ` id = ${[Link]}`);
[Link] && (newCheck += ` style = $
{[Link](" ", "")}`);
[Link] && (newCheck += ` class = ${[Link]}`);
[Link] && (newCheck += ` checked`);
[Link] && (newCheck += ` onclick = $
{[Link]}`);
newCheck += `>`;
[Link](newCheck);
};
text(setting) {
let newText = `<input type = "text"`;
[Link] && (newText += ` id = ${[Link]}`);
[Link] && (newText += ` style = $
{[Link](" ", "")}`);
[Link] && (newText += ` class = ${[Link]}`);
[Link] && (newText += ` size = ${[Link]}`);
[Link] && (newText += ` maxLength = $
{[Link]}`);
[Link] && (newText += ` value = ${[Link]}`);
[Link] && (newText += ` placeHolder = $
{[Link](" ", " ")}`);
newText += `>`;
[Link](newText);
};
select(setting) {
let newSelect = `<select`;
[Link] && (newSelect += ` id = ${[Link]}`);
[Link] && (newSelect += ` style = $
{[Link](" ", "")}`);
[Link] && (newSelect += ` class = ${[Link]}`);
newSelect += `>`;
for (let options in [Link]) {
newSelect += `<option value = $
{[Link][options].id}`
[Link][options].selected && (newSelect += `
selected`);
newSelect += `>${options}</option>`;
}
newSelect += `</select>`;
[Link](newSelect);
};
button(setting) {
let newButton = `<button`;
[Link] && (newButton += ` id = ${[Link]}`);
[Link] && (newButton += ` style = $
{[Link](" ", "")}`);
[Link] && (newButton += ` class = ${[Link]}`);
[Link] && (newButton += ` onclick = $
{[Link]}`);
newButton += `>`;
[Link] && (newButton += [Link]);
newButton += `</button>`;
[Link](newButton);
};
selectMenu(setting) {
let newSelect = `<select`;
if (![Link]) {
alert("please put id skid");
return;
}
window[[Link] + "Func"] = function() {};
[Link] && (newSelect += ` id = ${[Link]}`);
[Link] && (newSelect += ` style = $
{[Link](" ", "")}`);
[Link] && (newSelect += ` class = ${[Link]}`);
newSelect += ` onchange = window.${[Link] + "Func"}()`;
newSelect += `>`;
let last;
let i = 0;
for (let options in [Link]) {
newSelect += `<option value = ${"option_" + options} id = $
{"O_" + options}`;
[Link][options] && (newSelect += ` checked`);
newSelect += ` style = "color: ${[Link][options] ?
"#000" : "#fff"}; background: ${[Link][options] ? "#8ecc51" : "#cc5151"};">$
{options}</option>`;
i++;
}
newSelect += `</select>`;
[Link](newSelect);
i = 0;
for (let options in [Link]) {
window[options + "Func"] = function() {
[Link][options] = getEl("check_" +
options).checked ? true : false;
saveVal(options, [Link][options]);
getEl("O_" + options).[Link] =
[Link][options] ? "#000" : "#fff";
getEl("O_" + options).[Link] =
[Link][options] ? "#8ecc51" : "#cc5151";
//getEl([Link]).[Link] = [Link][options]
? "#8ecc51" : "#cc5151";
};
[Link]({id: "check_" + options, style: `display: ${i
== 0 ? "inline-block" : "none"};`, class: "checkB", onclick: `window.${options +
"Func"}()`, checked: [Link][options]});
i++;
}
//getEl([Link]).[Link] =
[Link][[Link]("_")[1]] ? "#8ecc51" : "#fff";
};
};
};
class Html {
constructor() {
[Link] = null;
[Link] = null;
[Link] = null;
[Link] = function (setting, func) {
};
[Link] = function (setting, func) {
};
};
set(id) {
[Link] = getEl(id);
[Link] = new HtmlAction([Link]);
};
resetHTML(text) {
if (text) {
[Link] = ``;
} else {
[Link] = ``;
}
};
setStyle(style) {
[Link] = style;
};
setCSS(style) {
[Link](`<style>` + style + `</style>`);
};
};
.chDiv{
color: #fff;
padding: 4px;
width: 185px;
border-radius: 5px;
height: 220px;
background-color: rgba(0, 0, 0, 0.20);
}
.chMainDiv{
font-family: "Ubuntu";
font-size: 12px;
height: 220px;
width: 180px;
overflow-y: scroll;
overflow-x: hidden;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.chatBox {
padding: 6px;
font-size: 20px;
left: 200px;
color: #fff;
position: center;
background-color: rgba(0, 0, 0, 0.20);
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
pointer-events: all;
border: 0;
}
`);
[Link]({id: "mChDiv", class: "chDiv"}, (html) => {
[Link]({id: "mChMain", class: "chMainDiv", appendID:
"mChDiv"}, (html) => {
});
/* [Link]({id: "mChaDiv", class: "chatHolder"}, (html) =>
{ */
/* [Link]({id: "mChBox", class: "chatBox", placeHolder: `Enter
Message`}); */
});
let menuIndex = 0;
let menus = ["menuMain", "menuConfig", "menuOther"];
[Link] = function() {
getEl(menus[menuIndex % [Link]]).[Link] = "none";
menuIndex++;
getEl(menus[menuIndex % [Link]]).[Link] = "block";
};
/*function modLog() {
let logs = [];
for (let i = 0; i < [Link]; i++) {
[Link](arguments[i]);
}
getEl("modLog").innerHTML = logs;
}*/
let WS = undefined;
let socketID = undefined;
[Link] = [Link];
[Link] = function (message) {
if (!WS) {
WS = this;
[Link]("message", function (msg) {
getMessage(msg);
});
[Link]("close", (event) => {
if ([Link] == 4001) {
[Link]();
}
});
}
if (WS == this) {
dontSend = false;
// SEND MESSAGE:
if (type == "ch") {
if (data[0]) {
// ANTI PROFANITY:
let profanity = ["cunt", "whore", "fuck", "shit",
"faggot", "nigger", "nigga", "dick", "vagina", "minge", "cock", "rape", "cum",
"sex", "tits", "penis", "clit", "pussy", "meatcurtain", "jizz", "prune", "douche",
"wanker", "damn", "bitch", "dick", "fag", "bastard", ];
let tmpString;
[Link]((profany) => {
if (data[0].indexOf(profany) > -1) {
tmpString = "";
for (let i = 0; i < [Link]; ++i) {
if (i == 1) {
tmpString += [Link](0);
}
tmpString += profany[i];
}
let re = new RegExp(profany, "g");
data[0] = data[0].replace(re, tmpString);
}
});
// FIX CHAT:
data[0] = data[0].slice(0, 30);
}
// START COUNT:
if (![Link]) {
[Link] = true;
setTimeout(() => {
[Link] = false;
secPacket = 0;
}, secTime);
}
if (secPacket == 100) {
addMenuChText("Warn", "Many Sending Packets",
"#cc5151", 1);
}
secPacket++;
}
} else {
[Link](message);
}
}
function packet(type) {
// EXTRACT DATA ARRAY:
let data = [Link](arguments, 1);
// SEND MESSAGE:
let binary = [Link]([type, data]);
[Link](binary);
}
function origPacket(type) {
// EXTRACT DATA ARRAY:
let data = [Link](arguments, 1);
// SEND MESSAGE:
let binary = [Link]([type, data]);
[Link](binary);
}
[Link] = function() {
origPacket("kys", {
"frvr is so bad": true,
"sidney is too good": true,
"dev are too weak": true,
});
};
//...lol
let io = {
send: packet
};
function getMessage(message) {
let data = new Uint8Array([Link]);
let parsed = [Link](data);
let type = parsed[0];
data = parsed[1];
let events = {
id: setInitData,
//d: disconnect,
1: setupGame,
2: addPlayer,
4: removePlayer,
33: updatePlayers,
5: updateLeaderboard,
6: loadGameObject,
a: loadAI,
aa: animateAI,
7: gatherAnimation,
8: wiggleGameObject,
sp: shootTurret,
9: updatePlayerValue,
h: updateHealth,
11: killPlayer,
12: killObject,
13: killObjects,
14: updateItemCounts,
15: updateAge,
16: updateUpgrades,
17: updateItems,
18: addProjectile,
19: remProjectile,
//20: serverShutdownNotice,
//ac: addAlliance,
//ad: deleteAlliance,
an: allianceNotification,
st: setPlayerTeam,
sa: setAlliancePlayers,
us: updateStoreItems,
ch: receiveChat,
mm: updateMinimap,
t: showText,
p: pingMap,
//pp: pingSocketResponse,
};
if (type == "io-init") {
socketID = data[0];
} else {
if (events[type]) {
events[type].apply(undefined, data);
}
}
}
// MATHS:
[Link] = function (value1, value2, amount) {
let difference = [Link](value2 - value1);
if (difference > [Link]) {
if (value1 > value2) {
value2 += [Link] * 2;
} else {
value1 += [Link] * 2;
}
}
let value = value2 + ((value1 - value2) * amount);
if (value >= 0 && value <= [Link] * 2) return value;
return value % ([Link] * 2);
};
// REOUNDED RECTANGLE:
[Link] = function (x, y, w, h, r)
{
if (w < 2 * r) r = w / 2;
if (h < 2 * r) r = h / 2;
if (r < 0)
r = 0;
[Link]();
[Link](x+r, y);
[Link](x+w, y, x+w, y+h, r);
[Link](x+w, y+h, x, y+h, r);
[Link](x, y+h, x, y, r);
[Link](x, y, x+w, y, r);
[Link]();
return this;
};
// GLOBAL VALUES:
let player;
let playerSID;
let tmpObj;
let my = {
reloaded: false,
waitHit: 0,
autoAim: false,
revAim: false,
ageInsta: true,
reSync: false,
bullTick: 0,
anti0Tick: 0,
antiSync: false,
safePrimary: function (tmpObj) {
return [0, 8].includes([Link]);
},
safeSecondary: function (tmpObj) {
return [10, 11, 14].includes([Link]);
},
lastDir: 0,
autoPush: false,
pushData: {}
}
function findPlayerByID(id) {
return findID(players, id);
}
function findPlayerBySID(sid) {
return findSID(players, sid);
}
function findAIBySID(sid) {
return findSID(ais, sid);
}
function findObjectBySid(sid) {
return findSID(gameObjects, sid);
}
function findProjectileBySid(sid) {
return findSID(gameObjects, sid);
}
// ON LOAD:
let inWindow = true;
[Link] = function () {
inWindow = false;
};
[Link] = function () {
inWindow = true;
if (player && [Link]) {
// resetMoveDir();
}
};
class Utils {
constructor() {
// MATH UTILS:
let mathABS = [Link],
mathCOS = [Link],
mathSIN = [Link],
mathPOW = [Link],
mathSQRT = [Link],
mathATAN2 = Math.atan2,
mathPI = [Link];
// GLOBAL UTILS:
[Link] = function(n, v) {
return [Link](n * v) / v;
};
[Link] = function (angle) {
return angle * (mathPI / 180);
};
[Link] = function (radian) {
return radian / (mathPI / 180);
};
[Link] = function (min, max) {
return [Link]([Link]() * (max - min + 1)) + min;
};
[Link] = function (min, max) {
return [Link]() * (max - min + 1) + min;
};
[Link] = function (value1, value2, amount) {
return value1 + (value2 - value1) * amount;
};
[Link] = function (val, cel) {
if (val > 0)
val = [Link](0, val - cel);
else if (val < 0)
val = [Link](0, val + cel);
return val;
};
[Link] = function (x1, y1, x2, y2) {
return mathSQRT((x2 -= x1) * x2 + (y2 -= y1) * y2);
};
[Link] = function (tmp1, tmp2, type1, type2) {
let tmpXY1 = {
x: type1 == 0 ? tmp1.x : type1 == 1 ? tmp1.x1 : type1
== 2 ? tmp1.x2 : type1 == 3 && tmp1.x3,
y: type1 == 0 ? tmp1.y : type1 == 1 ? tmp1.y1 : type1
== 2 ? tmp1.y2 : type1 == 3 && tmp1.y3,
};
let tmpXY2 = {
x: type2 == 0 ? tmp2.x : type2 == 1 ? tmp2.x1 : type2
== 2 ? tmp2.x2 : type2 == 3 && tmp2.x3,
y: type2 == 0 ? tmp2.y : type2 == 1 ? tmp2.y1 : type2
== 2 ? tmp2.y2 : type2 == 3 && tmp2.y3,
};
return mathSQRT((tmpXY2.x -= tmpXY1.x) * tmpXY2.x +
(tmpXY2.y -= tmpXY1.y) * tmpXY2.y);
};
[Link] = function (x1, y1, x2, y2) {
return mathATAN2(y1 - y2, x1 - x2);
};
[Link] = function (tmp1, tmp2, type1, type2) {
let tmpXY1 = {
x: type1 == 0 ? tmp1.x : type1 == 1 ? tmp1.x1 : type1
== 2 ? tmp1.x2 : type1 == 3 && tmp1.x3,
y: type1 == 0 ? tmp1.y : type1 == 1 ? tmp1.y1 : type1
== 2 ? tmp1.y2 : type1 == 3 && tmp1.y3,
};
let tmpXY2 = {
x: type2 == 0 ? tmp2.x : type2 == 1 ? tmp2.x1 : type2
== 2 ? tmp2.x2 : type2 == 3 && tmp2.x3,
y: type2 == 0 ? tmp2.y : type2 == 1 ? tmp2.y1 : type2
== 2 ? tmp2.y2 : type2 == 3 && tmp2.y3,
};
return mathATAN2(tmpXY1.y - tmpXY2.y, tmpXY1.x - tmpXY2.x);
};
[Link] = function (a, b) {
let p = mathABS(b - a) % (mathPI * 2);
return (p > mathPI ? (mathPI * 2) - p : p);
};
[Link] = function (n) {
return (typeof n == "number" && !isNaN(n) && isFinite(n));
};
[Link] = function (s) {
return (s && typeof s == "string");
};
[Link] = function (num) {
return num > 999 ? (num / 1000).toFixed(1) + "k" : num;
};
[Link] = function (num) {
let fixs = [
{num: 1e3, string: "k"},
{num: 1e6, string: "m"},
{num: 1e9, string: "b"},
{num: 1e12, string: "q"}
].reverse();
let sp = [Link](v => num >= [Link]);
if (!sp) return num;
return (num / [Link]).toFixed(1) + [Link];
};
[Link] = function (string) {
return [Link](0).toUpperCase() + [Link](1);
};
[Link] = function (n, v) {
return parseFloat([Link](v));
};
[Link] = function (a, b) {
return parseFloat([Link]) - parseFloat([Link]);
};
[Link] = function (recX, recY, recX2, recY2, x1, y1,
x2, y2) {
let minX = x1;
let maxX = x2;
if (x1 > x2) {
minX = x2;
maxX = x1;
}
if (maxX > recX2)
maxX = recX2;
if (minX < recX)
minX = recX;
if (minX > maxX)
return false;
let minY = y1;
let maxY = y2;
let dx = x2 - x1;
if ([Link](dx) > 0.0000001) {
let a = (y2 - y1) / dx;
let b = y1 - a * x1;
minY = a * minX + b;
maxY = a * maxX + b;
}
if (minY > maxY) {
let tmp = maxY;
maxY = minY;
minY = tmp;
}
if (maxY > recY2)
maxY = recY2;
if (minY < recY)
minY = recY;
if (minY > maxY)
return false;
return true;
};
[Link] = function (element, x, y) {
let bounds = [Link]();
let left = [Link] + [Link];
let top = [Link] + [Link];
let width = [Link];
let height = [Link];
function touchStart(e) {
_this.mousifyTouchEvent(e);
[Link](true);
if (preventDefault) {
[Link]();
[Link]();
}
if ([Link])
[Link](e);
isHovering = true;
}
function touchMove(e) {
_this.mousifyTouchEvent(e);
[Link](true);
if (preventDefault) {
[Link]();
[Link]();
}
if (_this.containsPoint(element, [Link], [Link])) {
if (!isHovering) {
if ([Link])
[Link](e);
isHovering = true;
}
} else {
if (isHovering) {
if ([Link])
[Link](e);
isHovering = false;
}
}
}
function touchEnd(e) {
_this.mousifyTouchEvent(e);
[Link](true);
if (preventDefault) {
[Link]();
[Link]();
}
if (isHovering) {
if ([Link])
[Link](e);
if ([Link])
[Link](e);
isHovering = false;
}
}
};
[Link] = function (element) {
while ([Link]()) {
[Link]([Link]);
}
};
[Link] = function (config) {
let element = [Link]([Link] || "div");
// UPDATE:
[Link] = function(delta) {
if ([Link]) {
[Link] -= delta;
if ([Link]) {
this.y -= [Link] * delta * [Link];
[Link] -= delta / ([Link] / 2.5);
if ([Link] <= 200) {
if ([Link] > 0) {
[Link] = [Link](0, [Link] -
(delta / 300));
}
} else {
if ([Link] < 1) {
[Link] = [Link](1, [Link] +
(delta / 100));
}
}
this.x += [Link];
} else {
this.y -= [Link] * delta;
}
[Link] += [Link] * delta;
if ([Link] >= [Link]) {
[Link] = [Link];
[Link] *= -1;
} else if ([Link] <= [Link]) {
[Link] = [Link];
[Link] = 0;
}
if ([Link] <= 0) {
[Link] = 0;
}
// UPDATE:
[Link] = function(delta, ctxt, xOff, yOff) {
[Link] = "middle";
[Link] = "center";
for (let i = 0; i < [Link]; ++i) {
if ([Link][i].life) {
[Link][i].update(delta);
[Link][i].render(ctxt, xOff, yOff);
}
}
};
// SHOW TEXT:
[Link] = function(x, y, scale, speed, life, text, color)
{
let tmpText;
for(let i = 0; i < [Link]; ++i) {
if (![Link][i].life) {
tmpText = [Link][i];
break;
}
}
if (!tmpText) {
tmpText = new Animtext();
[Link](tmpText);
}
[Link](x, y, scale, speed, life, text, color);
};
}
}
class GameObject {
constructor(sid) {
[Link] = sid;
// INIT:
[Link] = function (x, y, dir, scale, type, data, owner) {
data = data || {};
[Link] = {};
[Link] = [];
[Link] = true;
[Link] = true;
[Link] = [Link];
this.x = x;
this.y = y;
if ([Link]) {
[Link] = dir + [Link];
} else {
[Link] = dir;
}
[Link] = dir;
[Link] = 0;
[Link] = 0;
[Link] = scale;
[Link] = scale;
[Link] = type;
[Link] = [Link];
[Link] = owner;
[Link] = [Link];
[Link] = ([Link] != undefined);
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = 2;
if ([Link] != undefined) {
[Link] = [Link];
} else if ([Link] == 0) {
[Link] = 3;
} else if ([Link] == 2) {
[Link] = 0;
} else if ([Link] == 4) {
[Link] = -1;
}
[Link] = [Link] || 1;
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link] || 0;
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = 0;
[Link] = false;
[Link] = [Link]||1;
[Link] = [Link]||1;
[Link] = 0;
};
// GET HIT:
[Link] = function (amount, doer) {
[Link] += amount;
return ([Link] <= 0);
};
// GET SCALE:
[Link] = function (sM, ig) {
sM = sM || 1;
return [Link] * (([Link] || [Link] == 2 ||
[Link] == 3 || [Link] == 4) ?
1 : (0.6 * sM)) * (ig ? 1 : [Link]);
};
// VISIBLE TO PLAYER:
[Link] = function (player) {
return !([Link]) || ([Link] && ([Link]
== player ||
([Link] && [Link] == [Link])));
};
// UPDATE:
[Link] = function (delta) {
if ([Link]) {
if ([Link]) {
[Link] *= [Link](0.99, delta);
}
if ([Link]) {
[Link] *= [Link](0.99, delta);
}
if ([Link]) {
let d2 = [Link]([Link],
[Link]);
if (d2 > 0.01) {
[Link] += d2 / 5;
} else {
[Link] = [Link];
}
} else {
if ([Link] && [Link]) {
[Link] += [Link] * delta;
}
}
} else {
if ([Link]) {
[Link] -= delta / (200 / [Link]);
[Link] += delta / ([Link] / 2.5);
if ([Link] <= 0) {
[Link] = 0;
[Link] = false;
}
}
}
};
// CHECK TEAM:
[Link] = function (tmpObj) {
return [Link] == null ? true : ([Link] &&
[Link] == [Link] || [Link]([Link]));
};
}
}
class Items {
constructor() {
// ITEM GROUPS:
[Link] = [{
id: 0,
name: "food",
layer: 0
}, {
id: 1,
name: "walls",
place: true,
limit: 30,
layer: 0
}, {
id: 2,
name: "spikes",
place: true,
limit: 15,
layer: 0
}, {
id: 3,
name: "mill",
place: true,
limit: 7,
layer: 1
}, {
id: 4,
name: "mine",
place: true,
limit: 1,
layer: 0
}, {
id: 5,
name: "trap",
place: true,
limit: 6,
layer: -1
}, {
id: 6,
name: "booster",
place: true,
limit: 12,
layer: -1
}, {
id: 7,
name: "turret",
place: true,
limit: 2,
layer: 1
}, {
id: 8,
name: "watchtower",
place: true,
limit: 12,
layer: 1
}, {
id: 9,
name: "buff",
place: true,
limit: 4,
layer: -1
}, {
id: 10,
name: "spawn",
place: true,
limit: 1,
layer: -1
}, {
id: 11,
name: "sapling",
place: true,
limit: 2,
layer: 0
}, {
id: 12,
name: "blocker",
place: true,
limit: 3,
layer: -1
}, {
id: 13,
name: "teleporter",
place: true,
limit: 2,
layer: -1
}];
// PROJECTILES:
[Link] = [{
indx: 0,
layer: 0,
src: "arrow_1",
dmg: 25,
speed: 1.6,
scale: 103,
range: 1000
}, {
indx: 1,
layer: 1,
dmg: 25,
scale: 20
}, {
indx: 0,
layer: 0,
src: "arrow_1",
dmg: 35,
speed: 2.5,
scale: 103,
range: 1200
}, {
indx: 0,
layer: 0,
src: "arrow_1",
dmg: 30,
speed: 2,
scale: 103,
range: 1200
}, {
indx: 1,
layer: 1,
dmg: 16,
scale: 20
}, {
indx: 0,
layer: 0,
src: "bullet_1",
dmg: 50,
speed: 3.6,
scale: 160,
range: 1400
}];
// WEAPONS:
[Link] = [{
id: 0,
type: 0,
name: "tool hammer",
desc: "tool for gathering all resources",
src: "hammer_1",
length: 140,
width: 140,
xOff: -3,
yOff: 18,
dmg: 25,
range: 65,
gather: 1,
speed: 300
}, {
id: 1,
type: 0,
age: 2,
name: "hand axe",
desc: "gathers resources at a higher rate",
src: "axe_1",
length: 140,
width: 140,
xOff: 3,
yOff: 24,
dmg: 30,
spdMult: 1,
range: 70,
gather: 2,
speed: 400
}, {
id: 2,
type: 0,
age: 8,
pre: 1,
name: "great axe",
desc: "deal more damage and gather more resources",
src: "great_axe_1",
length: 140,
width: 140,
xOff: -8,
yOff: 25,
dmg: 35,
spdMult: 1,
range: 75,
gather: 4,
speed: 400
}, {
id: 3,
type: 0,
age: 2,
name: "short sword",
desc: "increased attack power but slower move speed",
src: "sword_1",
iPad: 1.3,
length: 130,
width: 210,
xOff: -8,
yOff: 46,
dmg: 35,
spdMult: 0.85,
range: 110,
gather: 1,
speed: 300
}, {
id: 4,
type: 0,
age: 8,
pre: 3,
name: "katana",
desc: "greater range and damage",
src: "samurai_1",
iPad: 1.3,
length: 130,
width: 210,
xOff: -8,
yOff: 59,
dmg: 40,
spdMult: 0.8,
range: 118,
gather: 1,
speed: 300
}, {
id: 5,
type: 0,
age: 2,
name: "polearm",
desc: "long range melee weapon",
src: "spear_1",
iPad: 1.3,
length: 130,
width: 210,
xOff: -8,
yOff: 53,
dmg: 45,
knock: 0.2,
spdMult: 0.82,
range: 142,
gather: 1,
speed: 700
}, {
id: 6,
type: 0,
age: 2,
name: "bat",
desc: "fast long range melee weapon",
src: "bat_1",
iPad: 1.3,
length: 110,
width: 180,
xOff: -8,
yOff: 53,
dmg: 20,
knock: 0.7,
range: 110,
gather: 1,
speed: 300
}, {
id: 7,
type: 0,
age: 2,
name: "daggers",
desc: "really fast short range weapon",
src: "dagger_1",
iPad: 0.8,
length: 110,
width: 110,
xOff: 18,
yOff: 0,
dmg: 20,
knock: 0.1,
range: 65,
gather: 1,
hitSlow: 0.1,
spdMult: 1.13,
speed: 100
}, {
id: 8,
type: 0,
age: 2,
name: "stick",
desc: "great for gathering but very weak",
src: "stick_1",
length: 140,
width: 140,
xOff: 3,
yOff: 24,
dmg: 1,
spdMult: 1,
range: 70,
gather: 7,
speed: 400
}, {
id: 9,
type: 1,
age: 6,
name: "hunting bow",
desc: "bow used for ranged combat and hunting",
src: "bow_1",
req: ["wood", 4],
length: 120,
width: 120,
xOff: -6,
yOff: 0,
Pdmg: 25,
projectile: 0,
spdMult: 0.75,
speed: 600
}, {
id: 10,
type: 1,
age: 6,
name: "great hammer",
desc: "hammer used for destroying structures",
src: "great_hammer_1",
length: 140,
width: 140,
xOff: -9,
yOff: 25,
dmg: 10,
Pdmg: 10,
spdMult: 0.88,
range: 75,
sDmg: 7.5,
gather: 1,
speed: 400
}, {
id: 11,
type: 1,
age: 6,
name: "wooden shield",
desc: "blocks projectiles and reduces melee damage",
src: "shield_1",
length: 120,
width: 120,
shield: 0.2,
xOff: 6,
yOff: 0,
Pdmg: 0,
spdMult: 0.7
}, {
id: 12,
type: 1,
age: 8,
pre: 9,
name: "crossbow",
desc: "deals more damage and has greater range",
src: "crossbow_1",
req: ["wood", 5],
aboveHand: true,
armS: 0.75,
length: 120,
width: 120,
xOff: -4,
yOff: 0,
Pdmg: 35,
projectile: 2,
spdMult: 0.7,
speed: 700
}, {
id: 13,
type: 1,
age: 9,
pre: 12,
name: "repeater crossbow",
desc: "high firerate crossbow with reduced damage",
src: "crossbow_2",
req: ["wood", 10],
aboveHand: true,
armS: 0.75,
length: 120,
width: 120,
xOff: -4,
yOff: 0,
Pdmg: 30,
projectile: 3,
spdMult: 0.7,
speed: 230
}, {
id: 14,
type: 1,
age: 6,
name: "mc grabby",
desc: "steals resources from enemies",
src: "grab_1",
length: 130,
width: 210,
xOff: -8,
yOff: 53,
dmg: 0,
Pdmg: 0,
steal: 250,
knock: 0.2,
spdMult: 1.05,
range: 125,
gather: 0,
speed: 700
}, {
id: 15,
type: 1,
age: 9,
pre: 12,
name: "musket",
desc: "slow firerate but high damage and range",
src: "musket_1",
req: ["stone", 10],
aboveHand: true,
rec: 0.35,
armS: 0.6,
hndS: 0.3,
hndD: 1.6,
length: 205,
width: 205,
xOff: 25,
yOff: 0,
Pdmg: 50,
projectile: 5,
hideProjectile: true,
spdMult: 0.6,
speed: 1500
}];
// ITEMS:
[Link] = [{
group: [Link][0],
name: "apple",
desc: "restores 20 health when consumed",
req: ["food", 10],
consume: function (doer) {
return [Link](20, doer);
},
scale: 22,
holdOffset: 15,
healing: 20,
itemID: 0,
itemAID: 16,
}, {
age: 3,
group: [Link][0],
name: "cookie",
desc: "restores 40 health when consumed",
req: ["food", 15],
consume: function (doer) {
return [Link](40, doer);
},
scale: 27,
holdOffset: 15,
healing: 40,
itemID: 1,
itemAID: 17,
}, {
age: 7,
group: [Link][0],
name: "cheese",
desc: "restores 30 health and another 50 over 5 seconds",
req: ["food", 25],
consume: function (doer) {
if ([Link](30, doer) || [Link] < 100) {
[Link] = -10;
[Link] = doer;
[Link] = 5;
return true;
}
return false;
},
scale: 27,
holdOffset: 15,
healing: 30,
itemID: 2,
itemAID: 18,
}, {
group: [Link][1],
name: "wood wall",
desc: "provides protection for your village",
req: ["wood", 10],
projDmg: true,
health: 380,
scale: 50,
holdOffset: 20,
placeOffset: -5,
itemID: 3,
itemAID: 19,
}, {
age: 3,
group: [Link][1],
name: "stone wall",
desc: "provides improved protection for your village",
req: ["stone", 25],
health: 900,
scale: 50,
holdOffset: 20,
placeOffset: -5,
itemID: 4,
itemAID: 20,
}, {
age: 7,
group: [Link][1],
name: "castle wall",
desc: "provides powerful protection for your village",
req: ["stone", 35],
health: 1500,
scale: 52,
holdOffset: 20,
placeOffset: -5,
itemID: 5,
itemAID: 21,
}, {
group: [Link][2],
name: "spikes",
desc: "damages enemies when they touch them",
req: ["wood", 20, "stone", 5],
health: 400,
dmg: 20,
scale: 49,
spritePadding: -23,
holdOffset: 8,
placeOffset: -5,
itemID: 6,
itemAID: 22,
}, {
age: 5,
group: [Link][2],
name: "greater spikes",
desc: "damages enemies when they touch them",
req: ["wood", 30, "stone", 10],
health: 500,
dmg: 35,
scale: 52,
spritePadding: -23,
holdOffset: 8,
placeOffset: -5,
itemID: 7,
itemAID: 23,
}, {
age: 9,
group: [Link][2],
name: "poison spikes",
desc: "poisons enemies when they touch them",
req: ["wood", 35, "stone", 15],
health: 600,
dmg: 30,
pDmg: 5,
scale: 52,
spritePadding: -23,
holdOffset: 8,
placeOffset: -5,
itemID: 8,
itemAID: 24,
}, {
age: 9,
group: [Link][2],
name: "spinning spikes",
desc: "damages enemies when they touch them",
req: ["wood", 30, "stone", 20],
health: 500,
dmg: 45,
turnSpeed: 0.003,
scale: 52,
spritePadding: -23,
holdOffset: 8,
placeOffset: -5,
itemID: 9,
itemAID: 25,
}, {
group: [Link][3],
name: "windmill",
desc: "generates gold over time",
req: ["wood", 50, "stone", 10],
health: 400,
pps: 1,
turnSpeed: 0.0016,
spritePadding: 25,
iconLineMult: 12,
scale: 45,
holdOffset: 20,
placeOffset: 5,
itemID: 10,
itemAID: 26,
}, {
age: 5,
group: [Link][3],
name: "faster windmill",
desc: "generates more gold over time",
req: ["wood", 60, "stone", 20],
health: 500,
pps: 1.5,
turnSpeed: 0.0025,
spritePadding: 25,
iconLineMult: 12,
scale: 47,
holdOffset: 20,
placeOffset: 5,
itemID: 11,
itemAID: 27,
}, {
age: 8,
group: [Link][3],
name: "power mill",
desc: "generates more gold over time",
req: ["wood", 100, "stone", 50],
health: 800,
pps: 2,
turnSpeed: 0.005,
spritePadding: 25,
iconLineMult: 12,
scale: 47,
holdOffset: 20,
placeOffset: 5,
itemID: 12,
itemAID: 28,
}, {
age: 5,
group: [Link][4],
type: 2,
name: "mine",
desc: "allows you to mine stone",
req: ["wood", 20, "stone", 100],
iconLineMult: 12,
scale: 65,
holdOffset: 20,
placeOffset: 0,
itemID: 13,
itemAID: 29,
}, {
age: 5,
group: [Link][11],
type: 0,
name: "sapling",
desc: "allows you to farm wood",
req: ["wood", 150],
iconLineMult: 12,
colDiv: 0.5,
scale: 110,
holdOffset: 50,
placeOffset: -15,
itemID: 14,
itemAID: 30,
}, {
age: 4,
group: [Link][5],
name: "pit trap",
desc: "pit that traps enemies if they walk over it",
req: ["wood", 30, "stone", 30],
trap: true,
ignoreCollision: true,
hideFromEnemy: true,
health: 500,
colDiv: 0.2,
scale: 50,
holdOffset: 20,
placeOffset: -5,
alpha: 0.6,
itemID: 15,
itemAID: 31,
}, {
age: 4,
group: [Link][6],
name: "boost pad",
desc: "provides boost when stepped on",
req: ["stone", 20, "wood", 5],
ignoreCollision: true,
boostSpeed: 1.5,
health: 150,
colDiv: 0.7,
scale: 45,
holdOffset: 20,
placeOffset: -5,
itemID: 16,
itemAID: 32,
}, {
age: 7,
group: [Link][7],
doUpdate: true,
name: "turret",
desc: "defensive structure that shoots at enemies",
req: ["wood", 200, "stone", 150],
health: 800,
projectile: 1,
shootRange: 700,
shootRate: 2200,
scale: 43,
holdOffset: 20,
placeOffset: -5,
itemID: 17,
itemAID: 33,
}, {
age: 7,
group: [Link][8],
name: "platform",
desc: "platform to shoot over walls and cross over water",
req: ["wood", 20],
ignoreCollision: true,
zIndex: 1,
health: 300,
scale: 43,
holdOffset: 20,
placeOffset: -5,
itemID: 18,
itemAID: 34,
}, {
age: 7,
group: [Link][9],
name: "healing pad",
desc: "standing on it will slowly heal you",
req: ["wood", 30, "food", 10],
ignoreCollision: true,
healCol: 15,
health: 400,
colDiv: 0.7,
scale: 45,
holdOffset: 20,
placeOffset: -5,
itemID: 19,
itemAID: 35,
}, {
age: 9,
group: [Link][10],
name: "spawn pad",
desc: "you will spawn here when you die but it will
dissapear",
req: ["wood", 100, "stone", 100],
health: 400,
ignoreCollision: true,
spawnPoint: true,
scale: 45,
holdOffset: 20,
placeOffset: -5,
itemID: 20,
itemAID: 36,
}, {
age: 7,
group: [Link][12],
name: "blocker",
desc: "blocks building in radius",
req: ["wood", 30, "stone", 25],
ignoreCollision: true,
blocker: 300,
health: 400,
colDiv: 0.7,
scale: 45,
holdOffset: 20,
placeOffset: -5,
itemID: 21,
itemAID: 37,
}, {
age: 7,
group: [Link][13],
name: "teleporter",
desc: "teleports you to a random point on the map",
req: ["wood", 60, "stone", 60],
ignoreCollision: true,
teleport: true,
health: 200,
colDiv: 0.7,
scale: 45,
holdOffset: 20,
placeOffset: -5,
itemID: 22,
itemAID: 38
}];
// ASSIGN IDS:
for (let i = 0; i < [Link]; ++i) {
[Link][i].id = i;
if ([Link][i].pre) [Link][i].pre = i -
[Link][i].pre;
}
// TROLOLOLOL:
if (typeof window !== "undefined") {
function shuffle(a) {
for (let i = [Link] - 1; i > 0; i--) {
const j = [Link]([Link]() * (i + 1));
[a[i], a[j]] = [a[j], a[i]];
}
return a;
}
//shuffle([Link]);
}
}
}
class Objectmanager {
constructor(GameObject, gameObjects, UTILS, config, players,
server) {
let mathFloor = [Link],
mathABS = [Link],
mathCOS = [Link],
mathSIN = [Link],
mathPOW = [Link],
mathSQRT = [Link];
[Link] = false;
[Link] = [];
// DISABLE OBJ:
[Link] = function (obj) {
[Link] = false;
if ([Link]) {
} else {
[Link] = false;
}
};
// ADD NEW:
let tmpObj;
[Link] = function (sid, x, y, dir, s, type, data, setSID,
owner) {
tmpObj = findObjectBySid(sid);
if (!tmpObj) {
tmpObj = [Link]((tmp) => ![Link]);
if (!tmpObj) {
tmpObj = new GameObject(sid);
[Link](tmpObj);
}
}
if (setSID) {
[Link] = sid;
}
[Link](x, y, dir, s, type, data, owner);
};
// DISABLE BY SID:
[Link] = function (sid) {
let find = findObjectBySid(sid);
if (find) {
[Link](find);
}
};
// CHECK IF PLACABLE:
[Link] = function (x, y, s, sM, indx,
ignoreWater, placer) {
let cantPlace = [Link]((tmp) => [Link] &&
[Link](x, y, tmp.x, tmp.y) < s + ([Link] ? [Link] :
[Link](sM, [Link])));
if (cantPlace) return false;
if (!ignoreWater && indx != 18 && y >= [Link] / 2
- [Link] / 2 && y <= [Link] / 2 + [Link] / 2) return
false;
return true;
};
}
}
class Projectile {
constructor(players, ais, objectManager, items, config, UTILS,
server) {
// INIT:
[Link] = function (indx, x, y, dir, spd, dmg, rng, scl,
owner) {
[Link] = true;
[Link] = true;
[Link] = indx;
this.x = x;
this.y = y;
this.x2 = x;
this.y2 = y;
[Link] = dir;
[Link] = true;
[Link] = spd;
[Link] = dmg;
[Link] = scl;
[Link] = rng;
this.r2 = rng;
[Link] = owner;
};
// UPDATE:
[Link] = function (delta) {
if ([Link]) {
let tmpSpeed = [Link] * delta;
if (![Link]) {
this.x += tmpSpeed * [Link]([Link]);
this.y += tmpSpeed * [Link]([Link]);
[Link] -= tmpSpeed;
if ([Link] <= 0) {
this.x += [Link] * [Link]([Link]);
this.y += [Link] * [Link]([Link]);
tmpSpeed = 1;
[Link] = 0;
[Link] = false;
}
} else {
[Link] = false;
}
}
};
[Link] = function (delta) {
if ([Link]) {
let tmpSpeed = [Link] * delta;
if (![Link]) {
this.x2 += tmpSpeed * [Link]([Link]);
this.y2 += tmpSpeed * [Link]([Link]);
this.r2 -= tmpSpeed;
if (this.r2 <= 0) {
this.x2 += this.r2 * [Link]([Link]);
this.y2 += this.r2 * [Link]([Link]);
tmpSpeed = 1;
this.r2 = 0;
[Link] = false;
}
} else {
[Link] = false;
}
}
};
}
};
class Store {
constructor() {
// STORE HATS:
[Link] = [{
id: 45,
name: "Shame!",
dontSell: true,
price: 0,
scale: 120,
desc: "hacks are for winners"
}, {
id: 51,
name: "Moo Cap",
price: 0,
scale: 120,
desc: "coolest mooer around"
}, {
id: 50,
name: "Apple Cap",
price: 0,
scale: 120,
desc: "apple farms remembers"
}, {
id: 28,
name: "Moo Head",
price: 0,
scale: 120,
desc: "no effect"
}, {
id: 29,
name: "Pig Head",
price: 0,
scale: 120,
desc: "no effect"
}, {
id: 30,
name: "Fluff Head",
price: 0,
scale: 120,
desc: "no effect"
}, {
id: 36,
name: "Pandou Head",
price: 0,
scale: 120,
desc: "no effect"
}, {
id: 37,
name: "Bear Head",
price: 0,
scale: 120,
desc: "no effect"
}, {
id: 38,
name: "Monkey Head",
price: 0,
scale: 120,
desc: "no effect"
}, {
id: 44,
name: "Polar Head",
price: 0,
scale: 120,
desc: "no effect"
}, {
id: 35,
name: "Fez Hat",
price: 0,
scale: 120,
desc: "no effect"
}, {
id: 42,
name: "Enigma Hat",
price: 0,
scale: 120,
desc: "join the enigma army"
}, {
id: 43,
name: "Blitz Hat",
price: 0,
scale: 120,
desc: "hey everybody i'm blitz"
}, {
id: 49,
name: "Bob XIII Hat",
price: 0,
scale: 120,
desc: "like and subscribe"
}, {
id: 57,
name: "Pumpkin",
price: 50,
scale: 120,
desc: "Spooooky"
}, {
id: 8,
name: "Bummle Hat",
price: 100,
scale: 120,
desc: "no effect"
}, {
id: 2,
name: "Straw Hat",
price: 500,
scale: 120,
desc: "no effect"
}, {
id: 15,
name: "Winter Cap",
price: 600,
scale: 120,
desc: "allows you to move at normal speed in snow",
coldM: 1
}, {
id: 5,
name: "Cowboy Hat",
price: 1000,
scale: 120,
desc: "no effect"
}, {
id: 4,
name: "Ranger Hat",
price: 2000,
scale: 120,
desc: "no effect"
}, {
id: 18,
name: "Explorer Hat",
price: 2000,
scale: 120,
desc: "no effect"
}, {
id: 31,
name: "Flipper Hat",
price: 2500,
scale: 120,
desc: "have more control while in water",
watrImm: true
}, {
id: 1,
name: "Marksman Cap",
price: 3000,
scale: 120,
desc: "increases arrow speed and range",
aMlt: 1.3
}, {
id: 10,
name: "Bush Gear",
price: 3000,
scale: 160,
desc: "allows you to disguise yourself as a bush"
}, {
id: 48,
name: "Halo",
price: 3000,
scale: 120,
desc: "no effect"
}, {
id: 6,
name: "Soldier Helmet",
price: 4000,
scale: 120,
desc: "reduces damage taken but slows movement",
spdMult: 0.94,
dmgMult: 0.75
}, {
id: 23,
name: "Anti Venom Gear",
price: 4000,
scale: 120,
desc: "makes you immune to poison",
poisonRes: 1
}, {
id: 13,
name: "Medic Gear",
price: 5000,
scale: 110,
desc: "slowly regenerates health over time",
healthRegen: 3
}, {
id: 9,
name: "Miners Helmet",
price: 5000,
scale: 120,
desc: "earn 1 extra gold per resource",
extraGold: 1
}, {
id: 32,
name: "Musketeer Hat",
price: 5000,
scale: 120,
desc: "reduces cost of projectiles",
projCost: 0.5
}, {
id: 7,
name: "Bull Helmet",
price: 6000,
scale: 120,
desc: "increases damage done but drains health",
healthRegen: -5,
dmgMultO: 1.5,
spdMult: 0.96
}, {
id: 22,
name: "Emp Helmet",
price: 6000,
scale: 120,
desc: "turrets won't attack but you move slower",
antiTurret: 1,
spdMult: 0.7
}, {
id: 12,
name: "Booster Hat",
price: 6000,
scale: 120,
desc: "increases your movement speed",
spdMult: 1.16
}, {
id: 26,
name: "Barbarian Armor",
price: 8000,
scale: 120,
desc: "knocks back enemies that attack you",
dmgK: 0.6
}, {
id: 21,
name: "Plague Mask",
price: 10000,
scale: 120,
desc: "melee attacks deal poison damage",
poisonDmg: 5,
poisonTime: 6
}, {
id: 46,
name: "Bull Mask",
price: 10000,
scale: 120,
desc: "bulls won't target you unless you attack them",
bullRepel: 1
}, {
id: 14,
name: "Windmill Hat",
topSprite: true,
price: 10000,
scale: 120,
desc: "generates points while worn",
pps: 1.5
}, {
id: 11,
name: "Spike Gear",
topSprite: true,
price: 10000,
scale: 120,
desc: "deal damage to players that damage you",
dmg: 0.45
}, {
id: 53,
name: "Turret Gear",
topSprite: true,
price: 10000,
scale: 120,
desc: "you become a walking turret",
turret: {
proj: 1,
range: 700,
rate: 2500
},
spdMult: 0.7
}, {
id: 20,
name: "Samurai Armor",
price: 12000,
scale: 120,
desc: "increased attack speed and fire rate",
atkSpd: 0.78
}, {
id: 58,
name: "Dark Knight",
price: 12000,
scale: 120,
desc: "restores health when you deal damage",
healD: 0.4
}, {
id: 27,
name: "Scavenger Gear",
price: 15000,
scale: 120,
desc: "earn double points for each kill",
kScrM: 2
}, {
id: 40,
name: "Tank Gear",
price: 15000,
scale: 120,
desc: "increased damage to buildings but slower movement",
spdMult: 0.3,
bDmg: 3.3
}, {
id: 52,
name: "Thief Gear",
price: 15000,
scale: 120,
desc: "steal half of a players gold when you kill them",
goldSteal: 0.5
}, {
id: 55,
name: "Bloodthirster",
price: 20000,
scale: 120,
desc: "Restore Health when dealing damage. And increased
damage",
healD: 0.25,
dmgMultO: 1.2,
}, {
id: 56,
name: "Assassin Gear",
price: 20000,
scale: 120,
desc: "Go invisible when not moving. Can't eat. Increased
speed",
noEat: true,
spdMult: 1.1,
invisTimer: 1000
}];
// STORE ACCESSORIES:
[Link] = [{
id: 12,
name: "Snowball",
price: 1000,
scale: 105,
xOff: 18,
desc: "no effect"
}, {
id: 9,
name: "Tree Cape",
price: 1000,
scale: 90,
desc: "no effect"
}, {
id: 10,
name: "Stone Cape",
price: 1000,
scale: 90,
desc: "no effect"
}, {
id: 3,
name: "Cookie Cape",
price: 1500,
scale: 90,
desc: "no effect"
}, {
id: 8,
name: "Cow Cape",
price: 2000,
scale: 90,
desc: "no effect"
}, {
id: 11,
name: "Monkey Tail",
price: 2000,
scale: 97,
xOff: 25,
desc: "Super speed but reduced damage",
spdMult: 1.35,
dmgMultO: 0.2
}, {
id: 17,
name: "Apple Basket",
price: 3000,
scale: 80,
xOff: 12,
desc: "slowly regenerates health over time",
healthRegen: 1
}, {
id: 6,
name: "Winter Cape",
price: 3000,
scale: 90,
desc: "no effect"
}, {
id: 4,
name: "Skull Cape",
price: 4000,
scale: 90,
desc: "no effect"
}, {
id: 5,
name: "Dash Cape",
price: 5000,
scale: 90,
desc: "no effect"
}, {
id: 2,
name: "Dragon Cape",
price: 6000,
scale: 90,
desc: "no effect"
}, {
id: 1,
name: "Super Cape",
price: 8000,
scale: 90,
desc: "no effect"
}, {
id: 7,
name: "Troll Cape",
price: 8000,
scale: 90,
desc: "no effect"
}, {
id: 14,
name: "Thorns",
price: 10000,
scale: 115,
xOff: 20,
desc: "no effect"
}, {
id: 15,
name: "Blockades",
price: 10000,
scale: 95,
xOff: 15,
desc: "no effect"
}, {
id: 20,
name: "Devils Tail",
price: 10000,
scale: 95,
xOff: 20,
desc: "no effect"
}, {
id: 16,
name: "Sawblade",
price: 12000,
scale: 90,
spin: true,
xOff: 0,
desc: "deal damage to players that damage you",
dmg: 0.15
}, {
id: 13,
name: "Angel Wings",
price: 15000,
scale: 138,
xOff: 22,
desc: "slowly regenerates health over time",
healthRegen: 3
}, {
id: 19,
name: "Shadow Wings",
price: 15000,
scale: 138,
xOff: 22,
desc: "increased movement speed",
spdMult: 1.1
}, {
id: 18,
name: "Blood Wings",
price: 20000,
scale: 178,
xOff: 26,
desc: "restores health when you deal damage",
healD: 0.2
}, {
id: 21,
name: "Corrupt X Wings",
price: 20000,
scale: 178,
xOff: 26,
desc: "deal damage to players that damage you",
dmg: 0.25
}];
}
};
class ProjectileManager {
constructor(Projectile, projectiles, players, ais, objectManager,
items, config, UTILS, server) {
[Link] = function (x, y, dir, range, speed, indx,
owner, ignoreObj, layer, inWindow) {
let tmpData = [Link][indx];
let tmpProj;
for (let i = 0; i < [Link]; ++i) {
if (!projectiles[i].active) {
tmpProj = projectiles[i];
break;
}
}
if (!tmpProj) {
tmpProj = new Projectile(players, ais, objectManager,
items, config, UTILS, server);
[Link] = [Link];
[Link](tmpProj);
}
[Link](indx, x, y, dir, speed, [Link], range,
[Link], owner);
[Link] = ignoreObj;
[Link] = layer || [Link];
[Link] = inWindow;
[Link] = [Link];
return tmpProj;
};
}
};
class AiManager {
// AI MANAGER:
constructor(ais, AI, players, items, objectManager, config, UTILS,
scoreCallback, server) {
// AI TYPES:
[Link] = [{
id: 0,
src: "cow_1",
killScore: 150,
health: 500,
weightM: 0.8,
speed: 0.00095,
turnSpeed: 0.001,
scale: 72,
drop: ["food", 50]
}, {
id: 1,
src: "pig_1",
killScore: 200,
health: 800,
weightM: 0.6,
speed: 0.00085,
turnSpeed: 0.001,
scale: 72,
drop: ["food", 80]
}, {
id: 2,
name: "Bull",
src: "bull_2",
hostile: true,
dmg: 20,
killScore: 1000,
health: 1800,
weightM: 0.5,
speed: 0.00094,
turnSpeed: 0.00074,
scale: 78,
viewRange: 800,
chargePlayer: true,
drop: ["food", 100]
}, {
id: 3,
name: "Bully",
src: "bull_1",
hostile: true,
dmg: 20,
killScore: 2000,
health: 2800,
weightM: 0.45,
speed: 0.001,
turnSpeed: 0.0008,
scale: 90,
viewRange: 900,
chargePlayer: true,
drop: ["food", 400]
}, {
id: 4,
name: "Wolf",
src: "wolf_1",
hostile: true,
dmg: 8,
killScore: 500,
health: 300,
weightM: 0.45,
speed: 0.001,
turnSpeed: 0.002,
scale: 84,
viewRange: 800,
chargePlayer: true,
drop: ["food", 200]
}, {
id: 5,
name: "Quack",
src: "chicken_1",
dmg: 8,
killScore: 2000,
noTrap: true,
health: 300,
weightM: 0.2,
speed: 0.0018,
turnSpeed: 0.006,
scale: 70,
drop: ["food", 100]
}, {
id: 6,
name: "MOOSTAFA",
nameScale: 50,
src: "enemy",
hostile: true,
dontRun: true,
fixedSpawn: true,
spawnDelay: 60000,
noTrap: true,
colDmg: 100,
dmg: 40,
killScore: 8000,
health: 18000,
weightM: 0.4,
speed: 0.0007,
turnSpeed: 0.01,
scale: 80,
spriteMlt: 1.8,
leapForce: 0.9,
viewRange: 1000,
hitRange: 210,
hitDelay: 1000,
chargePlayer: true,
drop: ["food", 100]
}, {
id: 7,
name: "Treasure",
hostile: true,
nameScale: 35,
src: "crate_1",
fixedSpawn: true,
spawnDelay: 120000,
colDmg: 200,
killScore: 5000,
health: 20000,
weightM: 0.1,
speed: 0.0,
turnSpeed: 0.0,
scale: 70,
spriteMlt: 1.0
}, {
id: 8,
name: "MOOFIE",
src: "wolf_2",
hostile: true,
fixedSpawn: true,
dontRun: true,
hitScare: 4,
spawnDelay: 30000,
noTrap: true,
nameScale: 35,
dmg: 10,
colDmg: 100,
killScore: 3000,
health: 7000,
weightM: 0.45,
speed: 0.0015,
turnSpeed: 0.002,
scale: 90,
viewRange: 800,
chargePlayer: true,
drop: ["food", 1000]
}];
// SPAWN AI:
[Link] = function (x, y, dir, index) {
let tmpObj = [Link]((tmp) => ![Link]);
if (!tmpObj) {
tmpObj = new AI([Link], objectManager, players,
items, UTILS, config, scoreCallback, server);
[Link](tmpObj);
}
[Link](x, y, dir, index, [Link][index]);
return tmpObj;
};
}
};
class AI {
constructor(sid, objectManager, players, items, UTILS, config,
scoreCallback, server) {
[Link] = sid;
[Link] = true;
[Link] = [Link](0, [Link] - 1);
// INIT:
[Link] = function (x, y, dir, index, data) {
this.x = x;
this.y = y;
[Link] = [Link] ? x : null;
[Link] = [Link] ? y : null;
[Link] = 0;
[Link] = 0;
[Link] = 0;
[Link] = dir;
[Link] = 0;
[Link] = index;
[Link] = [Link];
if ([Link]) [Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = 0;
[Link] = 1000;
[Link] = 0;
[Link] = 0;
[Link] = true;
[Link] = true;
[Link] = null;
[Link] = null;
[Link] = {};
};
let tmpRatio = 0;
let animIndex = 0;
[Link] = function (delta) {
if ([Link] > 0) {
[Link] -= delta;
if ([Link] <= 0) {
[Link] = 0;
[Link] = 0;
tmpRatio = 0;
animIndex = 0;
} else {
if (animIndex == 0) {
tmpRatio += delta / ([Link] *
[Link]);
[Link] = [Link](0, [Link],
[Link](1, tmpRatio));
if (tmpRatio >= 1) {
tmpRatio = 1;
animIndex = 1;
}
} else {
tmpRatio -= delta / ([Link] * (1 -
[Link]));
[Link] = [Link](0, [Link],
[Link](0, tmpRatio));
}
}
}
};
// ANIMATION:
[Link] = function () {
[Link] = [Link] = 600;
[Link] = [Link] * 0.8;
tmpRatio = 0;
animIndex = 0;
};
};
};
class Petal {
constructor(x, y) {
this.x = x;
this.y = y;
[Link] = 10;
[Link] = 10;
[Link] = [Link];
[Link] = false;
[Link] = false;
[Link] = 1500;
[Link] = 0;
[Link] = 0;
[Link] = 1;
[Link] = 9;
[Link] = [Link];
}
};
class addCh {
constructor(x, y, chat, tmpObj) {
this.x = x;
this.y = y;
[Link] = 0;
[Link] = true;
[Link] = false;
[Link] = chat;
[Link] = tmpObj;
};
};
class DeadPlayer {
constructor(x, y, dir, buildIndex, weaponIndex, weaponVariant,
skinColor, scale, name) {
this.x = x;
this.y = y;
[Link] = dir;
[Link] = dir + [Link];
[Link] = buildIndex;
[Link] = weaponIndex;
[Link] = weaponVariant;
[Link] = skinColor;
[Link] = scale;
[Link] = 0;
[Link] = name;
[Link] = 1;
[Link] = true;
[Link] = function(delta) {
let d2 = [Link]([Link], [Link]);
if (d2 > 0.01) {
[Link] += d2 / 20;
} else {
[Link] = [Link];
}
if ([Link] < [Link]) {
[Link] += delta / ([Link] / 2);
if ([Link] >= [Link]) {
[Link] = [Link];
}
}
[Link] -= delta / 30000;
if ([Link] <= 0) {
[Link] = 0;
[Link] = false;
}
}
}
};
class Player {
constructor(id, sid, config, UTILS, projectileManager,
objectManager, players, ais, items, hats, accessories, server, scoreCallback,
iconCallback) {
[Link] = id;
[Link] = sid;
[Link] = 0;
[Link] = null;
[Link] = 0;
[Link] = 0;
[Link] = 0;
[Link] = 0;
[Link] = 0;
[Link] = 0;
[Link] = 0;
[Link] = 0;
[Link] = {};
for (let i = 0; i < [Link]; ++i) {
if (accessories[i].price <= 0)
[Link][accessories[i].id] = 1;
}
[Link] = {};
for (let i = 0; i < [Link]; ++i) {
if (hats[i].price <= 0)
[Link][hats[i].id] = 1;
}
[Link] = 0;
[Link] = 0;
[Link] = false;
[Link] = {};
[Link] = true;
[Link] = 0;
[Link] = undefined;
[Link] = 0;
[Link] = 0;
[Link] = 0;
[Link] = 0;
this.dist2 = 0;
this.aim2 = 0;
[Link] = 1;
[Link] = {
message: null,
count: 0
};
[Link] = true;
[Link] = false;
[Link] = 200;
[Link] = 0.1;
[Link] = 0;
// SPAWN:
[Link] = function (moofoll) {
[Link] = false;
[Link] = false;
[Link] = 0;
[Link] = false;
[Link] = 0;
[Link] = 0;
[Link] = 0;
[Link] = true;
[Link] = true;
[Link] = false;
[Link] = false;
[Link] = 0;
[Link] = 0;
[Link] = 0;
[Link] = 0;
[Link] = {};
[Link] = 0;
[Link] = 0;
[Link] = {};
[Link] = 9;
[Link] = 0;
[Link] = 0;
[Link] = 0;
[Link] = 0;
[Link] = -1;
[Link] = 0;
[Link] = 0;
[Link] = 0;
[Link] = undefined;
[Link] = undefined;
[Link] = {};
[Link] = 0;
[Link] = 300;
[Link] = 0;
[Link] = 1;
[Link] = 0;
[Link] = 2;
[Link] = 0;
this.x = 0;
this.y = 0;
[Link] = {
x: 0,
y: 0
};
[Link] = 0;
[Link] = 0;
[Link] = 0;
[Link] = 1;
[Link] = 0;
[Link] = 0;
[Link] = 0;
[Link] = 0;
[Link] = 100;
[Link] = [Link];
[Link] = [Link];
[Link] = 0;
[Link] = [Link];
[Link] = [Link];
[Link]();
[Link](moofoll);
[Link] = [0, 3, 6, 10];
[Link] = [0];
[Link] = 0;
[Link] = [];
[Link] = {
0: 0,
1: 0,
2: 0,
3: 0,
4: 0,
5: 0,
6: 0,
7: 0,
8: 0,
9: 0,
10: 0,
11: 0,
12: 0,
13: 0,
14: 0,
15: 0,
53: 0,
};
[Link] = {
9: 0,
12: 0,
13: 0,
15: 0,
};
[Link] = 0;
[Link] = false;
[Link] = false;
[Link] = false;
[Link] = false;
[Link] = 0;
[Link] = 0;
[Link] = false;
[Link] = false;
[Link] = 2;
};
// RESET RESOURCES:
[Link] = function (moofoll) {
for (let i = 0; i < [Link]; ++i) {
this[[Link][i]] = moofoll ? 100 : 0;
}
};
// ADD ITEM:
[Link] = function(id) {
let findindx = [Link]((ids) => ids == id);
if (findindx != -1) {
return findindx;
} else {
return [Link](id, [Link]);
}
};
// SET DATA:
[Link] = function (data) {
[Link] = data[0];
[Link] = data[1];
[Link] = data[2];
this.x = data[3];
this.y = data[4];
[Link] = data[5];
[Link] = data[6];
[Link] = data[7];
[Link] = data[8];
[Link] = data[9];
};
[Link] -= 1;
if ([Link] <= 0) {
[Link] = false;
[Link] = [Link] - 1;
[Link] = [Link];
}
[Link] -= 1;
if ([Link] <= 0) {
[Link] = false;
[Link] = [Link] - 1;
[Link] = [Link];
}
};
[Link] = function(delta) {
if ([Link] == playerSID) {
[Link] = parseInt(getEl("circleRad").value)||0;
[Link] =
parseFloat(getEl("radSpeed").value)||0;
[Link] += [Link];
}
if ([Link]) {
// MOVE:
let gear = {
skin: findID(hats, [Link]),
tail: findID(accessories, [Link])
}
let spdMult = (([Link] >= 0) ? 0.5 : 1) *
([Link][[Link]].spdMult || 1) * ([Link] ? ([Link] ||
1) : 1) * ([Link] ? ([Link] || 1) : 1) * (this.y <=
[Link] ? (([Link] && [Link]) ? 1 : [Link]) : 1)
* [Link];
[Link] = spdMult;
}
};
let tmpRatio = 0;
let animIndex = 0;
[Link] = function(delta) {
if ([Link] > 0) {
[Link] -= delta;
if ([Link] <= 0) {
[Link] = 0;
[Link] = 0;
tmpRatio = 0;
animIndex = 0;
} else {
if (animIndex == 0) {
tmpRatio += delta / ([Link] *
[Link]);
[Link] = [Link](0, [Link],
[Link](1, tmpRatio));
if (tmpRatio >= 1) {
tmpRatio = 1;
animIndex = 1;
}
} else {
tmpRatio -= delta / ([Link] * (1-
[Link]));
[Link] = [Link](0, [Link],
[Link](0, tmpRatio));
}
}
}
};
// GATHER ANIMATION:
[Link] = function (didHit, index) {
[Link] = [Link] =
[Link][index].speed;
[Link] = (didHit ? -[Link] : -[Link]);
tmpRatio = 0;
animIndex = 0;
};
// CAN SEE:
[Link] = function(other) {
if (!other) return false;
let dx = [Link](other.x - this.x) - [Link];
let dy = [Link](other.y - this.y) - [Link];
return dx <= ([Link] / 2) * 1.3 && dy <=
([Link] / 2) * 1.3;
};
// SHAME SYSTEM:
[Link] = function () {
if ([Link] < [Link]) {
if ([Link]) {
let timeSinceHit = [Link] - [Link];
[Link] = [Link];
[Link] = 0;
if (timeSinceHit < 2) {
[Link]++;
} else {
[Link] = [Link](0, [Link] -
2);
}
}
} else if ([Link] > [Link]) {
[Link] = [Link];
}
};
[Link] = function () {
[Link] = 0;
[Link] = 30;
let interval = setInterval(() => {
[Link]--;
if ([Link] <= 0) {
clearInterval(interval);
}
}, 1000);
};
// CHECK TEAM:
[Link] = function (tmpObj) {
return (this == tmpObj || ([Link] && [Link] ==
[Link]));
};
}
};
// SOME CODES:
function sendUpgrade(index) {
[Link][index] = 0;
packet("6", index);
}
function sendAutoGather() {
packet("7", 1, 1);
}
// PLACER:
function place(id, rad, rmd) {
try {
if (id == undefined) return;
let item = [Link][[Link][id]];
let tmpS = [Link] + [Link] + ([Link] || 0);
let tmpX = player.x2 + tmpS * [Link](rad);
let tmpY = player.y2 + tmpS * [Link](rad);
if (testMode || ([Link] && inGame &&
[Link][[Link]] == undefined ? true :
[Link][[Link]] < ([Link] ? 99 : [Link] ?
[Link] : 99))) {
selectToBuild([Link][id]);
sendAtck(1, rad);
selectWeapon([Link], 1);
if (rmd && getEl("placeVis").checked) {
[Link]({
x: tmpX,
y: tmpY,
name: [Link],
scale: [Link],
dir: rad
});
[Link](() => {
[Link]();
}, 1)
}
}
} catch (e) {}
}
// HEALING:
function soldierMult() {
return [Link] == 6 ? 0.75 : 1;
}
function healthBased() {
if ([Link] == 100)
return 0;
if (([Link] != 45 && [Link] != 56)) {
return [Link]((100 - [Link]) /
[Link][[Link][0]].healing);
}
return 0;
}
function getAttacker(damaged) {
let attackers = [Link](tmp => {
//let damages = new Damages(items);
//let dmg = [Link][[Link]];
//let by = [Link] < 9 ? [dmg[0], dmg[1], dmg[2],
dmg[3]] : [dmg[0], dmg[1]];
let rule = {
one: tmp.dist2 <= 300,
//two: [Link](damaged),
three: [Link]
}
return [Link] && /*[Link] && */[Link];
});
return attackers;
}
function healer() {
for (let i = 0; i < healthBased(); i++) {
place(0, getAttackDir());
}
}
function fgd(a, b) {
return [Link]([Link]((b.y2 - a[2]), 2) + [Link]((b.x2 -
a[1]), 2));
}
function fgdo(a, b) {
if (a == player) {
return [Link]([Link]((b.y - a.y2), 2) + [Link]((b.x -
a.x2), 2));
} else if (b == player) {
return [Link]([Link]((b.y2 - a.y), 2) + [Link]((b.x2 -
a.x), 2));
} else {
return [Link]([Link]((b.y - a.y), 2) + [Link]((b.x -
a.x), 2));
}
}
function antiSyncHealing(timearg, randomSN = [0 ? [2, 4, 6] : 1 ? [1, 3
, 5] : false]) {
[Link] = true;
let healAnti = setInterval(() => {
if ([Link] < randomSN[[Link]([Link]() *
[Link])]) {
place(0, getAttackDir());
}
}, 75);
setTimeout(() => {
clearInterval(healAnti);
setTimeout(() => {
[Link] = false;
}, [Link]);
}, [Link]);
}
function biomeGear(mover, returns) {
if (player.y2 >= [Link] / 2 - [Link] / 2 &&
player.y2 <= [Link] / 2 + [Link] / 2) {
if (returns) return 31;
buyEquip(31, 0);
} else {
if (player.y2 <= [Link]) {
if (returns) return mover && [Link] == undefined ?
22 : 15;
buyEquip(mover && [Link] == undefined ? 22 : 15,
0);
} else {
if (returns) return mover && [Link] == undefined ?
22 : 12;
buyEquip(mover && [Link] == undefined ? 22 : 12,
0);
}
}
if (returns) return 0;
}
function woah(mover) {
buyEquip(mover && [Link] == undefined ? 0 : 11, 1);
}
function inBetween(angle, arra) { // okay the thing i have left to fix
is if the first angle is not in the right quadrant i need to make sure that the
second one is less far(another checking of which quadrant it is depending on the
angle)
//mental health is not looking good rn
let array1q
let array = [undefined, undefined]
let array2q
return true
} else {//is not in between
return false
}
}
}
let controlAng = (ang) => {
let allAngles = []
//[Link](angles)
for (let i = 0; i < [Link]; i++) {
if (ang[i].length) {
if (![Link]) {
[Link](ang[i])
} else {
let used = false
for (let j = 0; j < [Link]; j++) {
if (inBetween(ang[i][0], allAngles[j])) {
used = true
if (inBetween(ang[i][1], allAngles[j])) {
allAngles[j].push(ang[i][2])
} else {
allAngles[j][1] = ang[i][1]
allAngles[j].push(ang[i][2])
}
} else if (inBetween(ang[i][1], allAngles[j])) {
used = true
allAngles[j][0] = ang[i][0]
allAngles[j].push(ang[i][2])
}
}
if (!used) {
[Link](ang[i])
}
}
}
}
return allAngles
}
function makeAng(build, id) {
let fullAng = [];
let buildings = [Link](obj => fgdo(player, obj) < 250
&& [Link])
let item = [Link][id < [Link] ? id :
[Link][2]]
let tmpS = [Link] + [Link] + ([Link] || 0);
for (let scale, i = 0; i < [Link]; i++) {
if (!buildings[i].isItem) {
if ((buildings[i].scale != 80 && buildings[i].scale != 85
&& buildings[i].scale != 90 || buildings[i].type == 1)) {
scale = buildings[i].scale * 0.40
} else {
scale = buildings[i].scale
}
} else {
scale = buildings[i].scale
}
let angles = []
let dist = (item + scale + 1)
let dPTB = fgdo(player, buildings[i])
let cosLaw
if (dPTB > dist + tmpS) {
cosLaw = [Link]((([Link](tmpS, 2) + [Link](dist, 2))
- [Link](dPTB, 2)) / (2 * dist * tmpS))
cosLaw = [Link]((dist * [Link](cosLaw)) / dPTB)
} else {
cosLaw = [Link]((([Link](tmpS, 2) + [Link](dPTB, 2))
- [Link](dist, 2)) / (2 * dPTB * tmpS))
}
let aPTB = Math.atan2(buildings[i].y - player.y2,
buildings[i].x - player.x2)
let ang1 = (aPTB - cosLaw)
let ang2 = (aPTB + cosLaw)
if (!isNaN(cosLaw)) {
[Link](ang1)
[Link](ang2)
[Link](buildings[i])
}
[Link](angles)
}
for (let i = 0; i < [Link] * 3; i++) {
fullAng = controlAng(fullAng)
}
if (![Link]) {
fullAng = [0, 0.0001]
}
for (let i = 0; i < [Link]; i++) {
if (fullAng != false) {
if (!checkPlace(id, fullAng[i][0]) || !checkPlace(id,
fullAng[i][1])) {
fullAng = false
}
}
}
//[Link]([Link])
return fullAng
}
let advHeal = [];
let TOT = false;
let LATH = false;
let SHP = false;
let carefullAng = [];
var ie = 0,
z,
ne = 0,
F;
class Traps {
constructor(UTILS, items) {
[Link] = 0;
[Link] = 0;
[Link] = false;
[Link] = false;
[Link] = false;
[Link] = {};
[Link] = function() {
return [Link][1] == 10 && (([Link] >
[Link][[Link][0]].dmg) || [Link][0] == 5);
}
[Link] = function (id, first = 0, repeat =
([Link] / 2), plus = ([Link] / 18), radian, replacer, yaboi) {
try {
let item = [Link][[Link][id]];
let tmpS = [Link] + [Link] +
([Link] || 0);
let counts = {
attempts: 0,
placed: 0
};
let tmpObjects = [];
[Link]((p) => {
[Link]({
x: p.x,
y: p.y,
active: [Link],
blocker: [Link],
scale: [Link],
isItem: [Link],
type: [Link],
colDiv: [Link],
getScale: function(sM, ig) {
sM = sM||1;
return [Link] * (([Link]||
[Link]==2||[Link]==3||[Link]==4)
?1:(0.6*sM)) * (ig?
1:[Link]);
},
});
});
for (let i = first; i < repeat; i += plus) {
[Link]++;
let relAim = radian + i;
let tmpX = player.x2 + tmpS * [Link](relAim);
let tmpY = player.y2 + tmpS * [Link](relAim);
let cantPlace = [Link]((tmp) => [Link]
&& [Link](tmpX, tmpY, tmp.x, tmp.y) < [Link] + ([Link] ?
[Link] : [Link](0.6, [Link])));
if (cantPlace) continue;
if ([Link] != 18 && tmpY >= [Link] / 2 -
[Link] / 2 && tmpY <= [Link] / 2 + [Link] / 2)
continue;
if ((!replacer && yaboi) || useWasd) {
if (useWasd ? false : [Link]) {
if ([Link](near.aim2 + [Link],
relAim + [Link]) <= [Link]) {
place(2, relAim, 1);
} else {
[Link][4] == 15 && place(4,
relAim, 1);
}
} else {
if ([Link](near.aim2, relAim)
<= [Link] / 1.5) {
place(2, relAim, 1);
} else {
[Link][4] == 15 && place(4,
relAim, 1);
}
}
} else {
place(id, relAim, 1);
}
[Link]({
x: tmpX,
y: tmpY,
active: true,
blocker: [Link],
scale: [Link],
isItem: true,
type: null,
colDiv: [Link],
getScale: function() {
return [Link];
},
});
if ([Link](near.aim2, relAim) <= 1) {
[Link]++;
}
}
if ([Link] > 0 && replacer && [Link]) {
if (near.dist2 <=
[Link][[Link][0]].range + ([Link] * 1.8) && [Link])
{
[Link] = true;
}
}
} catch (err) {
}
};
[Link] = function() {
try {
if (![3, 4, 5].includes([Link])) return
false;
if ((getEl("safeAntiSpikeTick").checked || [Link])
? false : [Link] == undefined ? true : ([Link][[Link]]
> [Link])) return false;
// more range for safe. also testing [Link]
|| 5
if (near.dist2 <= [Link][[Link] ||
5].range + ([Link] * 1.8)) {
let item = [Link][9];
let tmpS = [Link] + [Link] +
([Link] || 0);
let danger = 0;
let counts = {
attempts: 0,
block: `unblocked`
};
for (let i = -1; i <= 1; i += 1/10) {
[Link]++;
let relAim = [Link](player, near, 2,
2) + i;
let tmpX = near.x2 + tmpS * [Link](relAim);
let tmpY = near.y2 + tmpS * [Link](relAim);
let cantPlace = [Link]((tmp) =>
[Link] && [Link](tmpX, tmpY, tmp.x, tmp.y) < [Link] +
([Link] ? [Link] : [Link](0.6, [Link])));
if (cantPlace) continue;
if (tmpY >= [Link] / 2 -
[Link] / 2 && tmpY <= [Link] / 2 + [Link] / 2)
continue;
danger++;
[Link] = `blocked`;
break;
}
if (danger) {
my.anti0Tick = 1;
[Link] = "Anti SpikeTick " +
[Link];
[Link] = 2000;
return true;
}
}
} catch (err) {
return null;
}
return false;
}
[Link] = function (aim) {
if (![Link] && !enemy) return;
if ([Link][4]) {
if (enemy ? near.dist2 <= 325 : false) {
if (near.dist2 <= 160) {
[Link](2, near.aim2-([Link] / 2),
near.aim2+([Link] / 2), ([Link] / 30), aim);
} else {
[Link](4, near.aim2-([Link] / 2),
near.aim2+([Link] / 2), ([Link] / 24), aim + [Link]/2.2);
}
}
[Link] = true;
}
};
[Link] = function (randomNum = [160, 180, 200]) {
if ([Link] ? [Link] && ![Link]
&& !(player.y >= 6870 && player.y <= 7530) : false) {
if ([Link] % ([Link](1,
parseInt(getEl("autoPlaceTick").value))||1) === 0) {
if ([Link]) {
let carefullAng;
let nearBuilds = [Link](obj =>
fgdo(obj, player) < 250)
let spikeAngles = makeAng(nearBuilds,
[Link][2])
let direction = Math.atan2(enemy.y - player.y2,
enemy.x - player.x2)
let trapAngles = []
if ([Link][4]) {
trapAngles = makeAng(nearBuilds,
[Link][4])
if (!trapAngles) {
return
}
}
if (!spikeAngles) {
return
}
if ([Link] || [Link]) {
let placed = []
if (carefullAng) {
for (let j = 0; j < carefullAng; j++) {
let newDir =
Math.atan2(carefullAng[j].y - player.y2, carefullAng[j].x - player.x2)
let angFound = 0
for (let i = 0; i <
[Link]; i++) {
if (!inBetween(newDir,
spikeAngles[i])) {
angFound += 1
}
}
if (angFound == [Link])
{
[Link]([[Link][2],
newDir])
[Link](2, 0,
[Link]*2, ([Link] / 18), newDir, 0);
}
}
}
carefullAng = []
if ([Link]) {
for (let i = 0; i < [Link]; i++)
{
let obj = {
x: player.x2 +
([Link](placed[i][1]) * ([Link] + [Link][placed[i][0]].scale +
([Link][placed[i][0]].placeOffset || 0))),
y: player.y2 +
([Link](placed[i][1]) * ([Link] + [Link][placed[i][0]].scale +
([Link][placed[i][0]].placeOffset || 0))),
scale: [Link][placed[i]
[0]].scale / 3,
isItem: true,
active: true,
}
[Link](obj)
}
spikeAngles = makeAng(nearBuilds,
[Link][2])
if (!spikeAngles) {
return
}
trapAngles = []
if ([Link][4]) {
trapAngles = makeAng(nearBuilds,
[Link][4])
if (!trapAngles) {
return
}
}
placed = []
}
if ([Link] && near.dist2 <=
randomNum[[Link]([Link]() * [Link])]) {
let nearestAngle = undefined
let trapFound = false
for (let i = 0; i < [Link];
i++) {
if (!trapFound) {
for (let j = 2; j <
spikeAngles[i].length; j++) {
if ([Link] ==
spikeAngles[i][j]) {
trapFound = true
nearestAngle =
((spikeAngles[i][0] - direction) < (spikeAngles[i][1] - direction) ? spikeAngles[i]
[0] : spikeAngles[i][1])
}
}
}
}
if (trapFound) {
let objectX = player.x2 +
([Link](nearestAngle) * ([Link] + [Link][[Link][2]].scale +
([Link][[Link][2]].placeOffset || 0)))
let objectY = player.y2 +
([Link](nearestAngle) * ([Link] + [Link][[Link][2]].scale +
([Link][[Link][2]].placeOffset || 0)))
if ([Link](objectY -
direction.y, objectX - direction.x) < ([Link] +
[Link][[Link][2]].scale + 8)) {
[Link]([[Link][2],
nearestAngle])
[Link](2, 0,
[Link]*2, ([Link] / 18), nearestAngle, 0);
}
}
}
if ([Link]) {
for (let i = 0; i < [Link]; i++)
{
let obj = {
x: player.x2 +
([Link](placed[i][1]) * ([Link] + [Link][placed[i][0]].scale +
([Link][placed[i][0]].placeOffset || 0))),
y: player.y2 +
([Link](placed[i][1]) * ([Link] + [Link][placed[i][0]].scale +
([Link][placed[i][0]].placeOffset || 0))),
scale: [Link][placed[i]
[0]].scale / 3,
isItem: true,
active: true,
}
[Link](obj)
}
spikeAngles = makeAng(nearBuilds,
[Link][2])
if (!spikeAngles) {
return
}
trapAngles = []
if ([Link][4]) {
trapAngles = makeAng(nearBuilds,
[Link][4])
if (!trapAngles) {
return
}
}
placed = []
}
if (near.dist2 <= 270) {
if (![Link]) {
let dirFound = 0
for (let i = 0; i <
[Link]; i++) {
if (!inBetween(direction,
trapAngles[i])) {
dirFound += 1
}
}
if (dirFound == [Link])
{
if ([Link][4]) {
[Link]([[Link][4], direction])
[Link](4, 0,
[Link]*2, ([Link] / 18), direction, 0);
}
}
if ([Link]) {
for (let i = 0; i <
[Link]; i++) {
let obj = {
x: player.x2 +
([Link](placed[i][1]) * ([Link] + [Link][placed[i][0]].scale +
([Link][placed[i][0]].placeOffset || 0))),
y: player.y2 +
([Link](placed[i][1]) * ([Link] + [Link][placed[i][0]].scale +
([Link][placed[i][0]].placeOffset || 0))),
scale:
[Link][placed[i][0]].scale / 3,
isItem: true,
active: true,
}
[Link](obj)
}
spikeAngles =
makeAng(nearBuilds, [Link][2])
if (!spikeAngles) {
return
}
trapAngles = []
if ([Link][4]) {
trapAngles =
makeAng(nearBuilds, [Link][4])
if (!trapAngles) {
return
}
}
placed = []
}
if (near.dist2 <= 120) {
for (let i = 0; i <
[Link]; i++) {
let closest = (direction -
spikeAngles[i][0] <= direction - spikeAngles[i][1] ? spikeAngles[i][0] :
spikeAngles[i][1])
[Link]([[Link][2], closest])
[Link](2, 0,
[Link]*2, ([Link] / 18), closest, 0);
if ([Link]) {
for (let i = 0; i <
[Link]; i++) {
let obj = {
x: player.x2 +
([Link](placed[i][1]) * ([Link] + [Link][placed[i][0]].scale +
([Link][placed[i][0]].placeOffset || 0))),
y: player.y2 +
([Link](placed[i][1]) * ([Link] + [Link][placed[i][0]].scale +
([Link][placed[i][0]].placeOffset || 0))),
scale:
[Link][placed[i][0]].scale / 3,
isItem: true,
active: true,
[Link](obj)
}
spikeAngles =
makeAng(nearBuilds, [Link][2])
if (!spikeAngles) {
return
}
trapAngles = []
if ([Link][4]) {
trapAngles =
makeAng(nearBuilds, [Link][4])
if (!trapAngles) {
return
}
}
placed = []
}
}
} else {
for (let i = 0; i <
[Link]; i++) {
if ([Link][4]) {
let closest =
(direction - trapAngles[i][0] <= direction - trapAngles[i][1] ? trapAngles[i][0] :
trapAngles[i][1])
[Link]([[Link][4], closest])
[Link](4, 0,
[Link]*2, ([Link] / 18), closest, 0);
}
if ([Link]) {
for (let i = 0; i <
[Link]; i++) {
let obj = {
x: player.x2 +
([Link](placed[i][1]) * ([Link] + [Link][placed[i][0]].scale +
([Link][placed[i][0]].placeOffset || 0))),
y: player.y2 +
([Link](placed[i][1]) * ([Link] + [Link][placed[i][0]].scale +
([Link][placed[i][0]].placeOffset || 0))),
scale:
[Link][placed[i][0]].scale / 3,
isItem: true,
active: true,
[Link](obj)
}
spikeAngles =
makeAng(nearBuilds, [Link][2])
if (!spikeAngles) {
return
}
trapAngles = []
if ([Link][4]) {
trapAngles =
makeAng(nearBuilds, [Link][4])
if (!trapAngles) {
return
}
}
placed = []
}
}
}
} else {
if (near.dist2 <= 180) {
for (let i = 0; i <
[Link]; i++) {
let closest = (direction -
spikeAngles[i][0] <= direction - spikeAngles[i][1] ? spikeAngles[i][0] :
spikeAngles[i][1])
[Link]([[Link][2], closest])
[Link](2, 0,
[Link]*2, ([Link] / 18), closest, 0);
if ([Link]) {
for (let i = 0; i <
[Link]; i++) {
let obj = {
x: player.x2 +
([Link](placed[i][1]) * ([Link] + [Link][placed[i][0]].scale +
([Link][placed[i][0]].placeOffset || 0))),
y: player.y2 +
([Link](placed[i][1]) * ([Link] + [Link][placed[i][0]].scale +
([Link][placed[i][0]].placeOffset || 0))),
scale:
[Link][placed[i][0]].scale / 3,
isItem: true,
active: true,
[Link](obj)
}
spikeAngles =
makeAng(nearBuilds, [Link][2])
if (!spikeAngles) {
return
}
trapAngles = []
if ([Link][4]) {
trapAngles =
makeAng(nearBuilds, [Link][4])
if (!trapAngles) {
return
}
}
placed = []
}
}
}
}
}
}
/*PLACEMENT NORMAL*/
let near2 = {
inTrap: false,
};
let nearTrap = [Link](e => [Link]
&& [Link] && [Link](player) && [Link](e, near, 0, 2) <=
([Link] + [Link]() + 5)).sort(function (a, b) {
return [Link](a, near, 0, 2) -
[Link](b, near, 0, 2);
})[0];
if (nearTrap) {
[Link] = true;
TOT = true
} else {
[Link] = false;
TOT = false
}
if (testMode ? [Link] : (near.dist2 <=
270)) {
/*if ([Link] ||
[Link]) {
}*/
if (near.dist2 <=
randomNum[[Link]([Link]() * [Link])]) {
if([Link]) [Link](2,
near.aim2-([Link]*2), near.aim2+([Link] * 2), ([Link] / 74), near.aim2, 0,
{inTrap: [Link]});
else if (near.dist2 <= 120) {
[Link](2, near.aim2-
([Link]*2), near.aim2+([Link] * 2), ([Link] / 74), near.aim2, 0);
} else [Link][4] == 15 &&
[Link](4, 0, ([Link] * 2), ([Link] / 24), near.aim2);
} else {
[Link][4] == 15 &&
[Link](4, 0, ([Link] * 2), ([Link] / 24), near.aim2);
}
}
} else {
if (testMode ? [Link] : (near.dist2 <=
450)) {
[Link][4] == 15 &&
[Link](4, 0, ([Link] * 2), ([Link] / 24), near.aim2);
}
}
}
}
carefullAng = []
};
[Link] = function (findObj) {
if (!findObj || ![Link]) return;
if (!inGame) return;
if ([Link]) return;
[Link](() => {
let objAim = [Link](findObj, player, 0, 2);
let objDst = [Link](findObj, player, 0, 2);
if (getEl("weaponGrind").checked && objDst <=
[Link][[Link]].range + [Link]) return;
if (enemy ? objDst <= 400 && near.dist2 <= 300 && !
(player.y >= 6870 && player.y <= 7530) : false) {
let doSmart = SHP && [Link] == 6 ? SHP &&
[Link] != 6 && [Link][[Link][0]] == !0 ? 4 : 4 : 2;
let danger = [Link]();
if (!danger && near.dist2 <=
[Link][[Link] || 5].range + ([Link] * 1.8)) {
//[Link](2, -([Link] / 2), ([Link]
/ 2), ([Link] / 18), objAim, 1);
if(TOT && SHP) {place(doSmart, near.aim2, 1);
addMenuChText("Mod",
"WNR", "lightBlue");
}
[Link](2, 0, near.aim2-([Link]*2),
near.aim2+([Link] * 2), ([Link] / 34), near.aim2, 1);
} else {
[Link][4] == 15 && [Link](4,
0, ([Link] * 2), ([Link] / 18), objAim, 1);
}
[Link] = true;
}
}, 1);
};
}
};
class Instakill {
constructor() {
[Link] = false;
[Link] = false;
[Link] = false;
[Link] = false;
[Link] = false;
[Link] = false;
[Link] = false;
[Link] = false;
[Link] = false;
[Link] = false;
[Link] = false;
[Link] = function (type) {
[Link] = false;
[Link] = true;
[Link] = true;
let instaLog = [type];
let backupNobull = [Link];
[Link] = false;
[Link](() => {
[Link]([Link]);
[Link](() => {
if ([Link] == 22 &&
getEl("backupNobull").checked) {
[Link] = true;
}
[Link]([Link]);
}, 1);
}, 1);
if (type == "rev") {
selectWeapon([Link][1]);
buyEquip(53, 0);
buyEquip(21, 1);
sendAutoGather();
[Link](() => {
selectWeapon([Link][0]);
buyEquip(7, 0);
buyEquip(21, 1);
[Link](() => {
sendAutoGather();
[Link] = false;
[Link] = false;
}, 1);
}, 1);
} else if (type == "nobull") {
selectWeapon([Link][0]);
if (getEl("backupNobull").checked && backupNobull) {
buyEquip(7, 0);
} else {
buyEquip(6, 0);
}
buyEquip(21, 1);
sendAutoGather();
[Link](() => {
if ([Link] == 22) {
if (getEl("backupNobull").checked) {
[Link] = true;
}
buyEquip(6, 0);
} else {
buyEquip(53, 0);
}
selectWeapon([Link][1]);
buyEquip(21, 1);
[Link](() => {
sendAutoGather();
[Link] = false;
[Link] = false;
}, 1);
}, 1);
} else if (type == "normal") {
selectWeapon([Link][0]);
buyEquip(7, 0);
buyEquip(21, 1);
sendAutoGather();
[Link](() => {
selectWeapon([Link][1]);
buyEquip([Link][53] == 0 ? 53 : 6, 0);
buyEquip(21, 1);
[Link](() => {
sendAutoGather();
[Link] = false;
[Link] = false;
}, 1);
}, 1);
} else {
setTimeout(() => {
[Link] = false;
[Link] = false;
}, 50);
}
};
[Link] = function () {
[Link] = true;
[Link] = true;
selectWeapon([Link][0]);
buyEquip(7, 0);
buyEquip(21, 1);
sendAutoGather();
[Link](() => {
if ([Link][53] == 0 &&
getEl("turretCombat").checked) {
selectWeapon([Link][0]);
buyEquip(53, 0);
buyEquip(21, 1);
[Link](() => {
sendAutoGather();
[Link] = false;
[Link] = false;
}, 1);
} else {
sendAutoGather();
[Link] = false;
[Link] = false;
}
}, 1);
};
[Link] = function () {
[Link] = true;
[Link] = true;
selectWeapon([Link][0]);
buyEquip(7, 0);
buyEquip(21, 1);
sendAutoGather();
[Link](() => {
if ([Link][53] == 0 &&
getEl("turretCombat").checked) {
selectWeapon([Link][0]);
buyEquip(53, 0);
buyEquip(21, 1);
[Link](() => {
sendAutoGather();
[Link] = false;
[Link] = false;
}, 1);
} else {
sendAutoGather();
[Link] = false;
[Link] = false;
}
}, 1);
};
[Link] = function (type) {
[Link] = true;
[Link] = true;
if (type == "ageInsta") {
[Link] = false;
if ([Link][5] == 18) {
place(5, near.aim2);
}
packet("33", undefined, 1);
buyEquip(22, 0);
buyEquip(21, 1);
[Link](() => {
selectWeapon([Link][1]);
buyEquip(53, 0);
buyEquip(21, 1);
sendAutoGather();
[Link](() => {
sendUpgrade(12);
selectWeapon([Link][1]);
buyEquip(53, 0);
buyEquip(21, 1);
[Link](() => {
sendUpgrade(15);
selectWeapon([Link][1]);
buyEquip(53, 0);
buyEquip(21, 1);
[Link](() => {
sendAutoGather();
[Link] = false;
[Link] = false;
}, 1);
}, 1);
}, 1);
}, 1);
} else {
selectWeapon([Link][1]);
if ([Link][53] == 0 && near.dist2 <= 700 &&
[Link] != 22) {
buyEquip(53, 0);
} else {
buyEquip(20, 0);
}
buyEquip(11, 1);
sendAutoGather();
[Link](() => {
sendAutoGather();
[Link] = false;
[Link] = false;
}, 1);
}
};
[Link] = function () {
[Link] = true;
[Link] = true;
selectWeapon([Link][1]);
buyEquip(53, 0);
buyEquip(11, 1);
packet("33", near.aim2, 1);
if ([Link][1] == 15) {
[Link] = true;
sendAutoGather();
}
[Link](() => {
[Link] = false;
selectWeapon([Link][0]);
buyEquip(7, 0);
buyEquip(19, 1);
packet("33", near.aim2, 1);
if ([Link][1] != 15) {
sendAutoGather();
}
[Link](() => {
sendAutoGather();
[Link] = false;
[Link] = false;
packet("33", undefined, 1);
}, 1);
}, 1);
};
[Link] = function () {
[Link] = true;
[Link] = true;
selectWeapon([Link][[10,
14].includes([Link][1]) ? 1 : 0]);
biomeGear();
buyEquip(11, 1);
packet("33", near.aim2, 1);
[Link](() => {
selectWeapon([Link][[10,
14].includes([Link][1]) ? 1 : 0]);
buyEquip(53, 0);
buyEquip(11, 1);
packet("33", near.aim2, 1);
[Link](() => {
selectWeapon([Link][0]);
buyEquip(7, 0);
buyEquip(19, 1);
sendAutoGather();
packet("33", near.aim2, 1);
[Link](() => {
sendAutoGather();
[Link] = false;
[Link] = false;
packet("33", undefined, 1);
}, 1);
}, 1);
}, 1);
};
[Link] = function () {
[Link] = true;
[Link] = true;
[Link] = true;
selectWeapon([Link][1]);
buyEquip(53, 0);
buyEquip(11, 1);
sendAutoGather();
packet("33", near.aim2, 1);
[Link](() => {
[Link] = false;
selectWeapon([Link][0]);
buyEquip(7, 0);
buyEquip(19, 1);
packet("33", near.aim2, 1);
[Link](() => {
sendAutoGather();
[Link] = false;
[Link] = false;
packet("33", undefined, 1);
}, 1);
}, 1);
};
[Link] = function () {
/*[Link] = true;
[Link] = true;
selectWeapon([Link][0]);
buyEquip(53, 0);
buyEquip(11, 1);
packet("33", near.aim2);
[Link](() => {
place(4, near.aim2);
selectWeapon([Link][1]);
biomeGear();
buyEquip(11, 1);
sendAutoGather();
packet("33", near.aim2);
[Link](() => {
selectWeapon([Link][0]);
buyEquip(7, 0);
buyEquip(19, 1);
packet("33", near.aim2);
[Link](() => {
sendAutoGather();
[Link] = false;
[Link] = false;
packet("33", undefined);
}, 1);
}, 1);
}, 1);*/
[Link] = true;
[Link] = true;
biomeGear();
buyEquip(11, 1);
packet("33", near.aim2, 1);
[Link](() => {
if ([Link][1] == 15) {
[Link] = true;
}
selectWeapon([Link][[9, 12, 13,
15].includes([Link][1]) ? 1 : 0]);
buyEquip(53, 0);
buyEquip(11, 1);
if ([9, 12, 13, 15].includes([Link][1])) {
sendAutoGather();
}
packet("33", near.aim2, 1);
place(4, near.aim2);
[Link](() => {
[Link] = false;
selectWeapon([Link][0]);
buyEquip(7, 0);
buyEquip(19, 1);
if (![9, 12, 13, 15].includes([Link][1])) {
sendAutoGather();
}
packet("33", near.aim2, 1);
[Link](() => {
sendAutoGather();
[Link] = false;
[Link] = false;
packet("33", undefined, 1);
}, 1);
}, 1);
}, 1);
};
[Link] = function (goto, OT) {
let slowDists = (weeeee) => weeeee * [Link];
let goal = {
a: goto - OT,
b: goto + OT,
c: goto - slowDists(1),
d: goto + slowDists(1),
e: goto - slowDists(2),
f: goto + slowDists(2),
g: goto - slowDists(4),
h: goto + slowDists(4)
};
let bQ = function(wwww, awwww) {
if (player.y2 >= [Link] / 2 -
[Link] / 2 && player.y2 <= [Link] / 2 + [Link] / 2
&& awwww == 0) {
buyEquip(31, 0);
} else {
buyEquip(wwww, awwww);
}
}
if ([Link]) {
let dst = near.dist2;
[Link] = true;
if (dst >= goal.a && dst <= goal.b) {
bQ(22, 0);
bQ(11, 1);
if ([Link] != [Link][[10,
14].includes([Link][1]) ? 1 : 0] || [Link] > -1) {
selectWeapon([Link][[10,
14].includes([Link][1]) ? 1 : 0]);
}
return {
dir: undefined,
action: 1
};
} else {
if (dst < goal.a) {
if (dst >= goal.g) {
if (dst >= goal.e) {
if (dst >= goal.c) {
bQ(40, 0);
bQ(10, 1);
if ([Link]) {
[Link] !=
[Link][1] && selectToBuild([Link][1]);
} else {
if (([Link] !=
[Link][[10, 14].includes([Link][1]) ? 1 : 0]) || [Link]
> -1) {
class Autobuy {
constructor(buyHat, buyAcc) {
[Link] = function() {
[Link]((id) => {
let find = findID(hats, id);
if (find && ![Link][id] && [Link] >=
[Link]) packet("13c", 1, id, 0);
});
};
[Link] = function() {
[Link]((id) => {
let find = findID(accessories, id);
if (find && ![Link][id] && [Link] >=
[Link]) packet("13c", 1, id, 1);
});
};
}
};
class Autoupgrade {
constructor() {
[Link] = function(upg) {
upg(3);
upg(17);
upg(31);
upg(23);
upg(9);
upg(38);
};
[Link] = function(upg) {
upg(3);
upg(17);
upg(31);
upg(23);
upg(10);
upg(38);
upg(4);
upg(25);
};
[Link] = function(upg) {
upg(5);
upg(17);
upg(32);
upg(23);
upg(9);
upg(38);
};
[Link] = function(upg) {
upg(5);
upg(17);
upg(32);
upg(23);
upg(10);
upg(38);
upg(28);
upg(25);
};
[Link] = function(upg) {
upg(7);
upg(17);
upg(31);
upg(23);
upg(9);
upg(34);
};
/* old functions */
[Link] = function(upg) {
upg(7);
upg(17);
upg(31);
upg(23);
upg(10);
upg(38);
upg(4);
upg(15);
};
};
};
class Damages {
constructor(items) {
// 0.75 1 1.125 1.5
[Link] = function(dmg, val) {
return dmg * val;
};
[Link] = function(dmg) {
return [[Link](dmg, 0.75), dmg, [Link](dmg,
1.125), [Link](dmg, 1.5)];
};
[Link] = [];
for (let i = 0; i < [Link]; i++) {
let wp = [Link][i];
let name = [Link](" ").length <= 1 ? [Link] :
([Link](" ")[0] + "_" + [Link](" ")[1]);
[Link]([Link](i > 8 ? [Link] :
[Link]));
this[name] = [Link][i];
}
}
}
// LOADING:
let UTILS = new Utils();
let items = new Items();
let objectManager = new Objectmanager(GameObject, gameObjects, UTILS,
config);
let store = new Store();
let hats = [Link];
let accessories = [Link];
let projectileManager = new ProjectileManager(Projectile, projectiles,
players, ais, objectManager, items, config, UTILS);
let aiManager = new AiManager(ais, AI, players, items, null, config,
UTILS);
let textManager = new Textmanager();
let lastDeath;
let minimapData;
let mapMarker = {};
let mapPings = [];
let tmpPing;
let pathFindTest = 0;
let grid = [];
let pathFind = {
active: false,
grid: 40,
scale: 1440,
x: 14400,
y: 14400,
chaseNear: false,
array: [],
lastX: [Link] / 2,
lastY: [Link] / 2
};
function sendChat(message) {
packet("ch", [Link](0, 30));
}
} else if (isWeapon) {
[Link]({
class: "itemInfoReq",
text: ![Link]?"primary":"secondary",
parent: itemInfoHolder
});
} else {
for (let i = 0; i < [Link]; i += 2) {
[Link]({
class: "itemInfoReq",
html: [Link][i] + "<span class='itemInfoReqVal'>
x" + [Link][i + 1] + "</span>",
parent: itemInfoHolder
});
}
if ([Link]) {
[Link]({
class: "itemInfoLmt",
text: ([Link][[Link]] || 0) + "/"
+ ([Link] ? 99 : [Link]),
parent: itemInfoHolder
});
}
}
} else {
[Link]("visible");
}
}
// RESIZE:
[Link]("resize", [Link](resize));
function resize() {
screenWidth = [Link];
screenHeight = [Link];
let scaleFillNative = [Link](screenWidth / maxScreenWidth,
screenHeight / maxScreenHeight) * pixelDensity;
[Link] = screenWidth * pixelDensity;
[Link] = screenHeight * pixelDensity;
[Link] = screenWidth + "px";
[Link] = screenHeight + "px";
[Link](
scaleFillNative, 0,
0, scaleFillNative,
(screenWidth * pixelDensity - (maxScreenWidth *
scaleFillNative)) / 2,
(screenHeight * pixelDensity - (maxScreenHeight *
scaleFillNative)) / 2
);
}
resize();
// MOUSE INPUT:
[Link]("mousemove", gameInput, false);
function gameInput(e) {
mouseX = [Link];
mouseY = [Link];
}
let clicks = {
left: false,
middle: false,
right: false,
};
[Link]("mousedown", mouseDown, false);
function mouseDown(e) {
if (attackState != 1) {
attackState = 1;
if ([Link] == 0) {
[Link] = true;
} else if ([Link] == 1) {
[Link] = true;
} else if ([Link] == 2) {
[Link] = true;
}
}
}
[Link]("mouseup", [Link](mouseUp));
function mouseUp(e) {
if (attackState != 0) {
attackState = 0;
if ([Link] == 0) {
[Link] = false;
} else if ([Link] == 1) {
[Link] = false;
} else if ([Link] == 2) {
[Link] = false;
}
}
}
[Link]("wheel", wheel, false);
function wheel(e) {
if ([Link] < 0) {
[Link] = true;
} else {
[Link] = false;
}
}
// INPUT UTILS:
function getMoveDir() {
let dx = 0;
let dy = 0;
for (let key in moveKeys) {
let tmpDir = moveKeys[key];
dx += !!keys[key] * tmpDir[0];
dy += !!keys[key] * tmpDir[1];
}
return dx == 0 && dy == 0 ? undefined : Math.atan2(dy, dx);
}
function getSafeDir() {
if (!player)
return 0;
if (![Link]) {
lastDir = Math.atan2(mouseY - (screenHeight / 2), mouseX -
(screenWidth / 2));
}
return lastDir || 0;
}
function getAttackDir(debug) {
if (debug) {
if (!player)
return "0";
if ([Link] || (([Link] || (useWasd && near.dist2 <=
[Link][[Link][0]].range + [Link] * 1.8 && ![Link])) &&
[Link][[Link][0]] == 0))
lastDir = getEl("weaponGrind").checked ? "getSafeDir()" :
[Link] ? [Link] ? "(near.aim2 + [Link])" : "near.aim2" : "getSafeDir()";
else
if ([Link] && [Link][[Link][1] == 10 ?
[Link][1] : [Link][0]] == 0)
lastDir = "getSafeDir()";
else
if ([Link] && [Link][[Link]() ?
[Link][1] : [Link][0]] == 0)
lastDir = "[Link]";
else
if (![Link]) {
if ([Link]) return "undefined";
lastDir = "getSafeDir()";
}
return lastDir;
} else {
if (!player)
return 0;
if ([Link] || (([Link] || (useWasd && near.dist2 <=
[Link][[Link][0]].range + [Link] * 1.8 && ![Link])) &&
[Link][[Link][0]] == 0))
lastDir = getEl("weaponGrind").checked ? getSafeDir() :
[Link] ? [Link] ? (near.aim2 + [Link]) : near.aim2 : getSafeDir();
else
if ([Link] && [Link][[Link][1] == 10 ?
[Link][1] : [Link][0]] == 0)
lastDir = getSafeDir();
else
if ([Link] && [Link][[Link]() ?
[Link][1] : [Link][0]] == 0)
lastDir = [Link];
else
if (![Link]) {
if ([Link]) return undefined;
lastDir = getSafeDir();
}
return lastDir || 0;
}
}
function getVisualDir() {
if (!player)
return 0;
if ([Link] || (([Link] || (useWasd && near.dist2 <=
[Link][[Link][0]].range + [Link] * 1.8 && ![Link])) &&
[Link][[Link][0]] == 0))
lastDir = getEl("weaponGrind").checked ? getSafeDir() :
[Link] ? [Link] ? (near.aim2 + [Link]) : near.aim2 : getSafeDir();
else
if ([Link] && [Link][[Link][1] == 10 ?
[Link][1] : [Link][0]] == 0)
lastDir = getSafeDir();
else
if ([Link] && [Link][[Link]() ?
[Link][1] : [Link][0]] == 0)
lastDir = [Link];
else
if (![Link]) {
lastDir = getSafeDir();
}
return lastDir || 0;
}
// KEYS:
function keysActive() {
return ([Link] != "block" &&
[Link] != "block" &&
!menuCBFocus);
}
function keyDown(event) {
let keyNum = [Link] || [Link] || 0;
if (player && [Link] && keysActive()) {
if (!keys[keyNum]) {
keys[keyNum] = 1;
macro[[Link]] = 1;
if (keyNum == 27) {
openMenu = !openMenu;
$("#modMenus").toggle();
$("#menuTab2").toggle();
$("#menuTab").toggle();
$("#menuDiv").toggle();
} else if (keyNum == 220) {
$("#menuChatDiv").toggle();
} else if (keyNum == 69) {
sendAutoGather();
} else if (keyNum == 67) {
updateMapMarker();
} else if ([Link][keyNum - 49] != undefined) {
[Link] = [Link][keyNum - 49];
} else if (moveKeys[keyNum]) {
sendMoveDir();
} else if ([Link] == "m") {
[Link] = ![Link];
} else if ([Link] == "z") {
[Link] = ![Link];
} else if ([Link] == "Z") {
typeof [Link] == "function" && [Link]();
} else if (keyNum == 32) {
packet("c", 1, getSafeDir(), 1);
packet("c", 0, getSafeDir(), 1);
} else if ([Link] == ",") {
[Link] = true;
}
}
}
}
addEventListener("keydown", [Link](keyDown));
function keyUp(event) {
if (player && [Link]) {
let keyNum = [Link] || [Link] || 0;
if (keyNum == 13) {
toggleMenuChat();
} else if (keysActive()) {
if (keys[keyNum]) {
keys[keyNum] = 0;
macro[[Link]] = 0;
if (moveKeys[keyNum]) {
sendMoveDir();
} else if ([Link] == ",") {
[Link] = false;
}
}
}
}
}
[Link]("keyup", [Link](keyUp));
function sendMoveDir() {
let newMoveDir = getMoveDir();
if (lastMoveDir == undefined || newMoveDir == undefined ||
[Link](newMoveDir - lastMoveDir) > 0.3) {
if (![Link]) {
packet("33", newMoveDir, 1);
}
lastMoveDir = newMoveDir;
}
}
// BUTTON EVENTS:
function bindEvents() {}
bindEvents();
function checkObject() {
let checkColl = [Link](tmp => [Link](tmp) &&
[Link]);
for (let y = 0; y < [Link]; y++) {
grid[y] = [];
for (let x = 0; x < [Link]; x++) {
let tmpXY = {
x: (player.x2 - ([Link] / 2)) +
(([Link] / [Link]) * x),
y: (player.y2 - ([Link] / 2)) +
(([Link] / [Link]) * y)
}
if ([Link]([Link] ? near : pathFind,
tmpXY, [Link] ? 2 : 0, 0) <= ([Link] ? 35 : 60)) {
[Link] = x;
[Link] = y;
grid[y][x] = 0;
continue;
}
let find = [Link](tmp => [Link](tmp, tmpXY,
0, 0) <= chechPathColl(tmp));
if (find) {
if ([Link]) {
grid[y][x] = 0;
continue;
}
grid[y][x] = 1;
} else {
grid[y][x] = 0;
}
}
}
}
function createPath() {
grid = [];
checkObject();
}
function Pathfinder() {
[Link] = ([Link] / 2) * 1.3;
if (![Link] && ([Link] ? [Link] : true)) {
if (near.dist2 <= [Link][[Link][0]].range) {
packet("33", undefined, 1);
} else {
createPath();
[Link](grid);
[Link]([0]);
[Link]();
[Link]((grid[0].length / 2), ([Link] / 2),
[Link], [Link], function (path) {
if (path === null) {
[Link] = [];
if (near.dist2 <=
[Link][[Link][0]].range) {
packet("33", undefined, 1);
} else {
packet("33", near.aim2, 1);
}
} else {
[Link] = path;
if ([Link] > 1) {
let tmpXY = {
x: (player.x2 - ([Link] / 2)) +
(([Link] / [Link]) * path[1].x),
y: (player.y2 - ([Link] / 2)) +
(([Link] / [Link]) * path[1].y)
}
packet("33", [Link](tmpXY, player, 0,
2), 1);
}
}
});
[Link]();
}
}
}
/** PATHFIND TEST */
// SETUP GAME:
function setupGame(yourSID) {
keys = {};
macro = {};
playerSID = yourSID;
attackState = 0;
inGame = true;
packet("c", 0, getAttackDir(), 1);
[Link] = true;
if (firstSetup) {
firstSetup = false;
[Link] = 0;
}
}
// REMOVE PLAYER:
function removePlayer(id) {
for (let i = 0; i < [Link]; i++) {
if (players[i].id == id) {
addMenuChText("Game", players[i].name + " left the game",
"yellow");
[Link](i, 1);
break;
}
}
}
// UPDATE HEALTH:
function updateHealth(sid, value) {
tmpObj = findPlayerBySID(sid);
if (tmpObj) {
[Link] = [Link];
[Link] = value;
[Link]();
if ([Link] > [Link]) {
[Link] = [Link] - [Link];
[Link]([sid, value, [Link]]);
} else {
}
if ([Link] <= 0) {
/*[Link]((hmm) => {
[Link] = [Link];
});*/
}
}
}
// KILL PLAYER:
function killPlayer() {
petals = [];
inGame = false;
lastDeath = {
x: player.x,
y: player.y,
};
/*[Link] = "block";
[Link] = "block";
[Link] = "none";*/
if ([Link]) {
getEl("ot-sdk-btn-floating").[Link] = "none";
packet("sp", {
name: lastsp[0],
moofoll: lastsp[1],
skin: lastsp[2]
});
}
}
// UPDATE AGE:
function updateAge(xp, mxp, age) {
if (xp != undefined)
[Link] = xp;
if (mxp != undefined)
[Link] = mxp;
if (age != undefined)
[Link] = age;
}
// UPDATE UPGRADES:
function updateUpgrades(points, age) {
[Link] = points;
[Link] = age;
if (points > 0) {
[Link] = 0;
[Link](upgradeHolder);
for (let i = 0; i < [Link]; ++i) {
if ([Link][i].age == age && (testMode ||
[Link][i].pre == undefined || [Link]([Link][i].pre)
>= 0)) {
let e = [Link]({
id: "upgradeItem" + i,
class: "actionBarItem",
onmouseout: function () {
showItemInfo();
},
parent: upgradeHolder
});
[Link] = getEl("actionBarItem" +
i).[Link];
[Link](i);
}
}
for (let i = 0; i < [Link]; ++i) {
if ([Link][i].age == age && (testMode ||
[Link][i].pre == undefined || [Link]([Link][i].pre) >= 0)) {
let tmpI = ([Link] + i);
let e = [Link]({
id: "upgradeItem" + tmpI,
class: "actionBarItem",
onmouseout: function () {
showItemInfo();
},
parent: upgradeHolder
});
[Link] = getEl("actionBarItem" +
tmpI).[Link];
[Link](tmpI);
}
}
for (let i = 0; i < [Link]; i++) {
(function (i) {
let tmpItem = getEl('upgradeItem' + i);
[Link] = function () {
if ([Link][i]) {
showItemInfo([Link][i], true);
} else {
showItemInfo([Link][i -
[Link]]);
}
};
[Link] = [Link](function () {
packet("6", i);
});
[Link](tmpItem);
})(tmpList[i]);
}
if ([Link]) {
[Link] = "block";
[Link] = "block";
[Link] = "SELECT ITEMS (" + points + ")";
} else {
[Link] = "none";
[Link] = "none";
showItemInfo();
}
} else {
[Link] = "none";
[Link] = "none";
showItemInfo();
}
}
// KILL OBJECT:
function killObject(sid) {
let findObj = findObjectBySid(sid);
[Link](sid);
if (player) {
for (let i = 0; i < [Link]; i++) {
if (breakObjects[i].sid == sid) {
[Link](i, 1);
break;
}
}
if () {
[Link]({x: findObj.x, y: findObj.y});
}
if ([Link] > 8) {
[Link]();
}
[Link](findObj);
}
}
if ([Link] <= 0) {
if (![Link]) {
[Link] = true;
if (tmpObj != player) {
addMenuChText("Game", `${[Link]} {$
{[Link]}} Is Dead`, "yellow");
}
addDeadPlayer(tmpObj);
}
}
if (tmpObj == player) {
if ([Link] == 7 && (damaged == 5 ||
([Link] == 13 && damaged == 2))) {
if ([Link]) {
[Link] = false;
[Link] = true;
}
bullTicked = true;
}
if (inGame) {
let attackers = getAttacker(damaged);
let gearDmgs = [0.25, 0.45].map((val) => val *
[Link][[Link][0]].dmg * soldierMult());
let includeSpikeDmgs = !bullTicked &&
[Link](damaged);
let healTimeout = 140 - [Link];
let slowHeal = function(timer) {
setTimeout(() => {
healer();
}, timer);
}
if (getEl("healingBeta").checked) {
if ([Link]) {
let by = [Link]((tmp) => {
if (tmp.dist2 <= ([Link] <
9 ? 300 : 700)) {
tmpDir =
[Link](player, tmp, 2, 2);
if ([Link](tmpDir,
tmp.d2) <= [Link]) {
return tmp;
}
}
});
if ([Link]) {
let maxDamage = (includeSpikeDmgs ?
10 : 10);
if (damaged > maxDamage &&
([Link] - [Link]) > 1) {
[Link] = true;
[Link] = [Link];
let shame = 5;
if ([Link] < shame)
{
healer();
} else {
if([Link] < 100) {
[Link](() => {
healer();
},1)
} else
slowHeal(healTimeout);
}
} else {
if([Link] < 100) {
[Link](() => {
healer();
},1)
} else slowHeal(healTimeout);
}
} else {
if([Link] < 100) {
[Link](() => {
healer();
},2)
} else slowHeal(healTimeout);
}
} else {
if([Link] < 100) {
[Link](() => {
healer();
},2)
} else slowHeal(healTimeout);
}
} else {
if (damaged >= (includeSpikeDmgs ? 8 : 20)
&& [Link] >= 25 && ([Link] - [Link]) > 1) {
[Link] = true;
[Link] = [Link];
let shame = 5;
if ([Link] < shame) {
healer();
} else {
slowHeal(healTimeout);
}
} else {
slowHeal(healTimeout);
}
}
if (damaged >= 20 && [Link] == 11 &&
[Link] != 6) [Link] = true;
}
} else {
if (![Link] && ([Link] == 5
|| ([Link] == 13 && [Link] == 2))) {
[Link] = true;
}
}
});
advHeal = [];
}
[Link]((tmp) => {
if (![Link] && player != tmp) {
[Link] = {
0: 0,
1: 0,
2: 0,
3: 0,
4: 0,
5: 0,
6: 0,
7: 0,
8: 0,
9: 0,
10: 0,
11: 0,
12: 0,
13: 0,
14: 0,
15: 0,
53: 0,
};
}
if ([Link]) {
[Link] = 0;
}
if ([Link]) {
[Link] = 0;
}
[Link]();
});
if (inGame) {
if ([Link]) {
if ([Link]) {
[Link] = false;
if (near.dist2 <= 310 &&  && !
[Link](near)) {
if ([Link][53] == 0){
[Link] = true;
[Link] = false;
//modLog("EmpAnti");
} else {
[Link] = false;
[Link] = true;
//modLog("SoldierAnti");
}
}
}
let prehit = [Link](tmp => [Link] &&
[Link] && [Link](player) && [Link](tmp, near, 0, 3) <=
([Link] + [Link])).sort(function (a, b) {
return [Link](a, near, 0, 2) -
[Link](b, near, 0, 2);
})[0];
let doPLH = [Link](tmp => [Link] &&
[Link] && [Link](player) && [Link](tmp, near, 0, 3) <=
140).sort(function (a, b) {
return [Link](a, near, 0, 2) -
[Link](b, near, 0, 2);
})[0];
if(doPLH) SHP = true
if (prehit) {
if (near.dist2 <=
[Link][[Link][0]].range + [Link] * 1.8 && [Link])
{
[Link] = true;
[Link] = true;
//addMenuChText("Mod", "Predict Building
Death", "lightBlue");
if ([Link] && [Link][1] == 15
&& [Link][53] == 0 && [Link](player, near)) {
[Link] = true;
}
}
}
let antiSpikeTick = [Link](tmp => [Link]
&& [Link] &&  && [Link](tmp, player, 0, 3) <
([Link] + [Link])).sort(function (a, b) {
return [Link](a, player, 0, 2) -
[Link](b, player, 0, 2);
})[0];
if (antiSpikeTick && ![Link]) {
if (near.dist2 <= [Link][5].range +
[Link] * 1.8) {
my.anti0Tick = 1;
[Link] = "Anti Vel SpikeTick " +
[Link];
[Link] = 2000;
}
}
}
if ((useWasd ? true : (([Link](true) >= 100 ?
[Link](true) : [Link](false)) >= ([Link][1] ==
10 ? 95 : 100))) && near.dist2 <= [Link][[Link][1] == 10 ?
[Link][1] : [Link][0]].range + [Link] * 1.8 && ([Link] ||
(useWasd && [Link]([Link]() * 5) == 0)) && ![Link] && ![Link]
&& [Link][[Link][0]] == 0 && [Link][[Link][1]] == 0
&& (useWasd ? true : getEl("instaType").value == "oneShot" ? ([Link][53] <=
([Link][1] == 10 ? 0 : [Link])) : true) && [Link](player,
near)) {
if ([Link](true) >= 100) {
[Link] = useWasd ? false :
[Link] ? false : true;
} else {
[Link] = false;
}
[Link] = true;
} else {
[Link] = false;
}
macro.q && place(0, getAttackDir());
macro.f && place(4, getSafeDir());
macro.v && place(2, getSafeDir());
macro.y && place(5, getSafeDir());
macro.h && place([Link](22), getSafeDir());
macro.n && place(3, getSafeDir());
if ([Link] % 2 == 0) {
if ([Link]) {
let plcAng = 1.25;
for (let i = -plcAng; i <= plcAng; i += plcAng) {
checkPlace(3, [Link]([Link],
player, 2, 2) + i);
}
} else {
if ([Link]) {
for (let i = 0; i < [Link] * 2; i += [Link] /
2) {
checkPlace([Link](20),
[Link]([Link], player, 2, 2) + i);
}
}
}
}
if ([Link]) {
[Link]([Link][1] == 10 ? "rev" :
[Link] ? "nobull" : "normal");
}
if ([Link]) {
[Link] = false;
if ([Link][[Link][0]] == 0 && !
[Link]) {
[Link]();
}
}
if ([Link]) {
[Link] = false;
if ([Link]) {
[Link] = false;
if ([1, 2, 3, 4, 5, 6].includes([Link][0])
&& [Link][[Link][1]] == 0 && ![Link]) {
[Link]("rev");
//addMenuChText("Mod", "Rev SyncHit",
"lightBlue");
}
} else {
if ([1, 2, 3, 4, 5, 6].includes([Link][0])
&& [Link][[Link][0]] == 0 && ![Link]) {
[Link]();
if ([Link]) {
//addMenuChText("Mod", "SyncHit",
"lightBlue");
}
}
}
}
if (![Link] && ([Link] || [Link]) && !
[Link]) {
if (([Link] != ([Link] &&
[Link][1] == 10 ? [Link][1] : [Link][0])) ||
[Link] > -1) {
selectWeapon([Link] && [Link][1] ==
10 ? [Link][1] : [Link][0]);
}
if ([Link][[Link] && [Link][1] ==
10 ? [Link][1] : [Link][0]] == 0 && ![Link]) {
sendAutoGather();
[Link] = 1;
[Link](() => {
sendAutoGather();
[Link] = 0;
}, 1);
}
}
if (useWasd && ![Link] && ![Link] && !
[Link] && near.dist2 <= ([Link][[Link][0]].range + [Link]
* 1.8) && ![Link]) {
if (([Link] != [Link][0]) ||
[Link] > -1) {
selectWeapon([Link][0]);
}
if ([Link][[Link][0]] == 0 && !
[Link]) {
sendAutoGather();
[Link] = 1;
[Link](() => {
sendAutoGather();
[Link] = 0;
}, 1);
}
}
let nearSpike = [];
nearSpike = [];
nearSpike = [Link]((tmp)=>[Link] && [Link]
!= [Link] &&  && [Link] && [Link](tmp,
player, 0, 2) < ([Link] + [Link])).sort(function(a, b) {
return ([Link](a, player, 0, 2) -
[Link](b, player, 0, 2));
})[0];
if ([Link]) {
if (![Link] && ![Link] && ![Link]) {
if ([Link] != ([Link]() ?
[Link][1] : [Link][0]) || [Link] > -1) {
selectWeapon([Link]() ?
[Link][1] : [Link][0]);
}
if([Link]()) LATH = true;
if ([Link][[Link]() ?
[Link][1] : [Link][0]] == 0 && ![Link]) {
sendAutoGather();
[Link] = 1;
[Link](() => {
sendAutoGather();
[Link] = 0;
}, 1);
}
}
}
if ([Link] && ![Link]) {
if (![Link] && [Link][[Link][1]]
== 0) {
if ([Link] && [Link][0] != 4 &&
[Link][1] == 9 && [Link] >= 9 && [Link]) {
[Link]();
} else {
[Link]();
}
}
}
if (macro.t && ![Link]) {
if (![Link] && [Link][[Link][0]]
== 0 && ([Link][1] == 15 ? ([Link][[Link][1]] == 0) : true)
&& ([Link][0] == 5 || ([Link][0] == 4 && [Link][1] == 15)))
{
instaC[([Link][0] == 4 && [Link][1]
== 15) ? "kmTickMovement" : "tickMovement"]();
}
}
if (macro["."] && ![Link]) {
if (![Link] && [Link][[Link][0]]
== 0 && ([9, 12, 13, 15].includes([Link][1]) ?
([Link][[Link][1]] == 0) : true)) {
[Link]();
}
}
if ([Link][1] && ![Link] && ![Link] && !
[Link] && ![Link] && !(useWasd && near.dist2 <=
[Link][[Link][0]].range + [Link] * 1.8)) {
if ([Link][[Link][0]] == 0 &&
[Link][[Link][1]] == 0) {
if (![Link]) {
[Link] = true;
let fastSpeed =
[Link][[Link][0]].spdMult < [Link][[Link][1]].spdMult
? 1 : 0;
if ([Link] !=
[Link][fastSpeed] || [Link] > -1) {
selectWeapon([Link][fastSpeed]);
}
}
} else {
[Link] = false;
if ([Link][[Link][0]] > 0) {
if ([Link] != [Link][0] ||
[Link] > -1) {
selectWeapon([Link][0]);
}
} else if ([Link][[Link][0]] == 0
&& [Link][[Link][1]] > 0) {
if ([Link] != [Link][1] ||
[Link] > -1) {
selectWeapon([Link][1]);
}
}
}
}
if (![Link] && ![Link]) {
[Link]();
}
if (!macro.q && !macro.f && !macro.v && !macro.h && !
macro.n) {
packet("2", getAttackDir());
}
let hatChanger = function () {
if (my.anti0Tick > 0 || [Link]) {
buyEquip(6, 0);
} else {
if ([Link] || [Link]) {
if (([Link] > 0 && ([Link] -
[Link]) % [Link] === 0 && [Link] != 45) ||
[Link]) {
buyEquip(7, 0);
} else {
if ([Link]) {
buyEquip([Link][[Link][0]] == 0 ? getEl("weaponGrind").checked ? 40
: 7 : [Link] ? 22 : [Link] ? 6 : (getEl("antiBullType").value
== "abreload" && [Link] > 0) ? 11 : near.dist2 <= 200 ?
(getEl("antiBullType").value == "abalway" && [Link][[Link]] ==
0) ? 11 : 6 : biomeGear(1, 1), 0);
} else if ([Link]) {
buyEquip([Link][[Link] &&
[Link][1] == 10 ? [Link][1] : [Link][0]] == 0 ? 40 :
[Link] ? 22 : [Link] ? 6
: (getEl("antiBullType").value
== "abreload" && [Link] > 0) ? 11 : near.dist2 <= 200 ?
(getEl("antiBullType").value == "abalway" && [Link][[Link]] ==
0) ? 11 : [Link] ? 6 : 20 : biomeGear(1, 1), 0);
}
}
} else if ([Link]) {
if ([Link] <=
[Link][[Link]].dmg ? false : ([Link][[Link][1]
== 10 ? [Link][1] : [Link][0]] == 0)) {
buyEquip(40, 0);
} else {
if (([Link] > 0 && ([Link] -
[Link]) % [Link] === 0 && [Link] != 45) ||
[Link]) {
buyEquip(7, 0);
} else {
buyEquip(([Link] || near.dist2
> 300 || ![Link]) ? 22 : near.dist2 < 185 && [Link][[Link]]
== 0 && !TOT && LATH ? 26 : 6, 0);
}
}
} else {
if ([Link] || [Link]) {
buyEquip([Link] ? 22 : 6, 0);
} else {
if (([Link] > 0 && ([Link] -
[Link]) % [Link] === 0 && [Link] != 45) ||
[Link]) {
buyEquip(7, 0);
} else {
if (near.dist2 < 180) {
buyEquip([Link][[Link][0]] == 0 ? getEl("weaponGrind").checked ? 40
: 7 : [Link] ? 22 : 6, 0);
} else if ([Link]) {
buyEquip([Link][[Link] &&
[Link][1] == 10 ? [Link][1] : [Link][0]] == 0 ? 40 :
[Link] ? 22 : 6, 0);
}
}
} else if (near.dist2 <=
[Link][[Link][0]].range + [Link] * 1.8 && ![Link]) {
if (([Link] > 0 && ([Link] -
[Link]) % [Link] === 0 && [Link] != 45) ||
[Link]) {
buyEquip(7, 0);
} else {
buyEquip([Link][[Link][0]]
== 0 ? 7 : [Link] ? 22 : 6, 0);
}
} else if ([Link]) {
if ([Link] <=
[Link][[Link]].dmg ? false : ([Link][[Link][1]
== 10 ? [Link][1] : [Link][0]] == 0)) {
buyEquip(40, 0);
} else {
if (([Link] > 0 && ([Link] -
[Link]) % [Link] === 0 && [Link] != 45) ||
[Link]) {
buyEquip(7, 0);
} else {
buyEquip([Link] ? 22 :
near.dist2 > 165 && near.dist2 < 185 && [Link][[Link]] == 0 ? 26 :
6, 0);
}
}
} else {
if ([Link]) {
buyEquip(22, 0);
} else {
if (([Link] > 0 && ([Link] -
[Link]) % [Link] === 0 && [Link] != 45) ||
[Link]) {
buyEquip(7, 0);
} else {
buyEquip(6, 0);
}
}
}
}
if ([Link] || [Link]) {
if ([Link]) {
buyEquip([Link][[Link]] ==
0 && [Link] && near.dist2 <= ([Link][[Link]].range +
([Link] * 1.8)) ? [Link] != 45 ? 18 : 21 : 0, 1);
} else if ([Link]) {
buyEquip([Link] && near.dist2 <=
([Link][[Link]].range + ([Link] * 1.8)) ? 19 : 11, 1);
}
} else if (near.dist2 <=
[Link][[Link][0]].range + [Link] * 1.8 && ![Link]) {
buyEquip([Link] && near.dist2 <=
([Link][[Link]].range + ([Link] * 1.8)) ?
[Link] != 45 ? 19 : 21 : 0, 1);
} else if ([Link]) {
buyEquip([Link] && near.dist3 <=
([Link][[Link]].range + ([Link] * 2.2)) ? [Link]
== 45 ? 21 : 13 : 11, 1);
} else {
buyEquip(11, 1);
}
}
if ([Link] != "block" && ![Link] &&
![Link]) {
if (useWasd) {
wasdGears();
} else {
hatChanger();
accChanger();
}
}
//lastMoveDir = getSafeDir();
//packet("33", lastMoveDir, 1);
if ([Link] && [Link] && ![Link] && !
[Link]) {
autoPush();
} else {
if ([Link]) {
[Link] = false;
packet("33", lastMoveDir||undefined, 1);
}
}
if (![Link] && [Link]) {
Pathfinder();
}
if ([Link]) {
[Link] = false;
}
if ([Link]) {
[Link] = false;
}
if ([Link]) {
[Link] = false;
}
if ([Link]) {
[Link] = false;
}
if (my.anti0Tick > 0) {
my.anti0Tick--;
}
if ([Link]) {
[Link] = false;
}
if ([Link]) {
[Link] = false;
}
}
}
if ([Link]) {
[Link]((bots) => {
if (true) {
bots[0].ssend("player", player, near, botIDS);
}
});
}
}
// UPDATE LEADERBOARD:
function updateLeaderboard(data) {
lastLeaderboardData = data;
return;
[Link](leaderboardData);
let tmpC = 1;
for (let i = 0; i < [Link]; i += 3) {
(function(i) {
[Link]({
class: "leaderHolder",
parent: leaderboardData,
children: [
[Link]({
class: "leaderboardItem",
style: "color:" + ((data[i] == playerSID) ?
"#fff" : "rgba(255,255,255,0.6)"),
text: tmpC + ". " + (data[i+1] != "" ?
data[i+1] : "unknown")
}),
[Link]({
class: "leaderScore",
text: [Link](data[i+2]) || "0"
})
]
});
})(i);
tmpC++;
}
}
// ADD AI:
function loadAI(data) {
for (let i = 0; i < [Link]; ++i) {
ais[i].forcePos = !ais[i].visible;
ais[i].visible = false;
}
if (data) {
let tmpTime = [Link]();
for (let i = 0; i < [Link];) {
tmpObj = findAIBySID(data[i]);
if (tmpObj) {
[Link] = data[i + 1];
tmpObj.t1 = (tmpObj.t2 === undefined) ? tmpTime :
tmpObj.t2;
tmpObj.t2 = tmpTime;
tmpObj.x1 = tmpObj.x;
tmpObj.y1 = tmpObj.y;
tmpObj.x2 = data[i + 2];
tmpObj.y2 = data[i + 3];
tmpObj.d1 = (tmpObj.d2 === undefined) ? data[i + 4] :
tmpObj.d2;
tmpObj.d2 = data[i + 4];
[Link] = data[i + 5];
[Link] = 0;
[Link] = true;
} else {
tmpObj = [Link](data[i + 2], data[i + 3],
data[i + 4], data[i + 1]);
tmpObj.x2 = tmpObj.x;
tmpObj.y2 = tmpObj.y;
tmpObj.d2 = [Link];
[Link] = data[i + 5];
if (![Link][data[i + 1]].name)
[Link] = [Link][data[i + 6]];
[Link] = true;
[Link] = data[i];
[Link] = true;
}
i += 7;
}
}
}
// ANIMATE AI:
function animateAI(sid) {
tmpObj = findAIBySID(sid);
if (tmpObj) [Link]();
}
// GATHER ANIMATION:
function gatherAnimation(sid, didHit, index) {
tmpObj = findPlayerBySID(sid);
if (tmpObj) {
[Link](didHit, index);
[Link] = index;
[Link] = 1;
if (didHit) {
let tmpObjects = [Link];
[Link] = [];
[Link](() => {
// refind
tmpObj = findPlayerBySID(sid);
let val = [Link][index].dmg *
([Link][tmpObj[(index < 9 ? "prima" : "seconda") +
"ryVariant"]].val) * ([Link][index].sDmg || 1) * ([Link] == 40 ?
3.3 : 1);
[Link]((healthy) => {
[Link] -= val;
});
}, 1);
}
}
}
// SHOOT TURRET:
function shootTurret(sid, dir) {
tmpObj = findObjectBySid(sid);
if (tmpObj) {
if ([Link]) {
[Link] = dir;
} else {
[Link] = dir;
}
[Link] += [Link] * [Link](dir +
[Link]);
[Link] += [Link] * [Link](dir +
[Link]);
}
}
// ACTION BAR:
function updateItems(data, wpn) {
if (data) {
if (wpn) {
[Link] = data;
[Link] = [Link][0];
[Link] = [Link][1];
if (![Link]) {
selectWeapon([Link][0]);
}
} else {
[Link] = data;
}
}
for (let i = 0; i < [Link]; i++) {
let tmpI = [Link] + i;
getEl("actionBarItem" + tmpI).[Link] =
[Link]([Link][i].id) >= 0 ? "inline-block" : "none";
}
for (let i = 0; i < [Link]; i++) {
getEl("actionBarItem" + i).[Link] =
[Link][[Link][i].type] == [Link][i].id ? "inline-block" :
"none";
}
let kms = [Link][0] == 3 && [Link][1] == 15;
if (kms) {
getEl("actionBarItem3").[Link] = "none";
getEl("actionBarItem4").[Link] = "inline-block";
}
}
// ADD PROJECTILE:
function addProjectile(x, y, dir, range, speed, indx, layer, sid) {
[Link](x, y, dir, range, speed, indx,
null, null, layer, inWindow).sid = sid;
[Link]([Link](arguments));
}
// REMOVE PROJECTILE:
function remProjectile(sid, range) {
for (let i = 0; i < [Link]; ++i) {
if (projectiles[i].sid == sid) {
projectiles[i].range = range;
let tmpObjects = [Link];
[Link] = [];
[Link](() => {
let val = projectiles[i].dmg;
[Link]((healthy) => {
if ([Link]) {
[Link] -= val;
}
});
}, 1);
}
}
}
function setAlliancePlayers(data) {
alliancePlayers = data;
}
// STORE MENU:
function updateStoreItems(type, id, index) {
if (index) {
if (!type)
[Link][id] = 1;
else {
[Link] = id;
}
} else {
if (!type)
[Link][id] = 1,
id == 7 && ([Link] = true); // testing perfect
bulltick...
else {
[Link] = id;
}
}
}
// SEND MESSAGE:
function receiveChat(sid, message) {
let tmpPlayer = findPlayerBySID(sid);
if (tmpPlayer) {
addMenuChText(`${[Link]} {${[Link]}}`, message,
"white");
if ([Link]) {
[Link](new addCh(tmpPlayer.x, tmpPlayer.y, message,
tmpPlayer));
} else {
[Link] = ((text) => {
let tmpString;
[Link]((list) => {
if ([Link](list) > -1) {
tmpString = "";
for (var y = 0; y < [Link]; ++y) {
tmpString += [Link]?"o":"M";
}
var re = new RegExp(list, 'g');
text = [Link](re, tmpString);
}
});
return text;
})(message);
[Link] = [Link];
}
} else {
addMenuChText(`${"Anonymous"} {null}`, message, "grey");
}
}
// MINIMAP:
function updateMinimap(data) {
minimapData = data;
}
// BOT:
let bots = [];
let ranLocation = {
x: [Link](35, 14365),
y: [Link](35, 14365)
};
setInterval(() => {
ranLocation = {
x: [Link](35, 14365),
y: [Link](35, 14365)
};
}, 60000);
class Bot {
constructor(id, sid, hats, accessories) {
[Link] = id;
[Link] = sid;
[Link] = null;
[Link] = 0;
[Link] = 0;
[Link] = 0;
[Link] = 0;
[Link] = [];
[Link] = [];
this.dist2 = 0;
this.aim2 = 0;
[Link] = 0;
[Link] = {};
[Link] = 0;
[Link] = 0;
[Link] = 0;
[Link] = {};
for (let i = 0; i < [Link]; ++i) {
if (accessories[i].price <= 0)
[Link][accessories[i].id] = 1;
}
[Link] = {};
for (let i = 0; i < [Link]; ++i) {
if (hats[i].price <= 0)
[Link][hats[i].id] = 1;
}
[Link] = function (moofoll) {
[Link] = 0;
[Link] = [];
[Link] = [];
[Link] = true;
[Link] = true;
[Link] = false;
[Link] = false;
[Link] = 0;
[Link] = 0;
[Link] = 0;
[Link] = 0;
[Link] = {};
[Link] = 0;
[Link] = 0;
[Link] = 0;
[Link] = 0;
[Link] = 0;
[Link] = -1;
[Link] = 0;
[Link] = {};
[Link] = 0;
[Link] = 300;
[Link] = 0;
[Link] = 1;
[Link] = 0;
[Link] = 2;
[Link] = 0;
this.x = 0;
this.y = 0;
[Link] = 0;
[Link] = 0;
[Link] = 0;
[Link] = 1;
[Link] = 0;
[Link] = 0;
[Link] = 0;
[Link] = 0;
[Link] = 0;
[Link] = 100;
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link]();
[Link](moofoll);
[Link] = [0, 3, 6, 10];
[Link] = [0];
[Link] = 0;
[Link] = [];
[Link] = {};
[Link] = "";
};
// RESET RESOURCES:
[Link] = function (moofoll) {
for (let i = 0; i < [Link]; ++i) {
this[[Link][i]] = moofoll ? 100 : 0;
}
};
// SET DATA:
[Link] = function (data) {
[Link] = data[0];
[Link] = data[1];
[Link] = data[2];
this.x = data[3];
this.y = data[4];
[Link] = data[5];
[Link] = data[6];
[Link] = data[7];
[Link] = data[8];
[Link] = data[9];
};
// SHAME SYSTEM:
[Link] = function () {
if ([Link] < [Link]) {
if ([Link]) {
let timeSinceHit = [Link] - [Link];
[Link] = 0;
if (timeSinceHit < 2) {
[Link]++;
} else {
[Link] = [Link](0, [Link] -
2);
}
}
} else if ([Link] > [Link]) {
[Link] = [Link];
}
};
[Link] = function(websc) {
[Link]();
};
class BotObject {
constructor(sid) {
[Link] = sid;
// INIT:
[Link] = function (x, y, dir, scale, type, data, owner) {
data = data || {};
[Link] = true;
this.x = x;
this.y = y;
[Link] = scale;
[Link] = owner;
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link] != undefined;
};
}
};
class BotObjManager {
constructor(botObj, fOS) {
// DISABLE OBJ:
[Link] = function (obj) {
[Link] = false;
if ([Link]) {
} else {
[Link] = false;
}
};
// ADD NEW:
let tmpObj;
[Link] = function (sid, x, y, dir, s, type, data, setSID,
owner) {
tmpObj = fOS(sid);
if (!tmpObj) {
tmpObj = [Link]((tmp) => ![Link]);
if (!tmpObj) {
tmpObj = new BotObject(sid);
[Link](tmpObj);
}
}
if (setSID) {
[Link] = sid;
}
[Link](x, y, dir, s, type, data, owner);
};
// DISABLE BY SID:
[Link] = function (sid) {
let find = fOS(sid);
if (find) {
[Link](find);
}
};
function botSpawn(id) {
let bot;
if (testMode) {
return;
bot = id && new
WebSocket(`[Link]
} else {
bot = id && new WebSocket([Link]("&")[0] + "&token=" +
encodeURIComponent(id));
}
let botPlayer = new Map();
let botSID;
let botObj = [];
let nearObj = [];
let bD = {
x: 0,
y: 0,
inGame: false,
closeSocket: false,
whyDie: ""
};
let oldXY = {
x: 0,
y: 0,
};
[Link] = "arraybuffer";
[Link] = true;
[Link] = function (type) {
// EXTRACT DATA ARRAY:
let data = [Link](arguments, 1);
// SEND MESSAGE:
let binary = [Link]([type, data]);
[Link](binary);
};
[Link] = function () {
[Link]("sp", {
name: "AAAAAAAAAAAAAAA",
moofoll: 1,
skin: "__proto__"
});
};
[Link] = function(index) {
[Link]("6", index);
};
[Link] = function(id, a) {
try {
let item = [Link][[Link][id]];
if ([Link][[Link]] == undefined ? true
: [Link][[Link]] < ([Link] ? 99 : [Link] ?
[Link] : 99)) {
[Link]("5", [Link][id]);
[Link]("c", 1, a);
[Link]("5", [Link], true);
}
} catch(e) {
}
};
[Link] = function(id, index) {
let nID = 0;
if ([Link] && [Link]) {
if (index == 0) {
if ([Link][id]) {
if ([Link] != id) {
[Link]("13c", 0, id, 0);
}
} else {
let find = findID(hats, id);
if (find) {
if ([Link] >= [Link]) {
[Link]("13c", 1, id, 0);
[Link]("13c", 0, id, 0);
} else {
if ([Link] != nID) {
[Link]("13c", 0, nID, 0);
}
}
} else {
if ([Link] != nID) {
[Link]("13c", 0, nID, 0);
}
}
}
} else if (index == 1) {
if ([Link][id]) {
if ([Link] != id) {
[Link]("13c", 0, id, 1);
}
} else {
let find = findID(accessories, id);
if (find) {
if ([Link] >= [Link]) {
[Link]("13c", 1, id, 1);
[Link]("13c", 0, id, 1);
} else {
if ([Link] != 0) {
[Link]("13c", 0, 0, 1);
}
}
} else {
if ([Link] != 0) {
[Link]("13c", 0, 0, 1);
}
}
}
}
}
};
[Link] = function() {
if (botPlayer.y2 >= [Link] / 2 - [Link] / 2
&& botPlayer.y2 <= [Link] / 2 + [Link] / 2) {
[Link](31, 0);
} else {
if ([Link] == undefined) {
[Link](22, 0);
} else {
if (botPlayer.y2 <= [Link]) {
[Link](15, 0);
} else {
[Link](12, 0);
}
}
}
};
let heal = function() {
let healthBased = function() {
if ([Link] == 100)
return 0;
if ([Link] != 45 && [Link] != 56)
{
return [Link]((100 - [Link]) /
[Link][[Link][0]].healing);
}
return 0;
};
for (let i = 0; i < healthBased(); i++) {
[Link](0, [Link]);
}
};
[Link] = function (message) {
let data = new Uint8Array([Link]);
let parsed = [Link](data);
let type = parsed[0];
data = parsed[1];
if (type == "io-init") {
[Link]();
}
if (type == "1") {
botSID = data[0];
}
if (type == "2") {
if (data[1]) {
botPlayer = new Bot(data[0][0], data[0][1], hats,
accessories);
[Link](data[0]);
[Link] = true;
[Link] = true;
botPlayer.x2 = undefined;
botPlayer.y2 = undefined;
[Link](1);
oldXY = {
x: data[0][3],
y: data[0][4]
}
[Link] = true;
[Link]("7", 1);
if ([Link]) {
[Link] = false;
[Link](bD);
}
}
}
if (type == "11") {
[Link]();
[Link] = false;
[Link] = false;
}
if (type == "33") {
let tmpData = data[0];
[Link]++;
[Link] = [];
[Link] = [];
nearObj = [];
for (let i = 0; i < [Link];) {
if (tmpData[i] == [Link]) {
botPlayer.x2 = tmpData[i + 1];
botPlayer.y2 = tmpData[i + 2];
botPlayer.d2 = tmpData[i + 3];
[Link] = tmpData[i + 4];
[Link] = tmpData[i + 5];
[Link] = tmpData[i + 6];
[Link] = tmpData[i + 7];
[Link] = tmpData[i + 8];
[Link] = tmpData[i + 9];
[Link] = tmpData[i + 10];
[Link] = tmpData[i + 11];
[Link] = tmpData[i + 12];
[Link] = true;
bD.x2 = botPlayer.x2;
bD.y2 = botPlayer.y2;
}
i += 13;
}
if ([Link]) {
[Link](bot);
}
if ([Link] != "") {
[Link](bot, [Link]);
[Link] = "";
}
if ([Link]) {
if ([Link]) {
if ([Link] != [Link] &&
([Link] % 9 === 0)) {
[Link] && ([Link]("9"));
[Link]("10", [Link]);
}
}
if ([Link]) {
if ([Link] > 0) {
if ([Link] > 0) {
let gotoDist =
[Link](breakObjects[0], botPlayer, 0, 2);
let gotoAim =
[Link](breakObjects[0], botPlayer, 0, 2);
nearObj = [Link]((e) => [Link] &&
(findSID(breakObjects, [Link]) ? true : !([Link] && ([Link] == [Link] ||
[Link]([Link])))) && [Link] && [Link](e, botPlayer,
0, 2) <= ([Link][[Link]].range + [Link])).sort(function(a,
b) {
return [Link](a, botPlayer, 0,
2) - [Link](b, botPlayer, 0, 2);
})[0];
if (nearObj) {
let isPassed =
[Link](breakObjects[0], nearObj, 0, 0);
if ((gotoDist - isPassed) > 0) {
if (findSID(breakObjects,
[Link]) ? true : ([Link] || [Link] || [Link])) {
if ([Link] !=
undefined) {
[Link] =
undefined;
[Link]("33",
[Link]);
}
} else {
[Link] = gotoAim;
[Link]("33",
[Link]);
}
if ([Link] !=
[Link](nearObj, botPlayer, 0, 2)) {
[Link] =
[Link](nearObj, botPlayer, 0, 2);
[Link]("2",
[Link]);
}
[Link](40, 0);
[Link](11, 1);
} else {
[Link] = gotoAim;
[Link]("33",
[Link]);
[Link]();
[Link](11, 1);
}
} else {
[Link] = gotoAim;
[Link]("33", [Link]);
[Link]();
[Link](11, 1);
}
if (gotoDist > 300) {
if ([Link](oldXY, botPlayer, 0,
2) > 90) {
let aim = [Link](oldXY,
botPlayer, 0, 2);
[Link](3, aim + ([Link] /
2.3));
[Link](3, aim - ([Link] /
2.3));
[Link](3, aim);
oldXY = {
x: botPlayer.x2,
y: botPlayer.y2
};
}
}
} else {
if ([Link] != undefined) {
[Link] = undefined;
[Link]("33", [Link]);
}
nearObj = [Link]((e) => [Link] &&
(findSID(breakObjects, [Link]) ? true : !([Link] && ([Link] == [Link] ||
[Link]([Link])))) && [Link] && [Link](e, botPlayer,
0, 2) <= ([Link][[Link]].range + [Link])).sort(function(a,
b) {
return [Link](a, botPlayer, 0,
2) - [Link](b, botPlayer, 0, 2);
})[0];
if (nearObj) {
if ([Link] !=
[Link](nearObj, botPlayer, 0, 2)) {
[Link] =
[Link](nearObj, botPlayer, 0, 2);
[Link]("2", [Link]);
}
[Link](40, 0);
[Link](11, 1);
} else {
[Link]();
[Link](11, 1);
}
}
} else {
if ([Link] != undefined) {
[Link] = undefined;
[Link]("33", [Link]);
}
}
}
}
}
if (type == "6") {
let tmpData = data[0];
for (let i = 0; i < [Link];) {
[Link](tmpData[i], tmpData[i + 1], tmpData[i
+ 2], tmpData[i + 3], tmpData[i + 4],
tmpData[i + 5], [Link][tmpData[i + 6]], true,
(tmpData[i + 7] >= 0 ? {
sid: tmpData[i + 7]
} : null));
i += 8;
}
}
if (type == "9") {
let index = data[0];
let value = data[1];
if (botPlayer) {
botPlayer[index] = value;
}
}
if (type == "h") {
if (data[0] == botSID) {
[Link] = [Link];
[Link] = data[1];
[Link]();
if ([Link] > [Link]) {
if ([Link] < 5) {
heal();
} else {
setTimeout(() => {
heal();
}, 70);
}
}
}
}
if (type == "12") {
let sid = data[0];
[Link](sid);
}
if (type == "13") {
let sid = data[0];
if ([Link]) [Link](sid);
}
if (type == "14") {
let index = data[0];
let value = data[1];
if (botPlayer) {
[Link][index] = value;
}
}
if (type == "16") {
if (data[0] > 0) {
if ([Link] == 0) {
[Link](3);
} else if ([Link] == 1) {
[Link](17);
} else if ([Link] == 2) {
[Link](31);
} else if ([Link] == 3) {
[Link](27);
} else if ([Link] == 4) {
[Link](9);
} else if ([Link] == 5) {
[Link](38);
} else if ([Link] == 6) {
[Link](4);
} else if ([Link] == 7) {
[Link](25);
}
[Link]++;
}
}
if (type == "17") {
let tmpData = data[0];
let wpn = data[1];
if (tmpData) {
if (wpn) [Link] = tmpData;
else [Link] = tmpData;
}
[Link]("5", [Link][0], true);
}
if (type == "us") {
let type = data[0];
let id = data[1];
let index = data[2];
if (index) {
if (!type)
[Link][id] = 1;
else
[Link] = id;
} else {
if (!type)
[Link][id] = 1;
else
[Link] = id;
}
}
};
[Link] = function() {
[Link] = false;
[Link] = false;
};
}
// RENDER LEAF:
function renderLeaf(x, y, l, r, ctxt) {
let endX = x + (l * [Link](r));
let endY = y + (l * [Link](r));
let width = l * 0.4;
[Link](x, y);
[Link]();
[Link](((x + endX) / 2) + (width * [Link](r +
[Link] / 2)),
((y + endY) / 2) + (width * [Link](r + [Link] / 2)), endX,
endY);
[Link](((x + endX) / 2) - (width * [Link](r +
[Link] / 2)),
((y + endY) / 2) - (width * [Link](r + [Link] / 2)), x, y);
[Link]();
[Link]();
[Link]();
}
// RENDER CIRCLE:
function renderCircle(x, y, scale, tmpContext, dontStroke, dontFill) {
tmpContext = tmpContext || mainContext;
[Link]();
[Link](x, y, scale, 0, 2 * [Link]);
if (!dontFill) [Link]();
if (!dontStroke) [Link]();
}
// RENDER RECTANGLE:
function renderRect(x, y, w, h, ctxt, dontStroke, dontFill) {
if (!dontFill) [Link](x - (w / 2), y - (h / 2), w, h);
if (!dontStroke) [Link](x - (w / 2), y - (h / 2), w, h);
}
// RENDER RECTCIRCLE:
function renderRectCircle(x, y, s, sw, seg, ctxt, dontStroke, dontFill)
{
[Link]();
[Link](x, y);
seg = [Link](seg / 2);
for (let i = 0; i < seg; i++) {
renderRect(0, 0, s * 2, sw, ctxt, dontStroke, dontFill);
[Link]([Link] / seg);
}
[Link]();
}
// RENDER BLOB:
function renderBlob(ctxt, spikes, outer, inner) {
let rot = [Link] / 2 * 3;
let x, y;
let step = [Link] / spikes;
let tmpOuter;
[Link]();
[Link](0, -inner);
for (let i = 0; i < spikes; i++) {
tmpOuter = [Link](outer + 0.9, outer * 1.2);
[Link]([Link](rot + step) * tmpOuter,
[Link](rot + step) * tmpOuter,
[Link](rot + (step * 2)) * inner, [Link](rot + (step *
2)) * inner);
rot += step * 2;
}
[Link](0, -inner);
[Link]();
}
// RENDER TRIANGLE:
function renderTriangle(s, ctx) {
ctx = ctx || mainContext;
let h = s * ([Link](3) / 2);
[Link]();
[Link](0, -h / 2);
[Link](-s / 2, h / 2);
[Link](s / 2, h / 2);
[Link](0, -h / 2);
[Link]();
[Link]();
}
// RENDER PLAYERS:
function renderDeadPlayers(xOffset, yOffset) {
[Link] = "#91b2db";
[Link](dead => [Link]).forEach((dead) => {
[Link](delta);
[Link] = [Link];
[Link] = outlineColor;
[Link]();
[Link](dead.x - xOffset, dead.y - yOffset);
// RENDER PLAYER:
[Link]([Link]);
[Link]([Link] / [Link], [Link] /
[Link]);
renderDeadPlayer(dead, mainContext);
[Link]();
[Link] = "#ccc";
[Link] = "#999";
[Link](dead.x - xOffset - (tmpW / 2), dead.y -
yOffset - (tmpH / 2) + ([Link] * 1.5), tmpW, tmpH, 6);
[Link]();
[Link]();
[Link] = "#fff";
[Link] = "#000";
[Link]("R.I.P", dead.x - xOffset, dead.y +
([Link] * 1.5) - yOffset);
[Link]("R.I.P", dead.x - xOffset, dead.y +
([Link] * 1.5) - yOffset);
[Link]([Link], dead.x - xOffset, dead.y +
([Link] * 1.5) + 20 - yOffset);
[Link]([Link], dead.x - xOffset, dead.y +
([Link] * 1.5) + 20 - yOffset);
});
}
// RENDER PLAYERS:
function renderPlayers(xOffset, yOffset, zIndex) {
[Link] = 1;
[Link] = "#91b2db";
for (var i = 0; i < [Link]; ++i) {
tmpObj = players[i];
if ([Link] == zIndex) {
[Link](delta);
if ([Link]) {
[Link] += (0.002 * delta);
tmpDir = (![Link] && !useWasd && tmpObj ==
player) ? [Link] ? getVisualDir() : getSafeDir() : ([Link]||0);
[Link]();
[Link](tmpObj.x - xOffset, tmpObj.y -
yOffset);
// RENDER PLAYER:
[Link](tmpDir + [Link]);
renderPlayer(tmpObj, mainContext);
[Link]();
}
}
}
}
[Link][[Link][[Link]].projectile], mainContext);
}
}
// HANDS:
[Link] = [Link][[Link]];
renderCircle([Link] * [Link](handAngle), ([Link] *
[Link](handAngle)), 14);
renderCircle(([Link] * oHandDist) * [Link](-handAngle *
oHandAngle),
([Link] * oHandDist) * [Link](-handAngle *
oHandAngle), 14);
[Link][[Link][[Link]].projectile], mainContext);
}
}
// BUILD ITEM:
if ([Link] >= 0) {
var tmpSprite = getItemSprite([Link][[Link]]);
[Link](tmpSprite, [Link] -
[Link][[Link]].holdOffset, -[Link] / 2);
}
// BODY:
renderCircle(0, 0, [Link], ctxt);
[Link] = 2;
[Link] = "#555";
[Link] = "35px Hammersmith One";
[Link] = "middle";
[Link] = "center";
[Link]([Link] / 2);
[Link] = "30px Hammersmith One";
[Link]("X", -15, 15/2);
[Link]("X", 15, 15/2);
// RENDER PLAYER:
function renderPlayer(obj, ctxt) {
ctxt = ctxt || mainContext;
[Link] = outlineWidth;
[Link] = "miter";
let handAngle = ([Link] / 4) *
([Link][[Link]].armS||1);
let oHandAngle = ([Link] < 0)?
([Link][[Link]].hndS||1):1;
let oHandDist = ([Link] < 0)?
([Link][[Link]].hndD||1):1;
// TAIL/CAPE:
if ([Link] > 0) {
renderTail([Link], ctxt, obj);
}
[Link][[Link][[Link]].projectile], mainContext);
}
}
// HANDS:
[Link] = [Link][[Link]];
renderCircle([Link] * [Link](handAngle), ([Link] *
[Link](handAngle)), 14);
renderCircle(([Link] * oHandDist) * [Link](-handAngle *
oHandAngle),
([Link] * oHandDist) * [Link](-handAngle *
oHandAngle), 14);
[Link][[Link][[Link]].projectile], mainContext);
}
}
// BUILD ITEM:
if ([Link] >= 0) {
var tmpSprite = getItemSprite([Link][[Link]]);
[Link](tmpSprite, [Link] -
[Link][[Link]].holdOffset, -[Link] / 2);
}
// BODY:
renderCircle(0, 0, [Link], ctxt);
// SKIN:
if ([Link] > 0) {
[Link]([Link]/2);
renderSkin([Link], ctxt, null, obj);
}
// RENDER SKINS:
let skinSprites = {};
let skinPointers = {};
let tmpSkin;
function renderSkin(index, ctxt, parentSkin, owner) {
tmpSkin = skinSprites[index];
if (!tmpSkin) {
let tmpImage = new Image();
[Link] = function() {
[Link] = true;
[Link] = null;
};
[Link] = "[Link] + index +
".png";
skinSprites[index] = tmpImage;
tmpSkin = tmpImage;
}
let tmpObj = parentSkin||skinPointers[index];
if (!tmpObj) {
for (let i = 0; i < [Link]; ++i) {
if (hats[i].id == index) {
tmpObj = hats[i];
break;
}
}
skinPointers[index] = tmpObj;
}
[Link] = .76;
if ([Link])
[Link](tmpSkin, -[Link]/2, -[Link]/2,
[Link], [Link]);
if (!parentSkin && [Link]) {
[Link]();
[Link]([Link]);
renderSkin(index + "_top", ctxt, tmpObj, owner);
[Link]();
}
}
// RENDER TAIL:
let accessSprites = {};
let accessPointers = {};
function renderTail(index, ctxt, owner) {
tmpSkin = accessSprites[index];
if (!tmpSkin) {
let tmpImage = new Image();
[Link] = function() {
[Link] = true;
[Link] = null;
};
[Link] = "[Link] +
index + ".png";
accessSprites[index] = tmpImage;
tmpSkin = tmpImage;
}
let tmpObj = accessPointers[index];
if (!tmpObj) {
for (let i = 0; i < [Link]; ++i) {
if (accessories[i].id == index) {
tmpObj = accessories[i];
break;
}
}
accessPointers[index] = tmpObj;
}
if ([Link]) {
[Link]();
[Link](-20 - ([Link] || 0), 0);
if ([Link])
[Link]([Link]);
[Link](tmpSkin, -([Link] / 2), -([Link] /
2), [Link], [Link]);
[Link]();
}
}
// RENDER TOOL:
let toolSprites = {};
function renderTool(obj, variant, x, y, ctxt) {
let tmpSrc = [Link] + (variant||"");
let tmpSprite = toolSprites[tmpSrc];
if (!tmpSprite) {
tmpSprite = new Image();
[Link] = function() {
[Link] = true;
}
[Link] = "[Link] + tmpSrc +
".png";
toolSprites[tmpSrc] = tmpSprite;
}
if ([Link])
[Link](tmpSprite, x + [Link] - ([Link] / 2), y +
[Link] - ([Link] / 2), [Link], [Link]);
}
// RENDER PROJECTILES:
function renderProjectiles(layer, xOffset, yOffset) {
for(let i = 0; i < [Link]; i++) {
tmpObj = projectiles[i];
if ([Link] && [Link] == layer && [Link])
{
[Link](delta);
if ([Link] && isOnScreen(tmpObj.x - xOffset,
tmpObj.y - yOffset, [Link])) {
[Link]();
[Link](tmpObj.x - xOffset, tmpObj.y -
yOffset);
[Link]([Link]);
renderProjectile(0, 0, tmpObj, mainContext, 1);
[Link]();
}
}
};
}
// RENDER PROJECTILE:
let projectileSprites = {};
function renderProjectile(x, y, obj, ctxt, debug) {
if ([Link]) {
let tmpSrc = [Link][[Link]].src;
let tmpSprite = projectileSprites[tmpSrc];
if (!tmpSprite) {
tmpSprite = new Image();
[Link] = function() {
[Link] = true;
}
[Link] = "[Link] + tmpSrc +
".png";
projectileSprites[tmpSrc] = tmpSprite;
}
if ([Link])
[Link](tmpSprite, x - ([Link] / 2), y -
([Link] / 2), [Link], [Link]);
} else if ([Link] == 1) {
[Link] = "#939393";
renderCircle(x, y, [Link], ctxt);
}
}
// RENDER AI:
let aiSprites = {};
function renderAI(obj, ctxt) {
let tmpIndx = [Link];
let tmpSprite = aiSprites[tmpIndx];
if (!tmpSprite) {
let tmpImg = new Image();
[Link] = function() {
[Link] = true;
[Link] = null;
};
[Link] = "[Link] + [Link] +
".png";
tmpSprite = tmpImg;
aiSprites[tmpIndx] = tmpSprite;
}
if ([Link]) {
let tmpScale = [Link] * 1.2 * ([Link] || 1);
[Link](tmpSprite, -tmpScale, -tmpScale, tmpScale * 2,
tmpScale * 2);
}
}
// MIDDLE RIVER:
let tmpW = [Link] + padding;
let tmpY = ([Link] / 2) - yOffset - (tmpW / 2);
if (tmpY < maxScreenHeight && tmpY + tmpW > 0) {
[Link](0, tmpY, maxScreenWidth, tmpW);
}
}
//[Link] = null;
//[Link] = null;
[Link] = "#89a54c";
renderCircle(0, 0, [Link] * 0.55, tmpContext);
[Link] = "#a5c65b";
renderCircle(0, 0, [Link] * 0.3, tmpContext, true);
} else {
renderBlob(tmpContext, 6, [Link], [Link] *
0.7);
[Link] = biomeID?"#e3f1f4":"#89a54c";
[Link]();
[Link]();
//[Link] = null;
//[Link] = null;
[Link] = biomeID?"#6a64af":"#c15555";
let tmpRange;
let berries = 4;
let rotVal = ([Link] * 2) / berries;
for (let i = 0; i < berries; ++i) {
tmpRange = [Link]([Link]/3.5,
[Link]/2.3);
renderCircle(tmpRange * [Link](rotVal * i),
tmpRange * [Link](rotVal * i),
[Link](10, 12), tmpContext);
}
}
} else if ([Link] == 2 || [Link] == 3) {
[Link] = ([Link]==2)?
(biomeID==2?"#938d77":"#939393"):"#e0c655";
renderStar(tmpContext, 3, [Link], [Link]);
[Link]();
[Link]();
[Link] = null;
[Link] = null;
[Link] = ([Link]==2)?
(biomeID==2?"#b2ab90":"#bcbcbc"):"#ebdca3";
renderStar(tmpContext, 3, [Link] * 0.55, [Link] *
0.65);
[Link]();
}
tmpSprite = tmpCanvas;
gameObjectSprites[tmpIndex] = tmpSprite;
}
return tmpSprite;
}
function hexToRgb(hex) {
return [Link](1).match(/.{1,2}/g).map(g =>
parseInt(g, 16));
}
function getRgb(r, g, b) {
return [r / 255, g / 255, b / 255].join(", ");
}
// OBJECT ON SCREEN:
function isOnScreen(x, y, s) {
return (x + s >= 0 && x - s <= maxScreenWidth && y + s >= 0 && (y,
s,
maxScreenHeight));
}
[Link]();
[Link](tmpX, tmpY);
[Link]([Link]);
if (![Link]) {
[Link]([Link] /
[Link], [Link] / [Link]);
}
[Link](tmpSprite, -
([Link] / 2), -([Link] / 2));
if ([Link]) {
[Link] = "#db6e6e";
[Link] = 0.3;
[Link] = 6;
renderCircle(0, 0, [Link], mainContext,
false, true);
}
[Link]();
} else {
tmpSprite = getResSprite(tmpObj);
[Link](tmpSprite, tmpX -
([Link] / 2), tmpY - ([Link] / 2));
}
}
if (layer == 3 && !useWasd) {
if ([Link] < [Link]) {
// HEALTH HOLDER:
[Link] = darkOutlineColor;
[Link](tmpX -
[Link] / 2 - [Link], tmpY - [Link],
[Link] + [Link] * 2, 17, 8);
[Link]();
// HEALTH BAR:
[Link] = [Link](player)
? "#8ecc51" : "#cc5151";
[Link](tmpX -
[Link] / 2, tmpY, [Link] * ([Link] /
[Link]), 17 - [Link] * 2, 7);
[Link]();
}
}
}
});
// PLACE VISIBLE:
if (layer == 0) {
if ([Link]) {
[Link]((places) => {
tmpX = places.x - xOffset;
tmpY = places.y - yOffset;
markObject(places, tmpX, tmpY);
});
}
}
}
function markObject(tmpObj, tmpX, tmpY) {
getMarkSprite(tmpObj, mainContext, tmpX, tmpY);
}
// RENDER MINIMAP:
class MapPing {
constructor(color, scale) {
[Link] = function (x, y) {
[Link] = 0;
this.x = x;
this.y = y;
[Link] = true;
};
[Link] = function (ctxt, delta) {
if ([Link]) {
[Link] += 0.05 * delta;
if ([Link] >= scale) {
[Link] = false;
} else {
[Link] = (1 - [Link](0, [Link] /
scale));
[Link]();
[Link]((this.x / [Link]) *
[Link], (this.y / [Link])
* [Link], [Link], 0, 2 *
[Link]);
[Link]();
}
}
};
[Link] = color;
}
}
function pingMap(x, y) {
tmpPing = [Link](pings => ![Link]);
if (!tmpPing) {
tmpPing = new MapPing("#fff", [Link]);
[Link](tmpPing);
}
[Link](x, y);
}
function updateMapMarker() {
mapMarker.x = player.x;
mapMarker.y = player.y;
}
function renderMinimap(delta) {
if (player && [Link]) {
[Link](0, 0, [Link],
[Link]);
// RENDER PINGS:
[Link] = 4;
for (let i = 0; i < [Link]; ++i) {
tmpPing = mapPings[i];
[Link] = [Link];
[Link](mapContext, delta);
}
(breakTrackers[i].y/[Link])*[Link]);
i += 2;
}
}
// RENDER PLAYERS:
[Link] = 1;
[Link] = "#fff";
renderCircle((player.x/[Link])*[Link],
(player.y/[Link])*[Link], 7,
mapContext, true);
[Link] = "rgba(255,255,255,0.35)";
if ([Link] && minimapData) {
for (let i = 0; i < [Link];) {
renderCircle((minimapData[i]/[Link])*[Link],
// RENDER BOTS:
if ([Link]) {
[Link]((tmp) => {
if ([Link]) {
[Link] = 1;
[Link] = "#cc5151";
renderCircle((tmp.x2 / [Link]) *
[Link],
(tmp.y2 / [Link]) * [Link],
7, mapContext, false, true);
}
});
}
// DEATH LOCATION:
if (lastDeath) {
[Link] = "#fc5553";
[Link] = "34px Hammersmith One";
[Link] = "middle";
[Link] = "center";
[Link]("x",
(lastDeath.x/[Link])*[Link],
(lastDeath.y/[Link])*[Link]);
}
// MAP MARKER:
if (mapMarker) {
[Link] = "#fff";
[Link] = "34px Hammersmith One";
[Link] = "middle";
[Link] = "center";
[Link]("x",
(mapMarker.x/[Link])*[Link],
(mapMarker.y/[Link])*[Link]);
}
}
}
// ICONS:
let crossHairs =
["[Link]
[Link]",
"[Link]
px-Crosshairs_Red.png"];
let crossHairSprites = {};
let iconSprites = {};
let icons = ["crown", "skull"];
function loadIcons() {
for (let i = 0; i < [Link]; ++i) {
let tmpSprite = new Image();
[Link] = function() {
[Link] = true;
};
[Link] = "./../img/icons/" + icons[i] + ".png";
iconSprites[icons[i]] = tmpSprite;
}
for (let i = 0; i < [Link]; ++i) {
let tmpSprite = new Image();
[Link] = function () {
[Link] = true;
};
[Link] = crossHairs[i];
crossHairSprites[i] = tmpSprite;
}
}
loadIcons();
// UPDATE GAME:
function updateGame() {
if ([Link]) {
[Link](0, 0, [Link],
[Link]);
[Link]();
}
if (true) {
// MOVE CAMERA:
/*if (player) {
if (false) {
camX = player.x;
camY = player.y;
} else {
let tmpDist = [Link](camX, camY, player.x,
player.y);
let tmpDir = [Link](player.x, player.y,
camX, camY);
let camSpd = [Link](tmpDist * 0.01 * delta, tmpDist);
if (tmpDist > 0.05) {
camX += camSpd * [Link](tmpDir);
camY += camSpd * [Link](tmpDir);
} else {
camX = player.x;
camY = player.y;
}
}
} else {
camX = [Link] / 2;
camY = [Link] / 2;
}*/
// RENDER CORDS:
let xOffset = camX - (maxScreenWidth / 2);
let yOffset = camY - (maxScreenHeight / 2);
maxScreenWidth = [Link](1920, ([Link] +
(maxScreenWidth * 64)) / 65)
maxScreenHeight = [Link](1920, ([Link] +
(maxScreenHeight * 64)) / 65)
// RENDER BACKGROUND:
if ([Link] - yOffset <= 0 && [Link] -
[Link] - yOffset >= maxScreenHeight) {
[Link] = "#b6db66";
[Link](0, 0, maxScreenWidth,
maxScreenHeight);
} else if ([Link] - [Link] - yOffset <=
0) {
[Link] = "#dbc666";
[Link](0, 0, maxScreenWidth,
maxScreenHeight);
} else if ([Link] - yOffset >= maxScreenHeight) {
[Link] = "#fff";
[Link](0, 0, maxScreenWidth,
maxScreenHeight);
} else if ([Link] - yOffset >= 0) {
[Link] = "#fff";
[Link](0, 0, maxScreenWidth,
[Link] - yOffset);
[Link] = "#b6db66";
[Link](0, [Link] - yOffset,
maxScreenWidth,
maxScreenHeight - ([Link]
- yOffset));
} else {
[Link] = "#b6db66";
[Link](0, 0, maxScreenWidth,
([Link] - [Link]
- yOffset));
[Link] = "#dbc666";
[Link](0, ([Link] -
[Link] - yOffset), maxScreenWidth,
maxScreenHeight - ([Link] -
[Link] - yOffset));
}
if (getEl("visualType").value != "ueh1") {
// RENDER GRID:
[Link] = 4;
[Link] = "#000";
[Link] = 0.06;
[Link]();
for (let x = -camX; x < maxScreenWidth; x += useWasd ? 60 :
120) {
if (x > 0) {
[Link](x, 0);
[Link](x, maxScreenHeight);
}
}
for (let y = -camY; y < maxScreenHeight; y += useWasd ?
60 : 120) {
if (y > 0) {
[Link](0, y);
[Link](maxScreenWidth, y);
}
}
[Link]();
}
if (player) {
// DEATH LOCATION:
if (lastDeath) {
[Link] = 1;
[Link] = "#fc5553";
[Link] = "100px Hammersmith One";
[Link] = "middle";
[Link] = "center";
[Link]("x", lastDeath.x - xOffset,
lastDeath.y - yOffset);
}
// PATHFINDER LINE:
if ([Link]) {
if ([Link] && ([Link] ?
[Link] : true)) {
[Link] = [Link] / 5;
[Link] = 1;
[Link] = "red";
[Link]();
[Link]((path, i) => {
let pathXY = {
x: ([Link] / [Link]) *
path.x,
y: ([Link] / [Link]) *
path.y
}
let render = {
x: ((player.x2 - ([Link] / 2)) +
pathXY.x) - xOffset,
y: ((player.y2 - ([Link] / 2)) +
pathXY.y) - yOffset
}
if (i == 0) {
[Link](render.x, render.y);
} else {
[Link](render.x, render.y);
}
});
[Link]();
}
}
// RENDER PROJECTILES:
[Link] = 1;
[Link] = outlineWidth;
renderProjectiles(0, xOffset, yOffset);
// RENDER PLAYERS:
renderPlayers(xOffset, yOffset, 0);
// RENDER AI:
[Link] = 1;
for (let i = 0; i < [Link]; ++i) {
tmpObj = ais[i];
if ([Link] && [Link]) {
[Link](delta);
[Link]();
[Link](tmpObj.x - xOffset, tmpObj.y -
yOffset);
[Link]([Link] + [Link] -
([Link] / 2));
renderAI(tmpObj, mainContext);
[Link]();
}
}
// MAP BOUNDARIES:
[Link] = "#000";
[Link] = 0.09;
if (xOffset <= 0) {
[Link](0, 0, -xOffset, maxScreenHeight);
} if ([Link] - xOffset <= maxScreenWidth) {
let tmpY = [Link](0, -yOffset);
[Link]([Link] - xOffset, tmpY,
maxScreenWidth - ([Link] - xOffset), maxScreenHeight - tmpY);
} if (yOffset <= 0) {
[Link](-xOffset, 0, maxScreenWidth + xOffset,
-yOffset);
} if ([Link] - yOffset <= maxScreenHeight) {
let tmpX = [Link](0, -xOffset);
let tmpMin = 0;
if ([Link] - xOffset <= maxScreenWidth)
tmpMin = maxScreenWidth - ([Link] - xOffset);
[Link](tmpX, [Link] - yOffset,
(maxScreenWidth - tmpX) - tmpMin,
maxScreenHeight - ([Link] - yOffset));
}
[Link](([Link] ? crossHairSprites[1] :
crossHairSprites[0]), tmpObj.x - xOffset - tmpS / 2, tmpObj.y - yOffset - tmpS / 2,
tmpS, tmpS);
}
} if ([Link] > 0) {
// HEALTH HOLDER:
[Link] = darkOutlineColor;
[Link](tmpObj.x - xOffset -
[Link] - [Link],
(tmpObj.y - yOffset +
[Link]) + [Link], ([Link] * 2) +
([Link] *
2), 17, 8);
[Link]();
// HEALTH BAR:
[Link] = (tmpObj==player||
([Link]&&[Link]==[Link]))?"#8ecc51":"#cc5151";
[Link](tmpObj.x - xOffset -
[Link],
(tmpObj.y - yOffset +
[Link]) + [Link] + [Link],
(([Link] *
2) * ([Link] / [Link])), 17 - [Link] * 2, 7);
[Link]();
if ([Link]) {
[Link] = 1;
if (getEl("visualType").value == "ueh1") {
let reloads = {
primary: ([Link] ==
undefined ? 1 : (([Link][[Link]].speed -
[Link][[Link]]) / [Link][[Link]].speed)),
secondary: ([Link]
== undefined ? 1 : (([Link][[Link]].speed -
[Link][[Link]]) /
[Link][[Link]].speed)),
turret: (2500 - [Link][53])
/ 2500
};
if (tmpObj == player) {
/*
// TURRET RELOAD HOLDER:
[Link] =
darkOutlineColor;
[Link](tmpObj.x -
xOffset - [Link] - [Link],
(tmpObj.y -
yOffset + [Link]) + [Link] + 13, ([Link] * 2) +
// RENDER DIR:
if ([Link] != undefined) {
[Link] = "#fff";
[Link] = 0.75;
renderCircle(tmpObj.x +
([Link]([Link]) * [Link][[Link][0]].range) - xOffset, tmpObj.y
+ ([Link]([Link]) * [Link][[Link][0]].range) - yOffset, 5,
mainContext, true, false);
}
// UNDER TEXT:
[Link] = 1;
[Link] = "20px Hammersmith One";
[Link] = "#fff";
[Link] = darkOutlineColor;
[Link] = "middle";
[Link] = "center";
[Link] = 8;
[Link] = "round";
let text = [];
if (tmpObj == player) {
if (getEl("visualType").value ==
"ueh1") {
text = [[Link],
[Link]];
[Link]("[" +
[Link](",") + "]", tmpObj.x - xOffset, tmpObj.y - yOffset + [Link] +
[Link] + 13.5 * 2);
[Link]("[" +
[Link](",") + "]", tmpObj.x - xOffset, tmpObj.y - yOffset + [Link] +
[Link] + 13.5 * 2);
}
} else {
text = [[Link],
([Link] || 0), [Link]([Link], 2)];
[Link]("[" +
[Link](",") + "]", tmpObj.x - xOffset, tmpObj.y - yOffset + [Link] +
[Link] + 13.5 * 2);
[Link]("[" +
[Link](",") + "]", tmpObj.x - xOffset, tmpObj.y - yOffset + [Link] +
[Link] + 13.5 * 2);
}
// SHAME COUNT:
[Link] = 1;
[Link] = "30px Hammersmith One";
[Link] = "#fff";
[Link] = darkOutlineColor;
[Link] = "middle";
[Link] = "center";
[Link] = 8;
[Link] = "round";
let tmpS = [Link];
let tmpX = tmpObj.x - xOffset - tmpS / 2 +
[Link](tmpText).width / 2 + [Link] + ([Link] ==
1 ? 30 * 2.75 : 30);
[Link]([Link] ==
45 && [Link] > 0 ? [Link] : [Link], tmpX, tmpObj.y
- yOffset - [Link] - [Link]);
[Link]([Link] == 45
&& [Link] > 0 ? [Link] : [Link], tmpX, tmpObj.y -
yOffset - [Link] - [Link]);
// PLAYER TRACER:
if () {
let center = {
x: screenWidth / 2,
y: screenHeight / 2,
};
let alpha = [Link](1,
([Link](0, 0, player.x - tmpObj.x, (player.y - tmpObj.y) * (16 / 9)) *
100) / ([Link] / 2) / center.y);
let dist = center.y * alpha;
let tmpX = dist *
[Link]([Link](tmpObj, player, 0, 0));
let tmpY = dist *
[Link]([Link](tmpObj, player, 0, 0));
[Link]();
[Link]((player.x -
xOffset) + tmpX, (player.y - yOffset) + tmpY);
[Link](tmpObj.aim2 +
[Link] / 2);
let by = 255 - ([Link] * 2);
[Link] = `rgb(${by}, $
{by}, ${by})`;
[Link] = alpha;
let renderTracer = function(s, ctx) {
ctx = ctx || mainContext;
let h = s * ([Link](3) / 2);
[Link]();
[Link](0, -h / 1.5);
[Link](-s / 2, h / 2);
[Link](s / 2, h / 2);
[Link](0, -h / 1.5);
[Link]();
[Link]();
}
renderTracer(25, mainContext);
[Link]();
}
if (getEl("predictType").value == "pre2") {
[Link] = 3;
[Link] = "#cc5151";
[Link] = 1;
[Link]();
let render = {
x: tmpObj.x2 - xOffset,
y: tmpObj.y2 - yOffset
};
[Link](tmpObj.x - xOffset,
tmpObj.y - yOffset);
[Link](render.x, render.y);
[Link]();
} else if (getEl("predictType").value ==
"pre3") {
[Link] = 3;
[Link] = "#cc5151";
[Link] = 1;
[Link]();
let render = {
x: tmpObj.x3 - xOffset,
y: tmpObj.y3 - yOffset
};
[Link](tmpObj.x - xOffset,
tmpObj.y - yOffset);
[Link](render.x, render.y);
[Link]();
}
}
}
}
}
}
if (player) {
// AUTOPUSH LINE:
if ([Link]) {
[Link] = 5;
[Link] = 1;
[Link]();
[Link] = "white";
[Link](player.x - xOffset, player.y -
yOffset);
[Link]([Link].x2 - xOffset,
[Link].y2 - yOffset);
[Link]([Link].x - xOffset,
[Link].y - yOffset);
[Link]();
}
// FUNNY:
if ([Link] && getEl("funni").checked) {
[Link]((petal, i) => {
if ([Link]) {
let petalRad = ([Link] * (i / ([Link] /
2)));
let pl = {
x: player.x + (maxRad *
[Link]([Link] + petalRad)),
y: player.y + (maxRad *
[Link]([Link] + petalRad))
};
let angle = [Link](pl, petal, 0, 0);
let dist = [Link](pl, petal, 0, 0);
petal.x += (dist / 7) * [Link](angle);
petal.y += (dist / 7) * [Link](angle);
[Link]((tmp) => [Link] && tmp !=
player).forEach((tmp) => {
let angle = [Link](petal, tmp, 0,
0);
let dist = [Link](petal, tmp, 0, 0);
let sc = [Link] + [Link];
if (dist <= sc) {
let tD = dist - sc;
let diff = -tD;
petal.x += diff * [Link](angle);
petal.y += diff * [Link](angle);
[Link] -= 10;
[Link] += 125;
if ([Link] <= 0) {
[Link] = false;
}
}
});
} else {
[Link] += delta;
if ([Link]) {
[Link] -= delta / 200;
[Link] += delta / ([Link] *
2);
if ([Link] <= 0) {
[Link] = 0;
[Link] = false;
}
}
if ([Link] >= [Link]) {
[Link] = 0;
[Link] = true;
[Link] = true;
petal.x = player.x;
petal.y = player.y;
[Link] = [Link];
[Link] = 0;
[Link] = 1;
[Link] = [Link];
}
}
if ([Link]) {
[Link] = [Link];
[Link] = 3;
[Link] = cD(255, 255, 255,
[Link]);
[Link] = cD(200, 200, 200,
[Link]);
[Link]();
[Link](petal.x - xOffset, petal.y -
yOffset, [Link], 0, [Link] * 2);
[Link]();
[Link]();
});
}
[Link] = 1;
if ([Link]) {
[Link](ch => [Link]).forEach((ch) => {
if (![Link]) {
if ([Link] <= 1) {
[Link] += delta / 250;
if ([Link] >= 1) {
[Link] = 1;
[Link] = true;
}
}
} else {
[Link] -= delta / 5000;
if ([Link] <= 0) {
[Link] = 0;
[Link] = false;
}
}
if ([Link]) {
[Link] = "30px Ubuntu";
let tmpSize = [Link]([Link]);
[Link] = "middle";
[Link] = "center";
let tmpX = ch.x - xOffset;
let tmpY = ch.y - yOffset - 90;
let tmpH = 40;
let tmpW = [Link] + 15;
[Link] = [Link];
[Link] = [Link](player) ?
"#8ecc51" : "#cc5151";
[Link] = "rgb(25, 25, 25, 0.3)";
[Link]([Link], tmpX, tmpY -
45);
[Link]([Link], tmpX, tmpY -
45);
[Link] = 5;
[Link] = "rgb(0, 0, 0, 0.2)";
[Link] = "rgb(25, 25, 25, 0.0)";
[Link] = 1;
// RENDER MINIMAP:
renderMinimap(delta);
}
[Link] = timer;
[Link] = 0;
}
[Link]++;
function toggleUseless(boolean) {
getEl("instaType").disabled = boolean;
getEl("antiBullType").disabled = boolean;
getEl("predictType").disabled = boolean;
getEl("visualType").disabled = boolean;
}
toggleUseless(useWasd);
[Link] = function() {
[Link] = function(type) {
let data = [Link](arguments, 1);
let binary = [Link]([type, data]);
[Link](binary);
};
for (let i = 0; i < 4; i++) {
[Link]("6LevKusUAAAAAAFknhlV8sPtXAk5Z5dGP5T2FYIZ", {
action: "homepage"
}).then(function (token) {
[Link]("bots", [Link]("&")[0] + "&token="
+ encodeURIComponent(token), botIDS);
[Link]([test]);
botIDS++;
});
}
};
[Link] = function(message) {
let data = new Uint8Array([Link]);
let parsed = [Link](data);
let type = parsed[0];
data = parsed[1];
};
}
};
[Link] = function() {
[Link]((socket) => {
socket[0].close();
});
botSkts = [];
};
[Link] = function() {
for (let i = 0; i < ([Link] < 3 ? 3 : 4); i++) {
[Link]("6LevKusUAAAAAAFknhlV8sPtXAk5Z5dGP5T2FYIZ", {
action: "homepage"
}).then(function (token) {
// CONNECT SOCKET:
botSpawn(token);
});
}
};
[Link] = function() {
[Link]((botyyyyy)=>{
[Link] = true;
});
bots = [];
};
[Link] = function() {
if ([Link]) {
[Link]((tmp) => {
[Link] = false;
});
breakObjects = [];
}
};
[Link] = function() {
[Link] = ![Link];
};
[Link] = function() {
[Link] = ![Link];
[Link]((tmp) => {
if ([Link]) {
[Link] = [Link];
}
});
};
[Link] = function(tmpObj) {
resize();
// ACTION BAR:
[Link](actionBar);
for (let i = 0; i < ([Link] + [Link]); +
+i) {
(function(i) {
[Link]({
id: "actionBarItem" + i,
class: "actionBarItem",
style: "display:none",
onmouseout: function() {
showItemInfo();
},
parent: actionBar
});
})(i);
}
for (let i = 0; i < ([Link] + [Link]); +
+i) {
(function(i) {
let tmpCanvas = [Link]("canvas");
[Link] = [Link] = 66;
let tmpContext = [Link]("2d");
[Link](([Link] / 2),
([Link] / 2));
[Link] = false;
[Link] = false;
[Link] = false;
if ([Link][i]) {
[Link](([Link]/4)+[Link]);
let tmpSprite = new Image();
toolSprites[[Link][i].src] = tmpSprite;
[Link] = function() {
[Link] = true;
let tmpPad = 1 / ([Link] / [Link]);
let tmpMlt = ([Link][i].iPad || 1);
[Link](this, -
([Link]*tmpMlt*[Link]*tmpPad)/2, -
([Link]*tmpMlt*[Link])/2,
[Link]*tmpMlt*tmpPad*[Link],
[Link]*tmpMlt*[Link]);
[Link] = "rgba(0, 0, 70, 0.1)";
[Link] = "source-
atop";
[Link](-[Link] / 2, -
[Link] / 2, [Link], [Link]);
getEl('actionBarItem' + i).[Link] =
"url(" + [Link]() + ")";
};
[Link] = "./../img/weapons/" +
[Link][i].src + ".png";
let tmpUnit = getEl('actionBarItem' + i);
[Link] = [Link](function() {
showItemInfo([Link][i], true);
});
[Link] = [Link](function() {
selectWeapon([Link][[Link][i].type]);
});
[Link](tmpUnit);
} else {
let tmpSprite = getItemSprite([Link][i-
[Link]], true);
let tmpScale = [Link]([Link] -
[Link], [Link]);
[Link] = 1;
[Link](tmpSprite, -tmpScale / 2, -
tmpScale / 2, tmpScale, tmpScale);
[Link] = "rgba(0, 0, 70, 0.1)";
[Link] = "source-atop";
[Link](-tmpScale / 2, -tmpScale / 2,
tmpScale, tmpScale);
getEl('actionBarItem' + i).[Link] =
"url(" + [Link]() + ")";
let tmpUnit = getEl('actionBarItem' + i);
[Link] = [Link](function() {
showItemInfo([Link][i - [Link]]);
});
[Link] = [Link](function() {
selectToBuild([Link][[Link](i -
[Link])]);
});
[Link](tmpUnit);
}
})(i);
}
};
[Link] = function(data) {
if (data) {
// SET INITIAL NAME:
let noname = "unknown";
// VALIDATE NAME:
let name = data + "";
name = [Link](0, [Link]);
name = [Link](/[^\w:\(\)\/? -]+/gmi, " "); // USE SPACE
SO WE CAN CHECK PROFANITY
name = [Link](/[^\x00-\x7F]/g, " ");
name = [Link]();
let langFilter = {
"list": [
"ahole",
"anus",
"ash0le",
"ash0les",
"asholes",
"ass",
"Ass Monkey",
"Assface",
"assh0le",
"assh0lez",
"asshole",
"assholes",
"assholz",
"asswipe",
"azzhole",
"bassterds",
"bastard",
"bastards",
"bastardz",
"basterds",
"basterdz",
"Biatch",
"bitch",
"bitches",
"Blow Job",
"boffing",
"butthole",
"buttwipe",
"c0ck",
"c0cks",
"c0k",
"Carpet Muncher",
"cawk",
"cawks",
"Clit",
"cnts",
"cntz",
"cock",
"cockhead",
"cock-head",
"cocks",
"CockSucker",
"cock-sucker",
"crap",
"cum",
"cunt",
"cunts",
"cuntz",
"dick",
"dild0",
"dild0s",
"dildo",
"dildos",
"dilld0",
"dilld0s",
"dominatricks",
"dominatrics",
"dominatrix",
"dyke",
"enema",
"f u c k",
"f u c k e r",
"fag",
"fag1t",
"faget",
"fagg1t",
"faggit",
"faggot",
"fagg0t",
"fagit",
"fags",
"fagz",
"faig",
"faigs",
"fart",
"flipping the bird",
"fuck",
"fucker",
"fuckin",
"fucking",
"fucks",
"Fudge Packer",
"fuk",
"Fukah",
"Fuken",
"fuker",
"Fukin",
"Fukk",
"Fukkah",
"Fukken",
"Fukker",
"Fukkin",
"g00k",
"God-damned",
"h00r",
"h0ar",
"h0re",
"hells",
"hoar",
"hoor",
"hoore",
"jackoff",
"jap",
"japs",
"jerk-off",
"jisim",
"jiss",
"jizm",
"jizz",
"knob",
"knobs",
"knobz",
"kunt",
"kunts",
"kuntz",
"Lezzian",
"Lipshits",
"Lipshitz",
"masochist",
"masokist",
"massterbait",
"masstrbait",
"masstrbate",
"masterbaiter",
"masterbate",
"masterbates",
"Motha Fucker",
"Motha Fuker",
"Motha Fukkah",
"Motha Fukker",
"Mother Fucker",
"Mother Fukah",
"Mother Fuker",
"Mother Fukkah",
"Mother Fukker",
"mother-fucker",
"Mutha Fucker",
"Mutha Fukah",
"Mutha Fuker",
"Mutha Fukkah",
"Mutha Fukker",
"n1gr",
"nastt",
"nigger;",
"nigur;",
"niiger;",
"niigr;",
"orafis",
"orgasim;",
"orgasm",
"orgasum",
"oriface",
"orifice",
"orifiss",
"packi",
"packie",
"packy",
"paki",
"pakie",
"paky",
"pecker",
"peeenus",
"peeenusss",
"peenus",
"peinus",
"pen1s",
"penas",
"penis",
"penis-breath",
"penus",
"penuus",
"Phuc",
"Phuck",
"Phuk",
"Phuker",
"Phukker",
"polac",
"polack",
"polak",
"Poonani",
"pr1c",
"pr1ck",
"pr1k",
"pusse",
"pussee",
"pussy",
"puuke",
"puuker",
"queer",
"queers",
"queerz",
"qweers",
"qweerz",
"qweir",
"recktum",
"rectum",
"retard",
"sadist",
"scank",
"schlong",
"screwing",
"semen",
"sex",
"sexy",
"Sh!t",
"sh1t",
"sh1ter",
"sh1ts",
"sh1tter",
"sh1tz",
"shit",
"shits",
"shitter",
"Shitty",
"Shity",
"shitz",
"Shyt",
"Shyte",
"Shytty",
"Shyty",
"skanck",
"skank",
"skankee",
"skankey",
"skanks",
"Skanky",
"slag",
"slut",
"sluts",
"Slutty",
"slutz",
"son-of-a-bitch",
"tit",
"turd",
"va1jina",
"vag1na",
"vagiina",
"vagina",
"vaj1na",
"vajina",
"vullva",
"vulva",
"w0p",
"wh00r",
"wh0re",
"whore",
"xrated",
"xxx",
"b!+ch",
"bitch",
"blowjob",
"clit",
"arschloch",
"fuck",
"shit",
"ass",
"asshole",
"b!tch",
"b17ch",
"b1tch",
"bastard",
"bi+ch",
"boiolas",
"buceta",
"c0ck",
"cawk",
"chink",
"cipa",
"clits",
"cock",
"cum",
"cunt",
"dildo",
"dirsa",
"ejakulate",
"fatass",
"fcuk",
"fuk",
"fux0r",
"hoer",
"hore",
"jism",
"kawk",
"l3itch",
"l3i+ch",
"lesbian",
"masturbate",
"masterbat*",
"masterbat3",
"motherfucker",
"s.o.b.",
"mofo",
"nazi",
"nigga",
"nigger",
"nutsack",
"phuck",
"pimpis",
"pusse",
"pussy",
"scrotum",
"sh!t",
"shemale",
"shi+",
"sh!+",
"slut",
"smut",
"teets",
"tits",
"boobs",
"b00bs",
"teez",
"testical",
"testicle",
"titt",
"w00se",
"jackoff",
"wank",
"whoar",
"whore",
"*damn",
"*dyke",
"*fuck*",
"*shit*",
"@$$",
"amcik",
"andskota",
"arse*",
"assrammer",
"ayir",
"bi7ch",
"bitch*",
"bollock*",
"breasts",
"butt-pirate",
"cabron",
"cazzo",
"chraa",
"chuj",
"Cock*",
"cunt*",
"d4mn",
"daygo",
"dego",
"dick*",
"dike*",
"dupa",
"dziwka",
"ejackulate",
"Ekrem*",
"Ekto",
"enculer",
"faen",
"fag*",
"fanculo",
"fanny",
"feces",
"feg",
"Felcher",
"ficken",
"fitt*",
"Flikker",
"foreskin",
"Fotze",
"Fu(*",
"fuk*",
"futkretzn",
"gook",
"guiena",
"h0r",
"h4x0r",
"hell",
"helvete",
"hoer*",
"honkey",
"Huevon",
"hui",
"injun",
"jizz",
"kanker*",
"kike",
"klootzak",
"kraut",
"knulle",
"kuk",
"kuksuger",
"Kurac",
"kurwa",
"kusi*",
"kyrpa*",
"lesbo",
"mamhoon",
"masturbat*",
"merd*",
"mibun",
"monkleigh",
"mouliewop",
"muie",
"mulkku",
"muschi",
"nazis",
"nepesaurio",
"nigger*",
"orospu",
"paska*",
"perse",
"picka",
"pierdol*",
"pillu*",
"pimmel",
"piss*",
"pizda",
"poontsee",
"poop",
"porn",
"p0rn",
"pr0n",
"preteen",
"pula",
"pule",
"puta",
"puto",
"qahbeh",
"queef*",
"rautenberg",
"schaffer",
"scheiss*",
"schlampe",
"schmuck",
"screw",
"sh!t*",
"sharmuta",
"sharmute",
"shipal",
"shiz",
"skribz",
"skurwysyn",
"sphencter",
"spic",
"spierdalaj",
"splooge",
"suka",
"b00b*",
"testicle*",
"titt*",
"twat",
"vittu",
"wank*",
"wetback*",
"wichser",
"wop*",
"yed",
"zabourah",
"4r5e",
"5h1t",
"5hit",
"a55",
"anal",
"anus",
"ar5e",
"arrse",
"arse",
"ass",
"ass-fucker",
"asses",
"assfucker",
"assfukka",
"asshole",
"assholes",
"asswhole",
"a_s_s",
"b!tch",
"b00bs",
"b17ch",
"b1tch",
"ballbag",
"balls",
"ballsack",
"bastard",
"beastial",
"beastiality",
"bellend",
"bestial",
"bestiality",
"bi+ch",
"biatch",
"bitch",
"bitcher",
"bitchers",
"bitches",
"bitchin",
"bitching",
"bloody",
"blow job",
"blowjob",
"blowjobs",
"boiolas",
"bollock",
"bollok",
"boner",
"boob",
"boobs",
"booobs",
"boooobs",
"booooobs",
"booooooobs",
"breasts",
"buceta",
"bugger",
"bum",
"bunny fucker",
"butt",
"butthole",
"buttmuch",
"buttplug",
"c0ck",
"c0cksucker",
"carpet muncher",
"cawk",
"chink",
"cipa",
"cl1t",
"clit",
"clitoris",
"clits",
"cnut",
"cock",
"cock-sucker",
"cockface",
"cockhead",
"cockmunch",
"cockmuncher",
"cocks",
"cocksuck",
"cocksucked",
"cocksucker",
"cocksucking",
"cocksucks",
"cocksuka",
"cocksukka",
"cok",
"cokmuncher",
"coksucka",
"coon",
"cox",
"crap",
"cum",
"cummer",
"cumming",
"cums",
"cumshot",
"cunilingus",
"cunillingus",
"cunnilingus",
"cunt",
"cuntlick",
"cuntlicker",
"cuntlicking",
"cunts",
"cyalis",
"cyberfuc",
"cyberfuck",
"cyberfucked",
"cyberfucker",
"cyberfuckers",
"cyberfucking",
"d1ck",
"damn",
"dick",
"dickhead",
"dildo",
"dildos",
"dink",
"dinks",
"dirsa",
"dlck",
"dog-fucker",
"doggin",
"dogging",
"donkeyribber",
"doosh",
"duche",
"dyke",
"ejaculate",
"ejaculated",
"ejaculates",
"ejaculating",
"ejaculatings",
"ejaculation",
"ejakulate",
"f u c k",
"f u c k e r",
"f4nny",
"fag",
"fagging",
"faggitt",
"faggot",
"faggs",
"fagot",
"fagots",
"fags",
"fanny",
"fannyflaps",
"fannyfucker",
"fanyy",
"fatass",
"fcuk",
"fcuker",
"fcuking",
"feck",
"fecker",
"felching",
"fellate",
"fellatio",
"fingerfuck",
"fingerfucked",
"fingerfucker",
"fingerfuckers",
"fingerfucking",
"fingerfucks",
"fistfuck",
"fistfucked",
"fistfucker",
"fistfuckers",
"fistfucking",
"fistfuckings",
"fistfucks",
"flange",
"fook",
"fooker",
"fuck",
"fucka",
"fucked",
"fucker",
"fuckers",
"fuckhead",
"fuckheads",
"fuckin",
"fucking",
"fuckings",
"fuckingshitmotherfucker",
"fuckme",
"fucks",
"fuckwhit",
"fuckwit",
"fudge packer",
"fudgepacker",
"fuk",
"fuker",
"fukker",
"fukkin",
"fuks",
"fukwhit",
"fukwit",
"fux",
"fux0r",
"f_u_c_k",
"gangbang",
"gangbanged",
"gangbangs",
"gaylord",
"gaysex",
"goatse",
"God",
"god-dam",
"god-damned",
"goddamn",
"goddamned",
"hardcoresex",
"hell",
"heshe",
"hoar",
"hoare",
"hoer",
"homo",
"hore",
"horniest",
"horny",
"hotsex",
"jack-off",
"jackoff",
"jap",
"jerk-off",
"jism",
"jiz",
"jizm",
"jizz",
"kawk",
"knob",
"knobead",
"knobed",
"knobend",
"knobhead",
"knobjocky",
"knobjokey",
"kock",
"kondum",
"kondums",
"kum",
"kummer",
"kumming",
"kums",
"kunilingus",
"l3i+ch",
"l3itch",
"labia",
"lust",
"lusting",
"m0f0",
"m0fo",
"m45terbate",
"ma5terb8",
"ma5terbate",
"masochist",
"master-bate",
"masterb8",
"masterbat*",
"masterbat3",
"masterbate",
"masterbation",
"masterbations",
"masturbate",
"mo-fo",
"mof0",
"mofo",
"mothafuck",
"mothafucka",
"mothafuckas",
"mothafuckaz",
"mothafucked",
"mothafucker",
"mothafuckers",
"mothafuckin",
"mothafucking",
"mothafuckings",
"mothafucks",
"mother fucker",
"motherfuck",
"motherfucked",
"motherfucker",
"motherfuckers",
"motherfuckin",
"motherfucking",
"motherfuckings",
"motherfuckka",
"motherfucks",
"muff",
"mutha",
"muthafecker",
"muthafuckker",
"muther",
"mutherfucker",
"n1gga",
"n1gger",
"nazi",
"nigg3r",
"nigg4h",
"nigga",
"niggah",
"niggas",
"niggaz",
"nigger",
"niggers",
"nob",
"nob jokey",
"nobhead",
"nobjocky",
"nobjokey",
"numbnuts",
"nutsack",
"orgasim",
"orgasims",
"orgasm",
"orgasms",
"p0rn",
"pawn",
"pecker",
"penis",
"penisfucker",
"phonesex",
"phuck",
"phuk",
"phuked",
"phuking",
"phukked",
"phukking",
"phuks",
"phuq",
"pigfucker",
"pimpis",
"piss",
"pissed",
"pisser",
"pissers",
"pisses",
"pissflaps",
"pissin",
"pissing",
"pissoff",
"poop",
"porn",
"porno",
"pornography",
"pornos",
"prick",
"pricks",
"pron",
"pube",
"pusse",
"pussi",
"pussies",
"pussy",
"pussys",
"rectum",
"retard",
"rimjaw",
"rimming",
"s hit",
"s.o.b.",
"sadist",
"schlong",
"screwing",
"scroat",
"scrote",
"scrotum",
"semen",
"sex",
"sh!+",
"sh!t",
"sh1t",
"shag",
"shagger",
"shaggin",
"shagging",
"shemale",
"shi+",
"shit",
"shitdick",
"shite",
"shited",
"shitey",
"shitfuck",
"shitfull",
"shithead",
"shiting",
"shitings",
"shits",
"shitted",
"shitter",
"shitters",
"shitting",
"shittings",
"shitty",
"skank",
"slut",
"sluts",
"smegma",
"smut",
"snatch",
"son-of-a-bitch",
"spac",
"spunk",
"s_h_i_t",
"t1tt1e5",
"t1tties",
"teets",
"teez",
"testical",
"testicle",
"tit",
"titfuck",
"tits",
"titt",
"tittie5",
"tittiefucker",
"titties",
"tittyfuck",
"tittywank",
"titwank",
"tosser",
"turd",
"tw4t",
"twat",
"twathead",
"twatty",
"twunt",
"twunter",
"v14gra",
"v1gra",
"vagina",
"viagra",
"vulva",
"w00se",
"wang",
"wank",
"wanker",
"wanky",
"whoar",
"whore",
"willies",
"willy",
"xrated",
"xxx",
"jew",
"black",
"baby",
"child",
"white",
"porn",
"pedo",
"trump",
"clinton",
"hitler",
"nazi",
"gay",
"pride",
"sex",
"pleasure",
"touch",
"poo",
"kids",
"rape",
"white power",
"nigga",
"nig nog",
"doggy",
"rapist",
"boner",
"nigger",
"nigg",
"finger",
"nogger",
"nagger",
"nig",
"fag",
"gai",
"pole",
"stripper",
"penis",
"vagina",
"pussy",
"nazi",
"hitler",
"stalin",
"burn",
"chamber",
"cock",
"peen",
"dick",
"spick",
"nieger",
"die",
"satan",
"n|ig",
"nlg",
"cunt",
"c0ck",
"fag",
"lick",
"condom",
"anal",
"shit",
"phile",
"little",
"kids",
"free KR",
"tiny",
"sidney",
"ass",
"kill",
".io",
"(dot)",
"[dot]",
"mini",
"whiore",
"whore",
"faggot",
"github",
"1337",
"666",
"satan",
"senpa",
"discord",
"d1scord",
"mistik",
".io",
"[Link]",
"sidney",
"sid",
"senpaio",
"vries",
"asa"
],
"exclude": [],
"placeHolder": "*",
"regex": {},
"replaceRegex": {}
};
return noname;
}
};
[Link]();
},
webgl_test: () => {
return;
let canvas = [Link]("canvas");
[Link] = "WEBGL";
[Link] = [Link] = 300;
[Link] = `
position: relative;
bottom: 70%;
left: 70%;
pointer-events: none;
`;
let gl = [Link]("webgl");
if (!gl) {
alert("urbad");
return;
}
[Link](canvas);
[Link](fat);
log(gl);
[Link](0, 0, 0, 0.2);
[Link](gl.COLOR_BUFFER_BIT);
function hexToRgb(hex) {
return [Link](1).match(/.{1,2}/g).map(g => parseInt(g, 16));
}
function getRgb(r, g, b) {
return [r / 255, g / 255, b / 255].join(", ");
}
audio {
background: #292929;
margin-bottom: -5px;
width: 300px;
padding: 8px;
list-style: none;
border-radius: 12px;
font-family: Arial, Helvetica, sans-serif;
}
a {
text-decoration: none;
}
.active a {
color: #5DB0E6;
text-decoration: none;
}
li a {
color: #eeeedd;
background: rgb(0, 0, 0, .3);
border-radius: 6px;
padding: 5px;
display: block;
}
li a:hover {
text-decoration: none;
}
#PlayList {
width: 250px;
height 90px;
top: 10px;
left: 140px;
z-index: 99;
display: block;
background: none;
position: absolute;
}
#playlist::-webkit-scrollbar {
-webkit-appearance: none;
width: 10px;
transition: all 1s;
}
#playlist::-webkit-scrollbar-thumb {
border-top-right-radius: 15px;
border-bottom-right-radius: 15px;
background-color: rgba(0,0,0, 0.4);
transition: 1s;
}
.joinAlBtn {
float: right;
font-size: 24px;
text-align: right;
cursor: pointer;
color: #80eefc;
}
.switch2 {
position: relative;
display: inline-block;
width: 50px;
height: 23px;
float: right;
left: -10px;
}
.switch2 input {
opacity: 0;
width: 0;
height: 0
}
.switch1 {
position: absolute;
display: inline-block;
width: 50px;
height: 23px;
left: 80%;
}
.switch1 input {
opacity: 0;
width: 0;
height: 0
}
.slider {
border-radius: 34px;
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: rgba(31,31,31, 0.3);
-webkit-transition: .4s;
transition: .4s
}
select {
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
border-radius: 16px;
border: 1px solid rgba(31, 31, 31, 0.01);
box-shadow: 0 4px 30px rgba(35, 35, 35, 0.1);
text-align: center;
}
input {
border-radius: 16px;
}
.slider:before {
border-radius: 50%;
position: absolute;
content: "";
height: 18.2px;
width: 18.2px;
left: 2px;
bottom: 2px;
background-color: white;
-webkit-transition: .4s;
transition: .4s
}
input:checked+.slider {
background-color: #57deef;
}
input:focus+.slider {
box-shadow: 0 0 1px #1f1f1f
}
input:checked+.slider:before {
-webkit-transform: translateX(13px);
-ms-transform: translateX(13px);
transform: translateX(28px)
}
.skinColorItem {
borde: 4px solid #452c2c;
}
#modMenus {
display: none;
width: 100%;
position: absolute;
text-align: center;
top: 50%;
transform: translateY(-50%);
-ms-transform: translateY(-50%);
-moz-transform: translateY(-50%);
-webkit-transform: translateY(-50%);
-o-transform: translateY(-50%);
}
#menuHolder {
pointer-events: all;
width: 400px;
display: inline-block;
background-color: rgba(0, 0, 0, 0.25);
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
color: #fff;
padding: 10px;
height: 200px;
max-height: calc(100vh - 200px);
overflow-y: scroll;
-webkit-overflow-scrolling: touch;
}
.menuItem {
color: #fff;
padding: 5px;
font-size: 24px;
text-align: left;
cursor: pointer;
}
[Link] {
margin-right: 10px;
}
.menuTabv {
width: 183px;
font-size: 26px;
display: inline-block;
background-color: rgba(0, 0, 0, 0.25);
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
color: #fff;
padding: 10px;
pointer-events: all;
cursor: pointer;
}
[Link] {
margin-right: 10px;
}
.menuTab2 {
width: 183px;
font-size: 26px;
display: inline-block;
background-color: rgba(0, 0, 0, 0.25);
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
color: #fff;
padding: 10px;
pointer-events: all;
cursor: pointer;
}
`));
[Link](styleElement);
[Link]("keydown", (function(e) {
if([Link] == 105) {
if([Link]("gameUI").[Link] == "block") {
[Link]("gameUI").[Link] = "none";
} else [Link]("gameUI").[Link] = "block";
}
}), !1);