Created
July 5, 2015 17:51
-
-
Save BySayko/f3a301b510fbc47e3c8e to your computer and use it in GitHub Desktop.
launcher.user.js BoomBap
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==UserScript== | |
// @name Launcher | |
// @namespace BoomBAP Radyo | |
// @include http://agar.io/ | |
// @version 2.86 | |
// @grant none | |
// @author www.boombap.com | |
// ==/UserScript== | |
Number.prototype.mod = function(n) { | |
return ((this%n)+n)%n; | |
}; | |
Array.prototype.peek = function() { | |
return this[this.length-1]; | |
} | |
$.get('https://raw.githubusercontent.com/Apostolique/Agar.io-bot/master/launcher.user.js?1', function(data) { | |
var latestVersion = data.replace(/(\r\n|\n|\r)/gm,""); | |
latestVersion = latestVersion.substring(latestVersion.indexOf("// @version")+11,latestVersion.indexOf("// @grant")); | |
latestVersion = parseFloat(latestVersion + 0.0000); | |
var myVersion = parseFloat(GM_info.script.version + 0.0000); | |
if(latestVersion > myVersion) | |
{ | |
alert("Yeni bir UPDATE var: launcher.user.js: V" + latestVersion + "\nYeni Update icin Boombap.com'a girin"); | |
window.open('http://boombap.com','_blank'); | |
} | |
console.log('Current launcher.user.js Version: ' + myVersion + " on Github: " + latestVersion); | |
}); | |
console.log("Boombap Calisiyor"); | |
(function (h, f) { | |
//UPDATE | |
function keyAction(e) { | |
if (84 == e.keyCode) { | |
console.log("Toggle"); | |
toggle = !toggle; | |
} | |
if (82 == e.keyCode) { | |
console.log("ToggleDraw"); | |
toggleDraw = !toggleDraw; | |
} | |
if (68 == e.keyCode) { | |
window.setDarkTheme(!getDarkBool()); | |
} | |
if (70 == e.keyCode) { | |
window.setShowMass(!getMassBool()); | |
} | |
if (69 == e.keyCode) { | |
if (message.length > 0) { | |
window.setMessage([]); | |
window.onmouseup = function () { | |
}; | |
window.ignoreStream = true; | |
} else { | |
window.ignoreStream = false; | |
window.refreshTwitch(); | |
} | |
} | |
if (81 == e.keyCode) { | |
console.log("ToggleFollowMouse"); | |
toggleFollow = !toggleFollow; | |
} | |
} | |
function humanPlayer() { | |
//Don't need to do anything. | |
return [getPointX(), getPointY()]; | |
} | |
function Sa() { | |
//UPDATE | |
if (window.botList == null) { | |
window.botList = []; | |
window.jQuery('#locationUnknown').append(window.jQuery('<select id="bList" class="form-control" onchange="setBotIndex($(this).val());" />')); | |
window.jQuery('#locationUnknown').addClass('form-group'); | |
} | |
window.jQuery('#nick').val(originalName); | |
window.botList.push(["Human", humanPlayer]); | |
var bList = window.jQuery('#bList'); | |
window.jQuery('<option />', {value: (window.botList.length - 1), text: "Human"}).appendTo(bList); | |
la = !0; | |
za(); | |
setInterval(za, 180000); | |
B = ma = document.getElementById('canvas'); | |
e = B.getContext('2d'); | |
B.onmousedown = function (a) { | |
if (Aa) { | |
var b = a.clientX - (5 + p / 5 / 2), | |
c = a.clientY - (5 + p / 5 / 2); | |
if (Math.sqrt(b * b + c * c) <= p / 5 / 2) { | |
K(); | |
C(17); | |
return | |
} | |
} | |
T = a.clientX; | |
U = a.clientY; | |
na(); | |
K() | |
}; | |
B.onmousemove = function (a) { | |
T = a.clientX; | |
U = a.clientY; | |
na() | |
}; | |
B.onmouseup = function () { | |
}; | |
/firefox/i.test(navigator.userAgent) ? document.addEventListener('DOMMouseScroll', Ba, !1) : document.body.onmousewheel = Ba; | |
var a = !1, | |
b = !1, | |
c = !1; | |
h.onkeydown = function (d) { | |
//UPDATE | |
if (!window.jQuery('#nick').is(":focus")) { | |
32 != d.keyCode || a || (K(), C(17), a = !0); | |
81 != d.keyCode || b || (C(18), b = !0); | |
87 != d.keyCode || c || (K(), C(21), c = !0); | |
27 == d.keyCode && Ca(!0); | |
//UPDATE | |
keyAction(d); | |
} | |
}; | |
h.onkeyup = function (d) { | |
32 == d.keyCode && (a = !1); | |
87 == d.keyCode && (c = !1); | |
81 == d.keyCode && b && (C(19), b = !1) | |
}; | |
h.onblur = function () { | |
C(19); | |
c = b = a = !1 | |
}; | |
h.onresize = Da; | |
Da(); | |
h.requestAnimationFrame ? h.requestAnimationFrame(Ea) : setInterval(oa, 1000 / 60); | |
setInterval(K, 40); | |
v && f('#region').val(v); | |
Fa(); | |
V(f('#region').val()); | |
null == r && v && W(); | |
f('#overlays').show() | |
} | |
function Ba(a) { | |
D *= Math.pow(0.9, a.wheelDelta / - 120 || a.detail || 0); | |
1 > D && (D = 1); | |
D > 4 / g && (D = 4 / g) | |
} | |
function Ta() { | |
if (0.4 > g) L = null; | |
else { | |
for (var a = Number.POSITIVE_INFINITY, b = Number.POSITIVE_INFINITY, c = Number.NEGATIVE_INFINITY, d = Number.NEGATIVE_INFINITY, e = 0, l = 0; l < u.length; l++) { | |
var k = u[l]; | |
!k.I() || k.M || 20 >= k.size * g || (e = Math.max(k.size, e), a = Math.min(k.x, a), b = Math.min(k.y, b), c = Math.max(k.x, c), d = Math.max(k.y, d)) | |
} | |
L = Ua.ca({ | |
X: a - (e + 100), | |
Y: b - (e + 100), | |
fa: c + (e + 100), | |
ga: d + (e + 100), | |
da: 2, | |
ea: 4 | |
}); | |
for (l = 0; l < u.length; l++) if (k = u[l], k.I() && !(20 >= k.size * g)) for (a = 0; a < k.a.length; ++a) b = k.a[a].x, | |
c = k.a[a].y, | |
b < s - p / 2 / g || c < t - q / 2 / g || b > s + p / 2 / g || c > t + q / 2 / g || L.i(k.a[a]) | |
} | |
} | |
function na() { | |
//UPDATE | |
if (toggle ||window.botList[botIndex][0] == "Human") { | |
X = (T - p / 2) / g + s; | |
Y = (U - q / 2) / g + t | |
} | |
} | |
function za() { | |
null == Z && (Z = { | |
}, f('#region').children().each(function () { | |
var a = f(this), | |
b = a.val(); | |
b && (Z[b] = a.text()) | |
})); | |
f.get($ + '//m.agar.io/info', function (a) { | |
var b = { | |
}, | |
c; | |
for (c in a.regions) { | |
var d = c.split(':') [0]; | |
b[d] = b[d] || 0; | |
b[d] += a.regions[c].numPlayers | |
} | |
for (c in b) f('#region option[value="' + c + '"]').text(Z[c] + ' (' + b[c] + ' players)') | |
}, 'json') | |
} | |
function Ga() { | |
f('#adsBottom').hide(); | |
f('#overlays').hide(); | |
Fa() | |
} | |
function V(a) { | |
a && a != v && (f('#region').val() != a && f('#region').val(a), v = h.localStorage.location = a, f('.region-message').hide(), f('.region-message.' + a).show(), f('.btn-needs-server').prop('disabled', !1), la && W()) | |
} | |
function Ca(a) { | |
E = null; | |
f('#overlays').fadeIn(a ? 200 : 3000); | |
a || f('#adsBottom').fadeIn(3000) | |
} | |
function Fa() { | |
f('#region').val() ? h.localStorage.location = f('#region').val() : h.localStorage.location && f('#region').val(h.localStorage.location); | |
f('#region').val() ? f('#locationKnown').append(f('#region')) : f('#locationUnknown').append(f('#region')) | |
} | |
function pa() { | |
console.log('Find ' + v + M); | |
f.ajax($ + '//m.agar.io/', { | |
error: function () { | |
setTimeout(pa, 1000) | |
}, | |
success: function (a) { | |
a = a.split('\n'); | |
Ha('ws://' + a[0], a[1]) | |
}, | |
dataType: 'text', | |
method: 'POST', | |
cache: !1, | |
crossDomain: !0, | |
data: v + M || '?' | |
}) | |
} | |
function W() { | |
la && v && (f('#connecting').show(), pa()) | |
} | |
function Ha(a, hash) { | |
if (r) { | |
r.onopen = null; | |
r.onmessage = null; | |
r.onclose = null; | |
try { | |
r.close() | |
} catch (b) { | |
} | |
r = null | |
} | |
if (Va) { | |
var d = a.split(':'); | |
a = d[0] + 's://ip-' + d[1].replace(/\./g, '-').replace(/\//g, '') + '.tech.agar.io:' + ( + d[2] + 2000) | |
} | |
F = [ | |
]; | |
m = [ | |
]; | |
z = { | |
}; | |
u = [ | |
]; | |
H = [ | |
]; | |
A = [ | |
]; | |
w = x = null; | |
I = 0; | |
console.log('Connecting to ' + a); | |
//UPDATE | |
serverIP = a; | |
r = new WebSocket(a); | |
r.binaryType = 'arraybuffer'; | |
r.onopen = function() { | |
var a; | |
aa = 500; | |
f('#connecting').hide(); | |
console.log('socket open'); | |
a = N(5); | |
a.setUint8(0, 254); | |
a.setUint32(1, 4, !0); | |
O(a); | |
a = N(5); | |
a.setUint8(0, 255); | |
a.setUint32(1, 154669603, !0); | |
O(a); | |
a = N(1 + hash.length); | |
a.setUint8(0, 80); | |
for (var c = 0; c < hash.length; ++c) { | |
a.setUint8(c + 1, hash.charCodeAt(c)); | |
} | |
O(a); | |
Ia() | |
} | |
r.onmessage = Xa; | |
r.onclose = Ya; | |
r.onerror = function () { | |
console.log('socket error') | |
} | |
} | |
function N(a) { | |
return new DataView(new ArrayBuffer(a)) | |
} | |
function O(a) { | |
r.send(a.buffer) | |
} | |
function Ya() { | |
console.log('socket close'); | |
setTimeout(W, aa); | |
aa *= 1.5 | |
} | |
function Xa(a) { | |
Za(new DataView(a.data)) | |
} | |
function Za(a) { | |
function b() { | |
for (var b = ''; ; ) { | |
var d = a.getUint16(c, !0); | |
c += 2; | |
if (0 == d) break; | |
b += String.fromCharCode(d) | |
} | |
return b | |
} | |
var c = 0; | |
240 == a.getUint8(c) && (c += 5); | |
switch (a.getUint8(c++)) { | |
case 16: | |
$a(a, c); | |
break; | |
case 17: | |
P = a.getFloat32(c, !0); | |
c += 4; | |
Q = a.getFloat32(c, !0); | |
c += 4; | |
R = a.getFloat32(c, !0); | |
c += 4; | |
break; | |
case 20: | |
m = [ | |
]; | |
F = [ | |
]; | |
break; | |
case 21: | |
qa = a.getInt16(c, !0); | |
c += 2; | |
ra = a.getInt16(c, !0); | |
c += 2; | |
sa || (sa = !0, ba = qa, ca = ra); | |
break; | |
case 32: | |
F.push(a.getUint32(c, !0)); | |
c += 4; | |
break; | |
case 49: | |
if (null != x) break; | |
var d = a.getUint32(c, !0), | |
c = c + 4; | |
A = [ | |
]; | |
for (var e = 0; e < d; ++e) { | |
var l = a.getUint32(c, !0), | |
c = c + 4; | |
A.push({ | |
id: l, | |
name: b() | |
}) | |
} | |
Ja(); | |
break; | |
case 50: | |
x = [ | |
]; | |
d = a.getUint32(c, !0); | |
c += 4; | |
for (e = 0; e < d; ++e) x.push(a.getFloat32(c, !0)), | |
c += 4; | |
Ja(); | |
break; | |
case 64: | |
da = a.getFloat64(c, !0), | |
c += 8, | |
ea = a.getFloat64(c, !0), | |
c += 8, | |
fa = a.getFloat64(c, !0), | |
c += 8, | |
ga = a.getFloat64(c, !0), | |
c += 8, | |
P = (fa + da) / 2, | |
Q = (ga + ea) / 2, | |
R = 1, | |
0 == m.length && (s = P, t = Q, g = R) | |
} | |
} | |
function $a(a, b) { | |
G = + new Date; | |
var c = Math.random(); | |
ta = !1; | |
var d = a.getUint16(b, !0); | |
b += 2; | |
for (var e = 0; e < d; ++e) { | |
var l = z[a.getUint32(b, !0)], | |
k = z[a.getUint32(b + 4, !0)]; | |
b += 8; | |
l && k && (k.S(), k.p = k.x, k.q = k.y, k.o = k.size, k.D = l.x, k.F = l.y, k.n = k.size, k.L = G) | |
} | |
for (e = 0; ; ) { | |
d = a.getUint32(b, !0); | |
b += 4; | |
if (0 == d) break; | |
++e; | |
var h, | |
l = a.getInt16(b, !0); | |
b += 2; | |
k = a.getInt16(b, !0); | |
b += 2; | |
h = a.getInt16(b, !0); | |
b += 2; | |
for (var g = a.getUint8(b++), f = a.getUint8(b++), p = a.getUint8(b++), g = (g << | |
16 | f << 8 | p).toString(16); 6 > g.length; ) g = '0' + g; | |
var g = '#' + g, | |
f = a.getUint8(b++), | |
p = !!(f & 1), | |
r = !!(f & 16); | |
f & 2 && (b += 4); | |
f & 4 && (b += 8); | |
f & 8 && (b += 16); | |
for (var q, n = ''; ; ) { | |
q = a.getUint16(b, !0); | |
b += 2; | |
if (0 == q) break; | |
n += String.fromCharCode(q) | |
} | |
q = n; | |
n = null; | |
z.hasOwnProperty(d) ? (n = z[d], n.K(), n.p = n.x, n.q = n.y, n.o = n.size, n.color = g) : (n = new Ka(d, l, k, h, g, q), n.ka = l, n.la = k); | |
n.d = p; | |
n.j = r; | |
n.D = l; | |
n.F = k; | |
n.n = h; | |
n.ja = c; | |
n.L = G; | |
n.W = f; | |
q && n.Z(q); | |
- 1 != F.indexOf(d) && - 1 == m.indexOf(n) && (document.getElementById('overlays').style.display = 'none', m.push(n), 1 == m.length && (s = n.x, t = n.y)) | |
//UPDATE | |
interNodes[d] = window.getCells()[d]; | |
} | |
//UPDATE | |
Object.keys(interNodes).forEach(function (element, index) { | |
//console.log("start: " + interNodes[element].updateTime + " current: " + D + " life: " + (D - interNodes[element].updateTime)); | |
var isRemoved = !window.getCells().hasOwnProperty(element); | |
if (isRemoved && (getLastUpdate() - interNodes[element].L) > 3000) { | |
delete interNodes[element]; | |
} else if (isRemoved && computeDistance(getOffsetX(), getOffsetY(), interNodes[element].x, interNodes[element].y) < screenDistance()) { | |
//console.log("Too close! Remove " + computeDistance(getOffsetX(), getOffsetY(), interNodes[element].x, interNodes[element].y) + " || " + screenDistance()); | |
delete interNodes[element]; | |
} | |
}); | |
c = a.getUint32(b, !0); | |
b += 4; | |
for (e = 0; e < c; e++) d = a.getUint32(b, !0), | |
b += 4, | |
n = z[d], | |
null != n && n.S(); | |
//ta && 0 == m.length && Ca(!1) | |
} | |
//UPDATE | |
function computeDistance(x1, y1, x2, y2) { | |
var xdis = x1 - x2; // <--- FAKE AmS OF COURSE! | |
var ydis = y1 - y2; | |
var distance = Math.sqrt(xdis * xdis + ydis * ydis); | |
return distance; | |
} | |
function screenDistance() { | |
return Math.min(computeDistance | |
(getOffsetX(), getOffsetY(), screenToGameX(getWidth()), getOffsetY()), computeDistance | |
(getOffsetX(), getOffsetY(), getOffsetX(), screenToGameY(getHeight()))); | |
} | |
function screenToGameX(x) { | |
return (x - getWidth() / 2) / getRatio() + getX(); | |
} | |
function screenToGameY(y) { | |
return (y - getHeight() / 2) / getRatio() + getY();; | |
} | |
window.drawPoint = function(x_1, y_1, drawColor, text) { | |
if (!toggleDraw) { | |
dPoints.push([x_1, y_1, drawColor]); | |
dText.push(text); | |
} | |
} | |
window.drawArc = function(x_1, y_1, x_2, y_2, x_3, y_3, drawColor) { | |
if (!toggleDraw) { | |
var radius = computeDistance(x_1, y_1, x_3, y_3); | |
dArc.push([x_1, y_1, x_2, y_2, x_3, y_3, radius, drawColor]); | |
} | |
} | |
window.drawLine = function(x_1, y_1, x_2, y_2, drawColor) { | |
if (!toggleDraw) { | |
lines.push([x_1, y_1, x_2, y_2, drawColor]); | |
} | |
} | |
window.drawCircle = function(x_1, y_1, radius, drawColor) { | |
if (!toggleDraw) { | |
circles.push([x_1, y_1, radius, drawColor]); | |
} | |
} | |
function K() { | |
//UPDATE | |
if (getPlayer().length == 0 && !reviving && ~~(getCurrentScore() / 100) > 0) { | |
console.log("Dead: " + ~~(getCurrentScore() / 100)); | |
apos('send', 'pageview'); | |
} | |
if (getPlayer().length == 0) { | |
console.log("Revive"); | |
setNick(originalName); | |
reviving = true; | |
} else if (getPlayer().length > 0 && reviving) { | |
reviving = false; | |
} | |
var a; | |
if (ua()) { | |
a = T - p / 2; | |
var b = U - q / 2; | |
64 > a * a + b * b || 0.01 > Math.abs(La - X) && 0.01 > Math.abs(Ma - Y) || (La = X, Ma = Y, a = N(21), a.setUint8(0, 16), a.setFloat64(1, X, !0), a.setFloat64(9, Y, !0), a.setUint32(17, 0, !0), O(a)) | |
} | |
} | |
function Ia() { | |
if (ua() && null != E) { | |
var a = N(1 + 2 * E.length); | |
a.setUint8(0, 0); | |
for (var b = 0; b < E.length; ++b) a.setUint16(1 + 2 * b, E.charCodeAt(b), !0); | |
O(a) | |
} | |
} | |
function ua() { | |
return null != r && r.readyState == r.OPEN | |
} | |
function C(a) { | |
if (ua()) { | |
var b = N(1); | |
b.setUint8(0, a); | |
O(b) | |
} | |
} | |
function Ea() { | |
oa(); | |
h.requestAnimationFrame(Ea) | |
} | |
function Da() { | |
p = h.innerWidth; | |
q = h.innerHeight; | |
ma.width = B.width = p; | |
ma.height = B.height = q; | |
oa() | |
} | |
function Na() { | |
var a; | |
a = 1 * Math.max(q / 1080, p / 1920); | |
return a *= D | |
} | |
function ab() { | |
if (0 != m.length) { | |
for (var a = 0, b = 0; b < m.length; b++) a += m[b].size; | |
a = Math.pow(Math.min(64 / a, 1), 0.4) * Na(); | |
g = (9 * g + a) / 10 | |
} | |
} | |
function oa() { | |
//UPDATE | |
dPoints = []; | |
circles = []; | |
dArc = []; | |
dText = []; | |
lines = []; | |
var a, | |
b = Date.now(); | |
++bb; | |
G = b; | |
if (0 < m.length) { | |
ab(); | |
for (var c = a = 0, d = 0; d < m.length; d++) m[d].K(), | |
a += m[d].x / m.length, | |
c += m[d].y / m.length; | |
P = a; | |
Q = c; | |
R = g; | |
s = (s + a) / 2; | |
t = (t + c) / 2 | |
} else s = (29 * s + P) / 30, | |
t = (29 * t + Q) / 30, | |
g = (9 * g + R * Na()) / 10; | |
Ta(); | |
na(); | |
va || e.clearRect(0, 0, p, q); | |
va ? (e.fillStyle = ha ? '#111111' : '#F2FBFF', e.globalAlpha = 0.05, e.fillRect(0, 0, p, q), e.globalAlpha = 1) : cb(); | |
u.sort(function (a, b) { | |
return a.size == b.size ? a.id - b.id : a.size - b.size | |
}); | |
e.save(); | |
e.translate(p / 2, q / 2); | |
e.scale(g, g); | |
e.translate( - s, - t); | |
for (d = 0; d < H.length; d++) H[d].T(); | |
for (d = 0; d < u.length; d++) u[d].T(); | |
//UPDATE | |
if (getPlayer().length > 0) { | |
var moveLoc = window.botList[botIndex][1](toggleFollow); | |
if (!toggle) { | |
setPoint(moveLoc[0], moveLoc[1]); | |
} | |
} | |
customRender(e); | |
if (sa) { | |
ba = (3 * ba + qa) / 4; | |
ca = (3 * ca + ra) / 4; | |
e.save(); | |
e.strokeStyle = | |
'#FFAAAA'; | |
e.lineWidth = 10; | |
e.lineCap = 'round'; | |
e.lineJoin = 'round'; | |
e.globalAlpha = 0.5; | |
e.beginPath(); | |
for (d = 0; d < m.length; d++) e.moveTo(m[d].x, m[d].y), | |
e.lineTo(ba, ca); | |
e.stroke(); | |
e.restore() | |
} | |
e.restore(); | |
w && w.width && e.drawImage(w, p - w.width - 10, 10); | |
I = Math.max(I, db()); | |
//UPDATE | |
var currentDate = new Date(); | |
var nbSeconds = 0; | |
if (getPlayer().length > 0) { | |
nbSeconds = (currentDate.getSeconds() + (currentDate.getMinutes() * 60) + (currentDate.getHours() * 60 * 60)) - (lifeTimer.getSeconds() + (lifeTimer.getMinutes() * 60) + (lifeTimer.getHours() * 60 * 60)); | |
} | |
bestTime = Math.max(nbSeconds, bestTime); | |
var displayText = 'Score: ' + ~~(I / 100) + " Current Time: " + nbSeconds + " seconds."; | |
0 != I && (null == ia && (ia = new ja(24, '#FFFFFF', true,'#000000')), ia.u(displayText), c = ia.G(), a = c.width, e.globalAlpha = 0.2, e.fillStyle = '#000000', e.fillRect(10, q - 10 - 24 - 10, a + 10, 34), e.globalAlpha = 1, e.drawImage(c, 15, q - 10 - 24 - 5)); | |
eb(); | |
b = Date.now() - b; | |
b > 1000 / 60 ? y -= 0.01 : b < 1000 / | |
65 && (y += 0.01); | |
0.4 > y && (y = 0.4); | |
1 < y && (y = 1) | |
drawStats(e); | |
} | |
//UPDATE | |
function customRender(d) { | |
d.save(); | |
for(var i = 0; i < lines.length; i++) { | |
d.beginPath(); | |
d.lineWidth = 5; | |
if (lines[i][4] == 0) { | |
d.strokeStyle = "#FF0000"; | |
} else if (lines[i][4] == 1) { | |
d.strokeStyle = "#00FF00"; | |
} else if (lines[i][4] == 2) { | |
d.strokeStyle = "#0000FF"; | |
} else if (lines[i][4] == 3) { | |
d.strokeStyle = "#FF8000"; | |
} else if (lines[i][4] == 4) { | |
d.strokeStyle = "#8A2BE2"; | |
} else if (lines[i][4] == 5) { | |
d.strokeStyle = "#FF69B4"; | |
} else if (lines[i][4] == 6) { | |
d.strokeStyle = "#008080"; | |
} else if (lines[i][4] == 7) { | |
d.strokeStyle = "#FFFFFF"; | |
} else { | |
d.strokeStyle = "#000000"; | |
} | |
d.moveTo(lines[i][0], lines[i][1]); | |
d.lineTo(lines[i][2], lines[i][3]); | |
d.stroke(); | |
} | |
d.restore(); | |
d.save(); | |
for(var i = 0; i < circles.length; i++) { | |
if (circles[i][3] == 0) { | |
d.strokeStyle = "#FF0000"; | |
} else if (circles[i][3] == 1) { | |
d.strokeStyle = "#00FF00"; | |
} else if (circles[i][3] == 2) { | |
d.strokeStyle = "#0000FF"; | |
} else if (circles[i][3] == 3) { | |
d.strokeStyle = "#FF8000"; | |
} else if (circles[i][3] == 4) { | |
d.strokeStyle = "#8A2BE2"; | |
} else if (circles[i][3] == 5) { | |
d.strokeStyle = "#FF69B4"; | |
} else if (circles[i][3] == 6) { | |
d.strokeStyle = "#008080"; | |
} else if (circles[i][3] == 7) { | |
d.strokeStyle = "#FFFFFF"; | |
} else { | |
d.strokeStyle = "#000000"; | |
} | |
d.beginPath(); | |
d.lineWidth = 10; | |
//d.setLineDash([5]); | |
d.globalAlpha = 0.3; | |
d.arc(circles[i][0], circles[i][1], circles[i][2], 0, 2 * Math.PI, false); | |
d.stroke(); | |
} | |
d.restore(); | |
d.save(); | |
for(var i = 0; i < dArc.length; i++) { | |
if (dArc[i][7] == 0) { | |
d.strokeStyle = "#FF0000"; | |
} else if (dArc[i][7] == 1) { | |
d.strokeStyle = "#00FF00"; | |
} else if (dArc[i][7] == 2) { | |
d.strokeStyle = "#0000FF"; | |
} else if (dArc[i][7] == 3) { | |
d.strokeStyle = "#FF8000"; | |
} else if (dArc[i][7] == 4) { | |
d.strokeStyle = "#8A2BE2"; | |
} else if (dArc[i][7] == 5) { | |
d.strokeStyle = "#FF69B4"; | |
} else if (dArc[i][7] == 6) { | |
d.strokeStyle = "#008080"; | |
} else if (dArc[i][7] == 7) { | |
d.strokeStyle = "#FFFFFF"; | |
} else { | |
d.strokeStyle = "#000000"; | |
} | |
d.beginPath(); | |
d.lineWidth = 5; | |
var ang1 = Math.atan2(dArc[i][1] - dArc[i][5], dArc[i][0] - dArc[i][4]); | |
var ang2 = Math.atan2(dArc[i][3] - dArc[i][5], dArc[i][2] - dArc[i][4]); | |
d.arc(dArc[i][4], dArc[i][5], dArc[i][6], ang1, ang2, false); | |
d.stroke(); | |
} | |
d.restore(); | |
d.save(); | |
for (var i = 0; i < dPoints.length; i++) { | |
if (dText[i] == "") { | |
var radius = 10; | |
d.beginPath(); | |
d.arc(dPoints[i][0], dPoints[i][1], radius, 0, 2 * Math.PI, false); | |
if (dPoints[i][2] == 0) { | |
d.fillStyle = "black"; | |
} else if (dPoints[i][2] == 1) { | |
d.fillStyle = "yellow"; | |
} else if (dPoints[i][2] == 2) { | |
d.fillStyle = "blue"; | |
} else if (dPoints[i][2] == 3) { | |
d.fillStyle = "red"; | |
} else if (dPoints[i][2] == 4) { | |
d.fillStyle = "#008080"; | |
} else if (dPoints[i][2] == 5) { | |
d.fillStyle = "#FF69B4"; | |
} else { | |
d.fillStyle = "#000000"; | |
} | |
d.fill(); | |
d.lineWidth = 2; | |
d.strokeStyle = '#003300'; | |
d.stroke(); | |
} else { | |
var text = new ja(18, (getDarkBool() ? '#F2FBFF' : '#111111'), true, '#000000'); | |
text.u(dText[i]); | |
var textRender = text.G(); | |
d.drawImage(textRender, dPoints[i][0], dPoints[i][1]); | |
} | |
} | |
d.restore(); | |
} | |
function drawStats(d) { | |
d.save() | |
sessionScore = Math.max(I, sessionScore); | |
var debugStrings = []; | |
debugStrings.push("Current Bot: " + window.botList[botIndex][0]); | |
debugStrings.push("T - Bot: " + (!toggle ? "On" : "Off")); | |
debugStrings.push("R - Lines: " + (!toggleDraw ? "On" : "Off")); | |
debugStrings.push("Q - Follow Mouse: " + (toggleFollow ? "On" : "Off")); | |
debugStrings.push(""); | |
debugStrings.push("Best Score: " + ~~(sessionScore / 100)); | |
debugStrings.push("Best Time: " + bestTime + " seconds"); | |
debugStrings.push(""); | |
debugStrings.push(serverIP); | |
if (getPlayer().length > 0) { | |
var offsetX = -getMapStartX(); | |
var offsetY = -getMapStartY(); | |
debugStrings.push("Location: " + Math.floor(getPlayer()[0].x + offsetX) + ", " + Math.floor(getPlayer()[0].y + offsetY)); | |
} | |
var offsetValue = 20; | |
var text = new ja(18, (getDarkBool() ? '#F2FBFF' : '#111111')); | |
for (var i = 0; i < debugStrings.length; i++) { | |
text.u(debugStrings[i]); | |
var textRender = text.G(); | |
d.drawImage(textRender, 20, offsetValue); | |
offsetValue += textRender.height; | |
} | |
if (message.length > 0) { | |
var mRender = []; | |
var mWidth = 0; | |
var mHeight = 0; | |
for (var i = 0; i < message.length; i++) { | |
var mText = new ja(28, '#FF0000', true,'#000000'); | |
mText.u(message[i]); | |
mRender.push(mText.G()); | |
if (mRender[i].width > mWidth) { | |
mWidth = mRender[i].width; | |
} | |
mHeight += mRender[i].height; | |
} | |
var mX = getWidth() / 2 - mWidth / 2; | |
var mY = 20; | |
d.globalAlpha = 0.4; | |
d.fillStyle = '#000000'; | |
d.fillRect(mX - 10, mY - 10, mWidth + 20, mHeight + 20); | |
d.globalAlpha = 1; | |
var mOffset = mY; | |
for (var i = 0; i < mRender.length; i++) { | |
d.drawImage(mRender[i], getWidth() / 2 - mRender[i].width / 2, mOffset); | |
mOffset += mRender[i].height; | |
} | |
} | |
d.restore(); | |
} | |
function cb() { | |
e.fillStyle = ha ? '#111111' : '#F2FBFF'; | |
e.fillRect(0, 0, p, q); | |
e.save(); | |
e.strokeStyle = ha ? '#AAAAAA' : '#000000'; | |
e.globalAlpha = 0.2; | |
e.scale(g, g); | |
for (var a = p / g, b = q / g, c = - 0.5 + ( - s + a / 2) % 50; c < a; c += 50) e.beginPath(), | |
e.moveTo(c, 0), | |
e.lineTo(c, b), | |
e.stroke(); | |
for (c = - 0.5 + ( - t + b / 2) % 50; c < b; c += 50) e.beginPath(), | |
e.moveTo(0, c), | |
e.lineTo(a, c), | |
e.stroke(); | |
e.restore() | |
} | |
function eb() { | |
if (Aa && wa.width) { | |
var a = p / 5; | |
e.drawImage(wa, 5, 5, a, a) | |
} | |
} | |
function db() { | |
for (var a = 0, b = 0; b < m.length; b++) a += m[b].n * m[b].n; | |
return a | |
} | |
function Ja() { | |
w = null; | |
if (null != x || 0 != A.length) if (null != x || ka) { | |
w = document.createElement('canvas'); | |
var a = w.getContext('2d'), | |
b = 60, | |
b = null == x ? b + 24 * A.length : b + 180, | |
c = Math.min(200, 0.3 * p) / 200; | |
w.width = 200 * c; | |
w.height = b * c; | |
a.scale(c, c); | |
a.globalAlpha = 0.4; | |
a.fillStyle = '#000000'; | |
a.fillRect(0, 0, 200, b); | |
a.globalAlpha = 1; | |
a.fillStyle = '#FFFFFF'; | |
c = null; | |
c = 'Leaderboard'; | |
a.font = '30px Ubuntu'; | |
a.fillText(c, 100 - a.measureText(c).width / 2, 40); | |
if (null == x) for (a.font = '20px Ubuntu', b = 0; b < A.length; ++b) c = A[b].name || 'An unnamed cell', | |
ka || (c = 'An unnamed cell'), | |
- 1 != F.indexOf(A[b].id) ? (m[0].name && (c = m[0].name), a.fillStyle = '#FFAAAA') : a.fillStyle = '#FFFFFF', | |
c = b + 1 + '. ' + c, | |
a.fillText(c, 100 - a.measureText(c).width / 2, 70 + 24 * b); | |
else for (b = c = 0; b < x.length; ++b) { | |
var d = c + x[b] * Math.PI * 2; | |
a.fillStyle = fb[b + 1]; | |
a.beginPath(); | |
a.moveTo(100, 140); | |
a.arc(100, 140, 80, c, d, !1); | |
a.fill(); | |
c = d | |
} | |
} | |
} | |
function Ka(a, b, c, d, e, l) { | |
u.push(this); | |
z[a] = this; | |
this.id = a; | |
this.p = this.x = b; | |
this.q = this.y = c; | |
this.o = this.size = d; | |
this.color = e; | |
this.a = [ | |
]; | |
this.l = [ | |
]; | |
this.R(); | |
this.Z(l) | |
} | |
function ja(a, b, c, d) { | |
a && (this.r = a); | |
b && (this.N = b); | |
this.P = !!c; | |
d && (this.s = d) | |
} | |
var $ = h.location.protocol, | |
Va = 'https:' == $, | |
//UPDATE | |
toggle = false, | |
toggleDraw = false, | |
toggleFollow = false, | |
tempPoint = [0, 0, 1], | |
dPoints = [], | |
circles = [], | |
dArc = [], | |
dText = [], | |
lines = [], | |
names = ["BoomBap.com"], | |
originalName = names[Math.floor(Math.random() * names.length)], | |
sessionScore = 0, | |
serverIP = "", | |
interNodes = [], | |
lifeTimer = new Date(), | |
bestTime = 0, | |
botIndex = 0, | |
reviving = false, | |
message = [], | |
ma, | |
e, | |
B, | |
p, | |
q, | |
L = null, | |
r = null, | |
s = 0, | |
t = 0, | |
F = [ | |
], | |
m = [ | |
], | |
z = { | |
}, | |
u = [ | |
], | |
H = [ | |
], | |
A = [ | |
], | |
T = 0, | |
U = 0, | |
X = - 1, | |
Y = - 1, | |
bb = 0, | |
G = 0, | |
E = null, | |
da = 0, | |
ea = 0, | |
fa = 10000, | |
ga = 10000, | |
g = 1, | |
v = null, | |
Oa = !0, | |
ka = !0, | |
xa = !1, | |
ta = !1, | |
I = 0, | |
ha = !1, | |
Pa = !1, | |
P = s = ~~((da + fa) / 2), | |
Q = t = ~~((ea + ga) / 2), | |
R = 1, | |
M = '', | |
x = null, | |
la = !1, | |
sa = !1, | |
qa = 0, | |
ra = 0, | |
ba = 0, | |
ca = 0, | |
Qa = 0, | |
fb = [ | |
'#333333', | |
'#FF3333', | |
'#33FF33', | |
'#3333FF' | |
], | |
va = !1, | |
D = 1, | |
Aa = 'ontouchstart' in h && /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent), | |
wa = new Image; | |
wa.src = 'img/split.png'; | |
var Ra = document.createElement('canvas'); | |
if ('undefined' == typeof console || 'undefined' == typeof DataView || 'undefined' == typeof WebSocket || null == Ra || null == Ra.getContext || null == h.localStorage) alert('You browser does not support this game, we recommend you to use Firefox to play this'); | |
else { | |
var Z = null; | |
h.setNick = function (a) { | |
//UPDATE | |
originalName = a; | |
if (getPlayer().length == 0) { | |
lifeTimer = new Date(); | |
} | |
Ga(); | |
E = a; | |
Ia(); | |
I = 0 | |
}; | |
h.setRegion = V; | |
h.setSkins = function (a) { | |
Oa = a | |
}; | |
h.setNames = function (a) { | |
ka = a | |
}; | |
h.setDarkTheme = function (a) { | |
ha = a | |
}; | |
h.setColors = function (a) { | |
xa = a | |
}; | |
h.setShowMass = function (a) { | |
Pa = a | |
}; | |
h.spectate = function () { | |
E = null; | |
C(1); | |
Ga() | |
}; | |
h.setGameMode = function (a) { | |
a != M && (M = a, W()) | |
}; | |
h.setAcid = function (a) { | |
va = a | |
}; | |
null != h.localStorage && (null == h.localStorage.AB8 && (h.localStorage.AB8 = 0 + ~~(100 * Math.random())), Qa = + h.localStorage.AB8, h.ABGroup = Qa); | |
f.get($ + '//gc.agar.io', function (a) { | |
var b = a.split(' '); | |
a = b[0]; | |
b = b[1] || ''; | |
- 1 == 'DE IL PL HU BR AT UA'.split(' ').indexOf(a) && ya.push('nazi'); | |
- 1 == ['UA'].indexOf(a) && ya.push('ussr'); | |
S.hasOwnProperty(a) && ('string' == typeof S[a] ? v || V(S[a]) : S[a].hasOwnProperty(b) && (v || V(S[a][b]))) | |
}, 'text'); | |
setTimeout(function () { | |
}, 300000); | |
var S = { | |
AF: 'JP-Tokyo', | |
AX: 'EU-London', | |
AL: 'EU-London', | |
DZ: 'EU-London', | |
AS: 'SG-Singapore', | |
AD: 'EU-London', | |
AO: 'EU-London', | |
AI: 'US-Atlanta', | |
AG: 'US-Atlanta', | |
AR: 'BR-Brazil', | |
AM: 'JP-Tokyo', | |
AW: 'US-Atlanta', | |
AU: 'SG-Singapore', | |
AT: 'EU-London', | |
AZ: 'JP-Tokyo', | |
BS: 'US-Atlanta', | |
BH: 'JP-Tokyo', | |
BD: 'JP-Tokyo', | |
BB: 'US-Atlanta', | |
BY: 'EU-London', | |
BE: 'EU-London', | |
BZ: 'US-Atlanta', | |
BJ: 'EU-London', | |
BM: 'US-Atlanta', | |
BT: 'JP-Tokyo', | |
BO: 'BR-Brazil', | |
BQ: 'US-Atlanta', | |
BA: 'EU-London', | |
BW: 'EU-London', | |
BR: 'BR-Brazil', | |
IO: 'JP-Tokyo', | |
VG: 'US-Atlanta', | |
BN: 'JP-Tokyo', | |
BG: 'EU-London', | |
BF: 'EU-London', | |
BI: 'EU-London', | |
KH: 'JP-Tokyo', | |
CM: 'EU-London', | |
CA: 'US-Atlanta', | |
CV: 'EU-London', | |
KY: 'US-Atlanta', | |
CF: 'EU-London', | |
TD: 'EU-London', | |
CL: 'BR-Brazil', | |
CN: 'CN-China', | |
CX: 'JP-Tokyo', | |
CC: 'JP-Tokyo', | |
CO: 'BR-Brazil', | |
KM: 'EU-London', | |
CD: 'EU-London', | |
CG: 'EU-London', | |
CK: 'SG-Singapore', | |
CR: 'US-Atlanta', | |
CI: 'EU-London', | |
HR: 'EU-London', | |
CU: 'US-Atlanta', | |
CW: 'US-Atlanta', | |
CY: 'JP-Tokyo', | |
CZ: 'EU-London', | |
DK: 'EU-London', | |
DJ: 'EU-London', | |
DM: 'US-Atlanta', | |
DO: 'US-Atlanta', | |
EC: 'BR-Brazil', | |
EG: 'EU-London', | |
SV: 'US-Atlanta', | |
GQ: 'EU-London', | |
ER: 'EU-London', | |
EE: 'EU-London', | |
ET: 'EU-London', | |
FO: 'EU-London', | |
FK: 'BR-Brazil', | |
FJ: 'SG-Singapore', | |
FI: 'EU-London', | |
FR: 'EU-London', | |
GF: 'BR-Brazil', | |
PF: 'SG-Singapore', | |
GA: 'EU-London', | |
GM: 'EU-London', | |
GE: 'JP-Tokyo', | |
DE: 'EU-London', | |
GH: 'EU-London', | |
GI: 'EU-London', | |
GR: 'EU-London', | |
GL: 'US-Atlanta', | |
GD: 'US-Atlanta', | |
GP: 'US-Atlanta', | |
GU: 'SG-Singapore', | |
GT: 'US-Atlanta', | |
GG: 'EU-London', | |
GN: 'EU-London', | |
GW: 'EU-London', | |
GY: 'BR-Brazil', | |
HT: 'US-Atlanta', | |
VA: 'EU-London', | |
HN: 'US-Atlanta', | |
HK: 'JP-Tokyo', | |
HU: 'EU-London', | |
IS: 'EU-London', | |
IN: 'JP-Tokyo', | |
ID: 'JP-Tokyo', | |
IR: 'JP-Tokyo', | |
IQ: 'JP-Tokyo', | |
IE: 'EU-London', | |
IM: 'EU-London', | |
IL: 'JP-Tokyo', | |
IT: 'EU-London', | |
JM: 'US-Atlanta', | |
JP: 'JP-Tokyo', | |
JE: 'EU-London', | |
JO: 'JP-Tokyo', | |
KZ: 'JP-Tokyo', | |
KE: 'EU-London', | |
KI: 'SG-Singapore', | |
KP: 'JP-Tokyo', | |
KR: 'JP-Tokyo', | |
KW: 'JP-Tokyo', | |
KG: 'JP-Tokyo', | |
LA: 'JP-Tokyo', | |
LV: 'EU-London', | |
LB: 'JP-Tokyo', | |
LS: 'EU-London', | |
LR: 'EU-London', | |
LY: 'EU-London', | |
LI: 'EU-London', | |
LT: 'EU-London', | |
LU: 'EU-London', | |
MO: 'JP-Tokyo', | |
MK: 'EU-London', | |
MG: 'EU-London', | |
MW: 'EU-London', | |
MY: 'JP-Tokyo', | |
MV: 'JP-Tokyo', | |
ML: 'EU-London', | |
MT: 'EU-London', | |
MH: 'SG-Singapore', | |
MQ: 'US-Atlanta', | |
MR: 'EU-London', | |
MU: 'EU-London', | |
YT: 'EU-London', | |
MX: 'US-Atlanta', | |
FM: 'SG-Singapore', | |
MD: 'EU-London', | |
MC: 'EU-London', | |
MN: 'JP-Tokyo', | |
ME: 'EU-London', | |
MS: 'US-Atlanta', | |
MA: 'EU-London', | |
MZ: 'EU-London', | |
MM: 'JP-Tokyo', | |
NA: 'EU-London', | |
NR: 'SG-Singapore', | |
NP: 'JP-Tokyo', | |
NL: 'EU-London', | |
NC: 'SG-Singapore', | |
NZ: 'SG-Singapore', | |
NI: 'US-Atlanta', | |
NE: 'EU-London', | |
NG: 'EU-London', | |
NU: 'SG-Singapore', | |
NF: 'SG-Singapore', | |
MP: 'SG-Singapore', | |
NO: 'EU-London', | |
OM: 'JP-Tokyo', | |
PK: 'JP-Tokyo', | |
PW: 'SG-Singapore', | |
PS: 'JP-Tokyo', | |
PA: 'US-Atlanta', | |
PG: 'SG-Singapore', | |
PY: 'BR-Brazil', | |
PE: 'BR-Brazil', | |
PH: 'JP-Tokyo', | |
PN: 'SG-Singapore', | |
PL: 'EU-London', | |
PT: 'EU-London', | |
PR: 'US-Atlanta', | |
QA: 'JP-Tokyo', | |
RE: 'EU-London', | |
RO: 'EU-London', | |
RU: 'RU-Russia', | |
RW: 'EU-London', | |
BL: 'US-Atlanta', | |
SH: 'EU-London', | |
KN: 'US-Atlanta', | |
LC: 'US-Atlanta', | |
MF: 'US-Atlanta', | |
PM: 'US-Atlanta', | |
VC: 'US-Atlanta', | |
WS: 'SG-Singapore', | |
SM: 'EU-London', | |
ST: 'EU-London', | |
SA: 'EU-London', | |
SN: 'EU-London', | |
RS: 'EU-London', | |
SC: 'EU-London', | |
SL: 'EU-London', | |
SG: 'JP-Tokyo', | |
SX: 'US-Atlanta', | |
SK: 'EU-London', | |
SI: 'EU-London', | |
SB: 'SG-Singapore', | |
SO: 'EU-London', | |
ZA: 'EU-London', | |
SS: 'EU-London', | |
ES: 'EU-London', | |
LK: 'JP-Tokyo', | |
SD: 'EU-London', | |
SR: 'BR-Brazil', | |
SJ: 'EU-London', | |
SZ: 'EU-London', | |
SE: 'EU-London', | |
CH: 'EU-London', | |
SY: 'EU-London', | |
TW: 'JP-Tokyo', | |
TJ: 'JP-Tokyo', | |
TZ: 'EU-London', | |
TH: 'JP-Tokyo', | |
TL: 'JP-Tokyo', | |
TG: 'EU-London', | |
TK: 'SG-Singapore', | |
TO: 'SG-Singapore', | |
TT: 'US-Atlanta', | |
TN: 'EU-London', | |
TR: 'TK-Turkey', | |
TM: 'JP-Tokyo', | |
TC: 'US-Atlanta', | |
TV: 'SG-Singapore', | |
UG: 'EU-London', | |
UA: 'EU-London', | |
AE: 'EU-London', | |
GB: 'EU-London', | |
US: { | |
AL: 'US-Atlanta', | |
AK: 'US-Fremont', | |
AZ: 'US-Fremont', | |
AR: 'US-Atlanta', | |
CA: 'US-Fremont', | |
CO: 'US-Fremont', | |
CT: 'US-Atlanta', | |
DE: 'US-Atlanta', | |
FL: 'US-Atlanta', | |
GA: 'US-Atlanta', | |
HI: 'US-Fremont', | |
ID: 'US-Fremont', | |
IL: 'US-Atlanta', | |
IN: 'US-Atlanta', | |
IA: 'US-Atlanta', | |
KS: 'US-Atlanta', | |
KY: 'US-Atlanta', | |
LA: 'US-Atlanta', | |
ME: 'US-Atlanta', | |
MD: 'US-Atlanta', | |
MA: 'US-Atlanta', | |
MI: 'US-Atlanta', | |
MN: 'US-Fremont', | |
MS: 'US-Atlanta', | |
MO: 'US-Atlanta', | |
MT: 'US-Fremont', | |
NE: 'US-Fremont', | |
NV: 'US-Fremont', | |
NH: 'US-Atlanta', | |
NJ: 'US-Atlanta', | |
NM: 'US-Fremont', | |
NY: 'US-Atlanta', | |
NC: 'US-Atlanta', | |
ND: 'US-Fremont', | |
OH: 'US-Atlanta', | |
OK: 'US-Atlanta', | |
OR: 'US-Fremont', | |
PA: 'US-Atlanta', | |
RI: 'US-Atlanta', | |
SC: 'US-Atlanta', | |
SD: 'US-Fremont', | |
TN: 'US-Atlanta', | |
TX: 'US-Atlanta', | |
UT: 'US-Fremont', | |
VT: 'US-Atlanta', | |
VA: 'US-Atlanta', | |
WA: 'US-Fremont', | |
WV: 'US-Atlanta', | |
WI: 'US-Atlanta', | |
WY: 'US-Fremont', | |
DC: 'US-Atlanta', | |
AS: 'US-Atlanta', | |
GU: 'US-Atlanta', | |
MP: 'US-Atlanta', | |
PR: 'US-Atlanta', | |
UM: 'US-Atlanta', | |
VI: 'US-Atlanta' | |
}, | |
UM: 'SG-Singapore', | |
VI: 'US-Atlanta', | |
UY: 'BR-Brazil', | |
UZ: 'JP-Tokyo', | |
VU: 'SG-Singapore', | |
VE: 'BR-Brazil', | |
VN: 'JP-Tokyo', | |
WF: 'SG-Singapore', | |
EH: 'EU-London', | |
YE: 'JP-Tokyo', | |
ZM: 'EU-London', | |
ZW: 'EU-London' | |
}; | |
h.connect = Ha; | |
//UPDATE | |
window.getDarkBool = function() { | |
return ha; | |
} | |
window.getMassBool = function() { | |
return Pa; | |
} | |
window.getMemoryCells = function() { | |
return interNodes; | |
} | |
window.getCellsArray = function() { | |
return u; | |
} | |
window.getCells = function() { | |
return z; | |
} | |
window.getPlayer = function() { | |
return m; | |
} | |
window.getWidth = function() { | |
return p; | |
} | |
window.getHeight = function() { | |
return q; | |
} | |
window.getRatio = function() { | |
return g; | |
} | |
window.getOffsetX = function() { | |
return P; | |
} | |
window.getOffsetY = function() { | |
return Q; | |
} | |
window.getX = function() { | |
return s; | |
} | |
window.getY = function() { | |
return t; | |
} | |
window.getPointX = function() { | |
return X; | |
} | |
window.getPointY = function() { | |
return Y; | |
} | |
window.getMouseX = function() { | |
return T; | |
} | |
window.getMouseY = function() { | |
return U; | |
} | |
window.getMapStartX = function() { | |
return da; | |
} | |
window.getMapStartY = function() { | |
return ea; | |
} | |
window.getMapEndX = function() { | |
return fa; | |
} | |
window.getMapEndY = function() { | |
return ga; | |
} | |
window.getScreenDistance = function() { | |
var temp = screenDistance(); | |
return temp; | |
} | |
window.getLastUpdate = function() { | |
return G; | |
} | |
window.getCurrentScore = function() { | |
return I; | |
} | |
window.setPoint = function(x, y) { | |
X = x; | |
Y = y; | |
} | |
window.createFake = function(a, b, c, d, e, f) { | |
var n = new Ka(a, b, c, d, e, f); | |
return n; | |
} | |
window.setScore = function(a) { | |
sessionScore = a * 100; | |
} | |
window.setBestTime = function(a) { | |
bestTime = a; | |
} | |
window.best = function(a, b) { | |
setScore(a); | |
setBestTime(b); | |
} | |
window.setBotIndex = function(a) { | |
console.log("Changing bot"); | |
botIndex = a; | |
} | |
window.setMessage = function(a) { | |
message = a; | |
} | |
var aa = 500, | |
La = - 1, | |
Ma = - 1, | |
w = null, | |
y = 1, | |
ia = null, | |
J = { | |
}, | |
ya = 'poland;usa;china;russia;canada;australia;spain;brazil;germany;ukraine;france;sweden;hitler;north korea;south korea;japan;united kingdom;earth;greece;latvia;lithuania;estonia;finland;norway;cia;maldivas;austria;nigeria;reddit;yaranaika;confederate;9gag;indiana;4chan;italy;bulgaria;tumblr;2ch.hk;hong kong;portugal;jamaica;german empire;mexico;sanik;switzerland;croatia;chile;indonesia;bangladesh;thailand;iran;iraq;peru;moon;botswana;bosnia;netherlands;european union;taiwan;pakistan;hungary;satanist;qing dynasty;matriarchy;patriarchy;feminism;ireland;texas;facepunch;prodota;cambodia;steam;piccolo;ea;india;kc;denmark;quebec;ayy lmao;sealand;bait;tsarist russia;origin;vinesauce;stalin;belgium;luxembourg;stussy;prussia;8ch;argentina;scotland;sir;romania;belarus;wojak;doge;nasa;byzantium;imperial japan;french kingdom;somalia;turkey;mars;pokerface;8;irs;receita federal;facebook'.split(';'), | |
gb = [ | |
'8', | |
'nasa' | |
], | |
hb = [ | |
'm\'blob' | |
]; | |
Ka.prototype = { | |
id: 0, | |
a: null, //points | |
l: null, //pointsAcc | |
name: null, //name | |
k: null, //nameCache | |
J: null, //sizeCache | |
x: 0, | |
y: 0, | |
size: 0, | |
p: 0, //ox | |
q: 0, //oy | |
o: 0, //oSize | |
D: 0, //nx | |
F: 0, //ny | |
n: 0, //nSize | |
W: 0, //drawTime | |
L: 0, //updateTime | |
ja: 0, | |
ba: 0, | |
A: !1, | |
d: !1, | |
j: !1, | |
M: !0, | |
//UPDATE | |
updateCode: 0, | |
danger: false, | |
dangerTimeOut: 0, | |
S: function () { | |
var a; | |
for (a = 0; a < u.length; a++) if (u[a] == this) { | |
u.splice(a, 1); | |
break | |
} | |
delete z[this.id]; | |
a = m.indexOf(this); | |
- 1 != a && (ta = !0, m.splice(a, 1)); | |
a = F.indexOf(this.id); | |
- 1 != a && F.splice(a, 1); | |
this.A = !0; | |
H.push(this) | |
}, | |
h: function () { | |
return Math.max(~~(0.3 * this.size), 24) | |
}, | |
Z: function (a) { | |
if (this.name = a) null == this.k ? this.k = new ja(this.h(), '#FFFFFF', !0, '#000000') : this.k.H(this.h()), | |
this.k.u(this.name) | |
}, | |
R: function () { | |
for (var a = this.C(); this.a.length > a; ) { | |
var b = ~~(Math.random() * this.a.length); | |
this.a.splice(b, 1); | |
this.l.splice(b, 1) | |
} | |
0 == this.a.length && 0 < a && (this.a.push({ | |
Q: this, | |
e: this.size, | |
x: this.x, | |
y: this.y | |
}), this.l.push(Math.random() - 0.5)); | |
for (; this.a.length < a; ) { | |
var b = ~~(Math.random() * this.a.length), | |
c = this.a[b]; | |
this.a.splice(b, 0, { | |
Q: this, | |
e: c.e, | |
x: c.x, | |
y: c.y | |
}); | |
this.l.splice(b, 0, this.l[b]) | |
} | |
}, | |
C: function () { | |
var a = 10; | |
20 > this.size && (a = 0); | |
this.d && (a = 30); | |
var b = this.size; | |
this.d || (b *= g); | |
b *= y; | |
this.W & 32 && (b *= 0.25); | |
return ~~Math.max(b, a) | |
}, | |
ha: function () { | |
this.R(); | |
for (var a = this.a, b = this.l, c = a.length, d = 0; d < c; ++d) { | |
var e = b[(d - 1 + c) % c], | |
l = b[(d + 1) % c]; | |
b[d] += (Math.random() - 0.5) * (this.j ? 3 : 1); | |
b[d] *= 0.7; | |
10 < b[d] && (b[d] = 10); | |
- 10 > b[d] && (b[d] = - 10); | |
b[d] = (e + l + 8 * b[d]) / 10 | |
} | |
for (var k = this, h = this.d ? 0 : (this.id / 1000 + G / 10000) % (2 * Math.PI), d = 0; d < c; ++d) { | |
var f = a[d].e, | |
e = a[(d - 1 + c) % c].e, | |
l = a[(d + 1) % c].e; | |
if (15 < this.size && null != L && 20 < this.size * g) { | |
var m = !1, | |
p = a[d].x, | |
q = a[d].y; | |
L.ia(p - 5, q - 5, 10, 10, function (a) { | |
a.Q != k && 25 > (p - a.x) * (p - a.x) + (q - a.y) * (q - a.y) && (m = !0) | |
}); | |
!m && (a[d].x < da || a[d].y < ea || a[d].x > fa || a[d].y > ga) && (m = !0); | |
m && (0 < b[d] && (b[d] = 0), b[d] -= 1) | |
} | |
f += b[d]; | |
0 > f && (f = 0); | |
f = this.j ? (19 * f + this.size) / 20 : (12 * f + this.size) / 13; | |
a[d].e = (e + l + 8 * f) / 10; | |
e = 2 * Math.PI / c; | |
l = this.a[d].e; | |
this.d && 0 == d % 2 && (l += 5); | |
a[d].x = this.x + Math.cos(e * d + h) * l; | |
a[d].y = this.y + Math.sin(e * d + h) * l | |
} | |
}, | |
K: function () { | |
var a; | |
a = (G - this.L) / 120; | |
a = 0 > a ? 0 : 1 < a ? 1 : a; | |
var b = 0 > a ? 0 : 1 < a ? 1 : a; | |
this.h(); | |
if (this.A && 1 <= b) { | |
var c = H.indexOf(this); | |
- 1 != c && H.splice(c, 1) | |
} | |
this.x = a * (this.D - this.p) + this.p; | |
this.y = a * (this.F - this.q) + this.q; | |
this.size = b * (this.n - this.o) + this.o; | |
return b | |
}, | |
I: function () { | |
return this.x + this.size + 40 < s - p / 2 / g || this.y + this.size + 40 < t - q / 2 / g || this.x - this.size - 40 > s + p / 2 / g || this.y - this.size - 40 > t + q / 2 / g ? !1 : !0 | |
}, | |
T: function () { | |
if (this.I()) { | |
var a = !this.d && !this.j && 0.4 > g; | |
5 > this.C() && (a = !0); | |
if (this.M && !a) for (var b = 0; b < this.a.length; b++) this.a[b].e = this.size; | |
this.M = a; | |
e.save(); | |
this.ba = G; | |
b = this.K(); | |
this.A && (e.globalAlpha *= 1 - b); | |
e.lineWidth = 10; | |
e.lineCap = 'round'; | |
e.lineJoin = this.d ? 'miter' : 'round'; | |
xa ? (e.fillStyle = '#FFFFFF', e.strokeStyle = '#AAAAAA') : (e.fillStyle = this.color, e.strokeStyle = this.color); | |
if (a) e.beginPath(), | |
e.arc(this.x, this.y, this.size, 0, 2 * Math.PI, !1); | |
else { | |
this.ha(); | |
e.beginPath(); | |
var c = this.C(); | |
e.moveTo(this.a[0].x, this.a[0].y); | |
for (b = 1; b <= c; ++b) { | |
var d = b % c; | |
e.lineTo(this.a[d].x, this.a[d].y) | |
} | |
} | |
e.closePath(); | |
c = this.name.toLowerCase(); | |
!this.j && Oa && ':teams' != M ? - 1 != ya.indexOf(c) ? (J.hasOwnProperty(c) || (J[c] = new Image, J[c].src = 'skins/' + c + '.png'), b = 0 != J[c].width && J[c].complete ? J[c] : null) : b = null : b = null; | |
b = (d = b) ? - 1 != hb.indexOf(c) : !1; | |
a || e.stroke(); | |
e.fill(); | |
null == d || b || (e.save(), e.clip(), e.drawImage(d, this.x - this.size, this.y - this.size, 2 * this.size, 2 * this.size), e.restore()); | |
(xa || 15 < this.size) && !a && (e.strokeStyle = '#000000', e.globalAlpha *= 0.1, e.stroke()); | |
e.globalAlpha = 1; | |
null != d && b && e.drawImage(d, this.x - 2 * this.size, this.y - 2 * this.size, 4 * this.size, 4 * this.size); | |
b = - 1 != m.indexOf(this); | |
a = ~~this.y; | |
if ((ka || b) && this.name && this.k && (null == d || - 1 == gb.indexOf(c))) { | |
d = this.k; | |
d.u(this.name); | |
d.H(this.h()); | |
c = Math.ceil(10 * g) / 10; | |
d.$(c); | |
var d = d.G(), | |
f = ~~(d.width / c), | |
l = ~~(d.height / c); | |
e.drawImage(d, ~~this.x - ~~(f / 2), a - ~~(l / 2), f, l); | |
a += d.height / 2 / c + 4 | |
} | |
Pa && (b || 0 == m.length && (!this.d || this.j) && 20 < this.size) && (null == this.J && (this.J = new ja(this.h() / 2, '#FFFFFF', !0, '#000000')), b = this.J, b.H(this.h() / 2), b.u(~~(this.size * this.size / 100)), c = Math.ceil(10 * g) / 10, b.$(c), d = b.G(), f = ~~(d.width / c), l = ~~(d.height / c), e.drawImage(d, ~~this.x - ~~(f / 2), a - ~~(l / 2), f, l)); | |
e.restore() | |
} | |
} | |
}; | |
ja.prototype = { | |
w: '', | |
N: '#000000', | |
P: !1, | |
s: '#000000', | |
r: 16, | |
m: null, | |
O: null, | |
g: !1, | |
v: 1, | |
H: function (a) { | |
this.r != a && (this.r = a, this.g = !0) | |
}, | |
$: function (a) { | |
this.v != a && (this.v = a, this.g = !0) | |
}, | |
setStrokeColor: function (a) { | |
this.s != a && (this.s = a, this.g = !0) | |
}, | |
u: function (a) { | |
a != this.w && (this.w = a, this.g = !0) | |
}, | |
G: function () { | |
null == this.m && (this.m = document.createElement('canvas'), this.O = this.m.getContext('2d')); | |
if (this.g) { | |
this.g = !1; | |
var a = this.m, | |
b = this.O, | |
c = this.w, | |
d = this.v, | |
e = this.r, | |
l = e + 'px Ubuntu'; | |
b.font = l; | |
var k = ~~(0.2 * e); | |
a.width = (b.measureText(c).width + 6) * d; | |
a.height = (e + k) * d; | |
b.font = l; | |
b.scale(d, d); | |
b.globalAlpha = 1; | |
b.lineWidth = 3; | |
b.strokeStyle = this.s; | |
b.fillStyle = this.N; | |
this.P && b.strokeText(c, 3, e - k / 2); | |
b.fillText(c, 3, e - k / 2) | |
} | |
return this.m | |
} | |
}; | |
Date.now || (Date.now = function () { | |
return (new Date).getTime() | |
}); | |
var Ua = { | |
ca: function (a) { | |
function b(a, b, c, d, e) { | |
this.x = a; | |
this.y = b; | |
this.f = c; | |
this.c = d; | |
this.depth = e; | |
this.items = [ | |
]; | |
this.b = [ | |
] | |
} | |
var c = a.da || 2, | |
d = a.ea || 4; | |
b.prototype = { | |
x: 0, | |
y: 0, | |
f: 0, | |
c: 0, | |
depth: 0, | |
items: null, | |
b: null, | |
B: function (a) { | |
for (var b = 0; b < this.items.length; ++b) { | |
var c = this.items[b]; | |
if (c.x >= a.x && c.y >= a.y && c.x < a.x + a.f && c.y < a.y + a.c) return !0 | |
} | |
if (0 != this.b.length) { | |
var d = this; | |
return this.V(a, function (b) { | |
return d.b[b].B(a) | |
}) | |
} | |
return !1 | |
}, | |
t: function (a, b) { | |
for (var c = 0; c < this.items.length; ++c) b(this.items[c]); | |
if (0 != this.b.length) { | |
var d = this; | |
this.V(a, function (c) { | |
d.b[c].t(a, b) | |
}) | |
} | |
}, | |
i: function (a) { | |
0 != this.b.length ? this.b[this.U(a)].i(a) : this.items.length >= c && this.depth < d ? (this.aa(), this.b[this.U(a)].i(a)) : this.items.push(a) | |
}, | |
U: function (a) { | |
return a.x < this.x + this.f / 2 ? a.y < this.y + this.c / 2 ? 0 : 2 : a.y < this.y + this.c / 2 ? 1 : 3 | |
}, | |
V: function (a, b) { | |
return a.x < this.x + this.f / 2 && (a.y < this.y + this.c / 2 && b(0) || a.y >= this.y + this.c / 2 && b(2)) || a.x >= this.x + this.f / 2 && (a.y < this.y + this.c / 2 && b(1) || a.y >= this.y + this.c / 2 && b(3)) ? !0 : !1 | |
}, | |
aa: function () { | |
var a = this.depth + 1, | |
c = this.f / 2, | |
d = this.c / 2; | |
this.b.push(new b(this.x, this.y, c, d, a)); | |
this.b.push(new b(this.x + c, this.y, c, d, a)); | |
this.b.push(new b(this.x, this.y + d, c, d, a)); | |
this.b.push(new b(this.x + c, this.y + d, c, d, a)); | |
a = this.items; | |
this.items = [ | |
]; | |
for (c = 0; c < a.length; c++) this.i(a[c]) | |
}, | |
clear: function () { | |
for (var a = 0; a < this.b.length; a++) this.b[a].clear(); | |
this.items.length = 0; | |
this.b.length = 0 | |
} | |
}; | |
var e = { | |
x: 0, | |
y: 0, | |
f: 0, | |
c: 0 | |
}; | |
return { | |
root: new b(a.X, a.Y, a.fa - a.X, a.ga - a.Y, 0), | |
i: function (a) { | |
this.root.i(a) | |
}, | |
t: function (a, b) { | |
this.root.t(a, b) | |
}, | |
ia: function (a, b, c, d, f) { | |
e.x = a; | |
e.y = b; | |
e.f = c; | |
e.c = d; | |
this.root.t(e, f) | |
}, | |
B: function (a) { | |
return this.root.B(a) | |
}, | |
clear: function () { | |
this.root.clear() | |
} | |
} | |
} | |
}; | |
h.onload = Sa | |
} | |
}) (window, window.jQuery); | |
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ | |
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), | |
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) | |
})(window,document,'script','//www.google-analytics.com/analytics.js','apos'); | |
apos('create', 'UA-64394184-1', 'auto'); | |
apos('send', 'pageview'); | |
window.ignoreStream = false, | |
window.refreshTwitch = function() { | |
$.ajax({ | |
url: "http://boombap.com", | |
cache: false, | |
dataType: "jsonp" | |
}).done(function (data) { | |
if (data["stream"] == null) { | |
//console.log("BOOMBAP.com Radyomuza Bekleriz!"); | |
window.setMessage([]); | |
window.onmouseup = function () { | |
}; | |
window.ignoreStream = false; | |
} else { | |
//console.log("BOOMBAP.com Radyomuza Bekleriz!"); | |
/*if (!window.ignoreStream) { | |
window.setMessage(["BOOMBAP.com Radyomuza Bekleriz!!", "Radyo'ya girmek icin buraya tiklayin!", "Kapamak icin E Ye Basin"]); | |
window.onmouseup = function () { | |
window.open("http://www.boombap.com); | |
}; | |
}*/ | |
} | |
}).fail(function () { | |
}); | |
}; | |
setInterval(window.refreshTwitch, 60000); | |
window.refreshTwitch(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment