// ==UserScript==
// @name ZTx-Lite
// @namespace Exposed
// @description LTEST
// @version 0.1
// @author AkiraYasha
// @match http://agar.io
// @match https://agar.io
// @require https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.0/lodash.min.js
// @grant GM_setValue
// @grant GM_getValue
// @grant GM_xmlhttpRequest
// ==/UserScript==
i18n_lang = 'en';
i18n_dict = {
'en': {
'connecting': 'Connecting',
'connect_help': 'If you cannot connect to the servers, check if you have some anti virus or firewall blocking the connection.',
'play': 'ORC',
'spectate': 'Spectate',
'login_and_play': 'Login and play',
'play_as_guest': 'Play as guest',
'share': 'Share',
'advertisement': 'Advertisement',
'privacy_policy': 'Privacy Policy',
'terms_of_service': 'Terms of Service',
'changelog': 'Changelog',
'instructions_mouse': 'Move your mouse to control your cell',
'instructions_space': 'Press <b>Space</b> to split',
'instructions_w': 'Press <b>W</b> to eject some mass',
'gamemode_ffa': 'FFA',
'gamemode_teams': 'Teams',
'gamemode_experimental': 'Experimental',
'region_select': ' -- Select a Region -- ',
'region_us_east': 'US East',
'region_us_west': 'US West',
'region_north_america': 'North America',
'region_south_america': 'South America',
'region_europe': 'Europe',
'region_turkey': 'Turkey',
'region_poland': 'Poland',
'region_east_asia': 'East Asia',
'region_russia': 'Russia',
'region_china': 'China',
'region_oceania': 'Oceania',
'region_australia': 'Australia',
'region_players': 'players',
'option_no_skins': 'No skins',
'option_no_names': 'No names',
'option_dark_theme': 'Dark theme',
'option_no_colors': 'No colors',
'option_show_mass': 'Show mass',
'leaderboard': 'Leaderboard',
'unnamed_cell': 'An unnamed cell',
'last_match_results': 'Last match results',
'score': 'Score',
'leaderboard_time': 'Leaderboard Time',
'mass_eaten': 'Mass Eaten',
'top_position': 'Top Position',
'position_1': 'First',
'position_2': 'Second',
'position_3': 'Third',
'position_4': 'Fourth',
'position_5': 'Fifth',
'position_6': 'Sixth',
'position_7': 'Seventh',
'position_8': 'Eighth',
'position_9': 'Ninth',
'position_10': 'Tenth',
'player_cells_eaten': 'Player Cells Eaten',
'survival_time': 'Survival Time',
'games_played': 'Games played',
'highest_mass': 'Highest mass',
'total_cells_eaten': 'Total cells eaten',
'total_mass_eaten': 'Total mass eaten',
'longest_survival': 'Longest survival',
'logout': 'Logout',
'stats': 'Stats',
'shop': 'Shop',
'party': 'Party',
'party_description': 'Play with your friends in the same map',
'create_party': 'Create',
'creating_party': 'Creating party...',
'join_party': 'Join',
'back_button': 'Back',
'joining_party': 'Joining party...',
'joined_party_instructions': 'You are now playing with this party:',
'party_join_error': 'There was a problem joining that party, please make sure the code is correct, or try creating another party',
'login_tooltip': 'Login with Facebook and get:<br\xA0/><br /><br />Start the game with more mass!<br />Level up to get even more starting mass!',
'create_party_instructions': 'Give this link to your friends:',
'join_party_instructions': 'Your friend should have given you a code, type it here:',
'continue': 'Continue',
'option_skip_stats': 'Skip stats',
'stats_food_eaten': 'food eaten',
'stats_highest_mass': 'highest mass',
'stats_time_alive': 'time alive',
'stats_leaderboard_time': 'leaderboard time',
'stats_cells_eaten': 'cells eaten',
'stats_top_position': 'top position',
'': ''
},
'?': {}
};
i18n_lang = (window.navigator.userLanguage || window.navigator.language || 'en').split('-')[0];
if (!i18n_dict.hasOwnProperty(i18n_lang)) {
i18n_lang = 'en';
}
i18n = i18n_dict[i18n_lang];
jQuery("#canvas").remove();
jQuery("#connecting").after('<canvas id="canvas" width="800" height="600"></canvas>');
(function(window, $) {
function Init() {
g_drawLines = true;
PlayerStats();
setInterval(PlayerStats, 180000);
g_canvas = g_canvas_ = document.getElementById('canvas');
g_context = g_canvas.getContext('2d');
g_canvas.onmousedown = function(event) {
if (g_touchCapable) {
var deltaX = event.clientX - (5 + g_ready / 5 / 2);
var deltaY = event.clientY - (5 + g_ready / 5 / 2);
if (Math.sqrt(deltaX * deltaX + deltaY * deltaY) <= g_ready / 5 / 2) {
SendPos();
SendCmd(17);
return;
}
}
g_mouseX = 1 * event.clientX;
g_mouseY = 1 * event.clientY;
UpdatePos();
SendPos();
};
g_canvas.onmousemove = function(event) {
g_mouseX = 1 * event.clientX;
g_mouseY = 1 * event.clientY;
UpdatePos();
};
g_canvas.onmouseup = function() {};
if (/firefox/i.test(navigator.userAgent)) {
document.addEventListener('DOMMouseScroll', WheelHandler, false);
} else {
document.body.onmousewheel = WheelHandler;
}
var spaceDown = false;
var cachedSkin = false;
var wkeyDown = false;
var gkeyDown = false;
var ekeyDown = false;
function handleQuickFeed() {
if (ekeyDown) {
SendPos();
SendCmd(21);
setTimeout(handleQuickFeed, 142);
}
}
window.onkeydown = function(event) {
if (!(32 != event.keyCode || spaceDown)) {
SendPos();
SendCmd(17);
spaceDown = true;
}
if (!(81 != event.keyCode || cachedSkin)) {
SendCmd(18);
cachedSkin = true;
}
if (!(87 != event.keyCode || wkeyDown)) {
SendPos();
SendCmd(21);
wkeyDown = true;
}
if (!(71 != event.keyCode || gkeyDown)) {
showGrid = window.localStorage.showGrid = !showGrid;
gkeyDown = true;
}
if (!(69 != event.keyCode || gkeyDown)) {
ekeyDown = true;
handleQuickFeed();
}
if (27 == event.keyCode) {
__unmatched_10(300);
}
};
window.onkeyup = function(event) {
if (32 == event.keyCode) {
spaceDown = false;
}
if (87 == event.keyCode) {
wkeyDown = false;
}
if (71 == event.keyCode) {
gkeyDown = false;
}
if (69 == event.keyCode) {
ekeyDown = false;
}
if (81 == event.keyCode && cachedSkin) {
SendCmd(19);
cachedSkin = false;
}
};
window.onblur = function() {
SendCmd(19);
wkeyDown = gkeyDown = ekeyDown = cachedSkin = spaceDown = false;
};
window.onresize = ResizeHandler;
window.requestAnimationFrame(__unmatched_135);
setInterval(SendPos, 40);
if (g_region) {
$('#region').val(g_region);
}
SyncRegion();
SetRegion($('#region').val());
if (0 == __unmatched_114 && g_region) {
Start();
}
__unmatched_10(0);
ResizeHandler();
if (window.location.hash && 6 <= window.location.hash.length) {
RenderLoop(window.location.hash);
}
}
function WheelHandler(event) {
g_zoom *= Math.pow(0.9, event.wheelDelta / -120 || event.detail || 0);
}
function UpdateTree() {
if (0.4 > g_scale) {
g_pointTree = null;
} else {
for (var minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, i = 0; i < g_cells.length; i++) {
var cell = g_cells[i];
if (!(!cell.H() || cell.L || 20 >= cell.size * g_scale)) {
minX = Math.min(cell.x - cell.size, minX);
minY = Math.min(cell.y - cell.size, minY);
maxY = Math.max(cell.x + cell.size, maxY);
maxX = Math.max(cell.y + cell.size, maxX);
}
}
g_pointTree = QTreeFactory.X({
ba: minX - 10,
ca: minY - 10,
Z: maxY + 10,
$: maxX + 10,
fa: 2,
ha: 4
});
for (i = 0; i < g_cells.length; i++) {
if (cell = g_cells[i], cell.H() && !(20 >= cell.size * g_scale)) {
for (minX = 0; minX < cell.a.length; ++minX) {
minY = cell.a[minX].x;
maxY = cell.a[minX].y;
if (!(minY < g_viewX - g_ready / 2 / g_scale || maxY < g_viewY - noClip / 2 / g_scale || minY > g_viewX + g_ready / 2 / g_scale || maxY > g_viewY + noClip / 2 / g_scale)) {
g_pointTree.Y(cell.a[minX]);
}
}
}
}
}
}
function UpdatePos() {
g_moveX = (g_mouseX - g_ready / 2) / g_scale + g_viewX;
g_moveY = (g_mouseY - noClip / 2) / g_scale + g_viewY;
}
function PlayerStats() {
if (null == g_regionLabels) {
g_regionLabels = {};
$('#region').children().each(function() {
var $this = $(this);
var val = $this.val();
if (val) {
g_regionLabels[val] = $this.text();
}
});
}
$.get(g_protocol + 'info', function(data) {
var regionNumPlayers = {};
var region;
for (region in data.regions) {
var region_ = region.split(':')[0];
regionNumPlayers[region_] = regionNumPlayers[region_] || 0;
regionNumPlayers[region_] += data.regions[region].numPlayers;
}
for (region in regionNumPlayers) {
$('#region option[value="' + region + '"]').text(g_regionLabels[region] + ' (' + regionNumPlayers[region] + ' players)');
}
}, 'json');
}
function HideOverlay() {
$('#adsBottom').hide();
$('#overlays').hide();
$('#stats').hide();
$('#mainPanel').hide();
__unmatched_147 = g_playerCellDestroyed = false;
SyncRegion();
__unmatched_14(window.aa.concat(window.ac));
}
function SetRegion(val) {
if (val && val != g_region) {
if ($('#region').val() != val) {
$('#region').val(val);
}
g_region = window.localStorage.location = val;
$('.region-message').hide();
$('.region-message.' + val).show();
$('.btn-needs-server').prop('disabled', false);
if (g_drawLines) {
Start();
}
}
}
function __unmatched_10(char) {
if (!(g_playerCellDestroyed || __unmatched_147)) {
g_nick = null;
if (!__unmatched_122) {
$('#adsBottom').show();
$('#g300x250').hide();
$('#a300x250').show();
}
__unmatched_13(__unmatched_122 ? window.ac : window.aa);
__unmatched_122 = false;
if (1000 > char) {
qkeyDown = 1;
}
g_playerCellDestroyed = true;
$('#mainPanel').show();
if (0 < char) {
$('#overlays').fadeIn(char);
} else {
$('#overlays').show();
}
}
}
function n(rect) {
$('#helloContainer').attr('data-gamemode', rect);
__unmatched_97 = rect;
$('#gamemode').val(rect);
}
function SyncRegion() {
if ($('#region').val()) {
window.localStorage.location = $('#region').val();
} else if (window.localStorage.location) {
$('#region').val(window.localStorage.location);
}
if ($('#region').val()) {
$('#locationKnown').append($('#region'));
} else {
$('#locationUnknown').append($('#region'));
}
}
function __unmatched_13(__unmatched_180) {
if (window.googletag) {
window.googletag.cmd.push(function() {
if (g_canRefreshAds) {
g_canRefreshAds = false;
setTimeout(function() {
g_canRefreshAds = true;
}, 60000 * g_refreshAdsCooldown);
if (window.googletag && window.googletag.pubads && window.googletag.pubads().refresh) {
window.googletag.pubads().refresh(__unmatched_180);
}
}
});
}
}
function __unmatched_14(__unmatched_181) {
if (window.googletag && window.googletag.pubads && window.googletag.pubads().clear) {
window.googletag.pubads().clear(__unmatched_181);
}
}
function Render(i) {
return window.i18n[i] || window.i18n_dict.en[i] || i;
}
function FindGame() {
var __unmatched_183 = ++__unmatched_114;
console.log('Find ' + g_region + __unmatched_97);
$.ajax(g_protocol + 'findServer', {
error: function() {
setTimeout(FindGame, 1000);
},
success: function(point) {
if (__unmatched_183 == __unmatched_114) {
if (point.alert) {
alert(point.alert);
}
Connect('ws://' + point.ip, point.token);
}
},
dataType: 'json',
method: 'POST',
cache: false,
crossDomain: true,
data: (g_region + __unmatched_97 || '?') + '\n154669603'
});
}
function Start() {
if (g_drawLines && g_region) {
$('#connecting').show();
FindGame();
}
}
function Connect(address, ticket) {
if (g_socket) {
g_socket.onopen = null;
g_socket.onmessage = null;
g_socket.onclose = null;
try {
g_socket.close();
} catch (exception) {}
g_socket = null;
}
if (__unmatched_116.ip) {
address = 'ws://' + __unmatched_116.ip;
}
if (null != __unmatched_126) {
var __unmatched_187 = __unmatched_126;
__unmatched_126 = function() {
__unmatched_187(ticket);
};
}
if (g_secure) {
var parts = address.split(':');
address = parts[0] + 's://ip-' + parts[1].replace(/\./g, '-').replace(/\//g, '') + '.tech.agar.io:' + +parts[2];
}
g_playerCellIds = [];
g_playerCells = [];
g_cellsById = {};
g_cells = [];
g_destroyedCells = [];
g_scoreEntries = [];
g_leaderboardCanvas = g_scorePartitions = null;
g_maxScore = 0;
g_connectSuccessful = false;
console.log('Connecting to ' + address);
g_socket = new WebSocket(address);
g_socket.binaryType = 'arraybuffer';
g_socket.onopen = function() {
var data;
console.log('socket open');
data = GetBuffer(5);
data.setUint8(0, 254);
data.setUint32(1, 5, true);
SendBuffer(data);
data = GetBuffer(5);
data.setUint8(0, 255);
data.setUint32(1, 154669603, true);
SendBuffer(data);
data = GetBuffer(1 + ticket.length);
data.setUint8(0, 80);
for (var i = 0; i < ticket.length; ++i) {
data.setUint8(i + 1, ticket.charCodeAt(i));
}
SendBuffer(data);
RefreshAds();
};
g_socket.onmessage = MessageHandler;
g_socket.onclose = CloseHandler;
g_socket.onerror = function() {
console.log('socket error');
};
}
function GetBuffer(size) {
return new DataView(new ArrayBuffer(size));
}
function SendBuffer(data) {
g_socket.send(data.buffer);
}
function CloseHandler() {
if (g_connectSuccessful) {
g_retryTimeout = 500;
}
console.log('socket close');
setTimeout(Start, g_retryTimeout);
g_retryTimeout *= 2;
}
function MessageHandler(data) {
Receive(new DataView(data.data));
}
function Receive(data) {
function __unmatched_196() {
for (var string = '';;) {
var char = data.getUint16(pos, true);
pos += 2;
if (0 == char) {
break;
}
string += String.fromCharCode(char);
}
return string;
}
var pos = 0;
if (240 == data.getUint8(pos)) {
pos += 5;
}
switch (data.getUint8(pos++)) {
case 16:
ParseCellUpdates(data, pos);
break;
case 17:
g_viewX_ = data.getFloat32(pos, true);
pos += 4;
g_viewY_ = data.getFloat32(pos, true);
pos += 4;
g_scale_ = data.getFloat32(pos, true);
pos += 4;
break;
case 20:
g_playerCells = [];
g_playerCellIds = [];
break;
case 21:
g_linesY_ = data.getInt16(pos, true);
pos += 2;
g_linesX_ = data.getInt16(pos, true);
pos += 2;
if (!__unmatched_100) {
__unmatched_100 = true;
g_linesX = g_linesY_;
g_linesY = g_linesX_;
}
break;
case 32:
g_playerCellIds.push(data.getUint32(pos, true));
pos += 4;
break;
case 49:
if (null != g_scorePartitions) {
break;
}
var num = data.getUint32(pos, true);
var pos = pos + 4;
g_scoreEntries = [];
for (var i = 0; i < num; ++i) {
var id = data.getUint32(pos, true);
var pos = pos + 4;
g_scoreEntries.push({
id: id,
name: __unmatched_196()
});
}
UpdateLeaderboard();
break;
case 50:
g_scorePartitions = [];
num = data.getUint32(pos, true);
pos += 4;
for (i = 0; i < num; ++i) {
g_scorePartitions.push(data.getFloat32(pos, true));
pos += 4;
}
UpdateLeaderboard();
break;
case 64:
g_minX = data.getFloat64(pos, true);
pos += 8;
g_minY = data.getFloat64(pos, true);
pos += 8;
g_maxX = data.getFloat64(pos, true);
pos += 8;
g_maxY = data.getFloat64(pos, true);
pos += 8;
g_viewX_ = (g_maxX + g_minX) / 2;
g_viewY_ = (g_maxY + g_minY) / 2;
g_scale_ = 1;
if (0 == g_playerCells.length) {
g_viewX = g_viewX_;
g_viewY = g_viewY_;
g_scale = g_scale_;
}
break;
case 81:
var x = data.getUint32(pos, true);
var pos = pos + 4;
var __unmatched_202 = data.getUint32(pos, true);
var pos = pos + 4;
var __unmatched_203 = data.getUint32(pos, true);
var pos = pos + 4;
setTimeout(function() {
__unmatched_44({
d: x,
e: __unmatched_202,
c: __unmatched_203
});
}, 1200);
}
}
function ParseCellUpdates(data, pos) {
function __unmatched_208() {
for (var string = '';;) {
var id = data.getUint16(pos, true);
pos += 2;
if (0 == id) {
break;
}
string += String.fromCharCode(id);
}
return string;
}
function __unmatched_209() {
for (var __unmatched_224 = '';;) {
var r = data.getUint8(pos++);
if (0 == r) {
break;
}
__unmatched_224 += String.fromCharCode(r);
}
return __unmatched_224;
}
__unmatched_109 = g_time = Date.now();
if (!g_connectSuccessful) {
g_connectSuccessful = true;
__unmatched_25();
}
__unmatched_90 = false;
var num = data.getUint16(pos, true);
pos += 2;
for (var i = 0; i < num; ++i) {
var cellA = g_cellsById[data.getUint32(pos, true)];
var cellB = g_cellsById[data.getUint32(pos + 4, true)];
pos += 8;
if (cellA && cellB) {
cellB.R();
cellB.o = cellB.x;
cellB.p = cellB.y;
cellB.n = cellB.size;
cellB.C = cellA.x;
cellB.D = cellA.y;
cellB.m = cellB.size;
cellB.K = g_time;
__unmatched_50(cellA, cellB);
}
}
for (i = 0;;) {
num = data.getUint32(pos, true);
pos += 4;
if (0 == num) {
break;
}
++i;
var size;
var cellA = data.getInt32(pos, true);
pos += 4;
cellB = data.getInt32(pos, true);
pos += 4;
size = data.getInt16(pos, true);
pos += 2;
var flags = data.getUint8(pos++);
var y = data.getUint8(pos++);
var b = data.getUint8(pos++);
var y = __unmatched_41(flags << 16 | y << 8 | b);
var b = data.getUint8(pos++);
var isVirus = !!(b & 1);
var isAgitated = !!(b & 16);
var __unmatched_220 = null;
if (b & 2) {
pos += 4 + data.getUint32(pos, true);
}
if (b & 4) {
__unmatched_220 = __unmatched_209();
}
var name = __unmatched_208();
var flags = null;
if (g_cellsById.hasOwnProperty(num)) {
flags = g_cellsById[num];
flags.J();
flags.o = flags.x;
flags.p = flags.y;
flags.n = flags.size;
flags.color = y;
} else {
flags = new Cell(num, cellA, cellB, size, y, name);
g_cells.push(flags);
g_cellsById[num] = flags;
flags.ia = cellA;
flags.ja = cellB;
}
flags.f = isVirus;
flags.j = isAgitated;
flags.C = cellA;
flags.D = cellB;
flags.m = size;
flags.K = g_time;
flags.T = b;
if (__unmatched_220) {
flags.V = __unmatched_220;
}
if (name) {
flags.t(name);
}
if (-1 != g_playerCellIds.indexOf(num) && -1 == g_playerCells.indexOf(flags)) {
g_playerCells.push(flags);
if (1 == g_playerCells.length) {
g_viewX = flags.x;
g_viewY = flags.y;
__unmatched_141();
document.getElementById('overlays').style.display = 'none';
points = [];
__unmatched_145 = 0;
__unmatched_146 = g_playerCells[0].color;
__unmatched_148 = true;
__unmatched_149 = Date.now();
g_mode = __unmatched_152 = __unmatched_151 = 0;
}
}
}
cellA = data.getUint32(pos, true);
pos += 4;
for (i = 0; i < cellA; i++) {
num = data.getUint32(pos, true);
pos += 4;
flags = g_cellsById[num];
if (null != flags) {
flags.R();
}
}
if (__unmatched_90 && 0 == g_playerCells.length) {
__unmatched_150 = Date.now();
__unmatched_148 = false;
if (!(g_playerCellDestroyed || __unmatched_147)) {
if (__unmatched_154) {
__unmatched_13(window.ab);
ShowOverlay();
__unmatched_147 = true;
$('#overlays').fadeIn(3000);
$('#stats').show();
} else {
__unmatched_10(3000);
}
}
}
}
function __unmatched_25() {
$('#connecting').hide();
SendNick();
if (__unmatched_126) {
__unmatched_126();
__unmatched_126 = null;
}
if (null != __unmatched_128) {
clearTimeout(__unmatched_128);
}
__unmatched_128 = setTimeout(function() {
if (window.ga) {
++__unmatched_129;
window.ga('set', 'dimension2', __unmatched_129);
}
}, 10000);
}
function SendPos() {
if (IsConnected()) {
var deltaY = g_mouseX - g_ready / 2;
var delta = g_mouseY - noClip / 2;
if (!(64 > deltaY * deltaY + delta * delta || 0.01 > Math.abs(g_lastMoveY - g_moveX) && 0.01 > Math.abs(g_lastMoveX - g_moveY))) {
g_lastMoveY = g_moveX;
g_lastMoveX = g_moveY;
deltaY = GetBuffer(13);
deltaY.setUint8(0, 16);
deltaY.setInt32(1, g_moveX, true);
deltaY.setInt32(5, g_moveY, true);
deltaY.setUint32(9, 0, true);
SendBuffer(deltaY);
}
}
}
function SendNick() {
if (IsConnected() && g_connectSuccessful && null != g_nick) {
var data = GetBuffer(1 + 2 * g_nick.length);
data.setUint8(0, 0);
for (var i = 0; i < g_nick.length; ++i) {
data.setUint16(1 + 2 * i, g_nick.charCodeAt(i), true);
}
SendBuffer(data);
g_nick = null;
}
}
function IsConnected() {
return null != g_socket && g_socket.readyState == g_socket.OPEN;
}
function SendCmd(cmd) {
if (IsConnected()) {
var data = GetBuffer(1);
data.setUint8(0, cmd);
SendBuffer(data);
}
}
function RefreshAds() {
if (IsConnected() && null != __unmatched_110) {
var __unmatched_232 = GetBuffer(1 + __unmatched_110.length);
__unmatched_232.setUint8(0, 81);
for (var y = 0; y < __unmatched_110.length; ++y) {
__unmatched_232.setUint8(y + 1, __unmatched_110.charCodeAt(y));
}
SendBuffer(__unmatched_232);
}
}
function ResizeHandler() {
g_ready = 1 * window.innerWidth;
noClip = 1 * window.innerHeight;
g_canvas_.width = g_canvas.width = g_ready;
g_canvas_.height = g_canvas.height = noClip;
var $dialog = $('#helloContainer');
$dialog.css('transform', 'none');
var dialogHeight = $dialog.height();
var height = window.innerHeight;
if (dialogHeight > height / 1.1) {
$dialog.css('transform', 'translate(-50%, -50%) scale(' + height / dialogHeight / 1.1 + ')');
} else {
$dialog.css('transform', 'translate(-50%, -50%)');
}
GetScore();
}
function ScaleModifier() {
var scale;
scale = 1 * Math.max(noClip / 1080, g_ready / 1920);
return scale *= g_zoom;
}
function __unmatched_33() {
if (0 != g_playerCells.length) {
for (var scale = 0, i = 0; i < g_playerCells.length; i++) {
scale += g_playerCells[i].size;
}
scale = Math.pow(Math.min(64 / scale, 1), 0.4) * ScaleModifier();
g_scale = (9 * g_scale + scale) / 10;
}
}
var showGrid = window.localStorage.showGrid || false;
function renderBackground(context, x1, x0, y1, y0) {
var letters = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
var gridWidth = 5;
var gridHeight = 7;
var xMax = Math.round(x1);
var xMin = Math.round(x0);
var yMax = Math.round(y1);
var yMin = Math.round(y0);
var xLength = xMax - xMin;
var yLength = yMax - yMin;
context.save();
if (showGrid) {
var xPart = xLength / gridWidth;
var yPart = yLength / gridHeight;
context.beginPath();
context.lineWidth = 20;
context.textAlign = 'center';
context.textBaseline = 'middle';
context.font = (0.6 * xPart) + 'px Ubuntu';
context.fillStyle = g_showMass ? '#1A1A1A' : '#e5e5e5';
for (var j = 0; j < gridHeight; j++) {
for (var i = 0; i < gridWidth; i++) {
context.fillText(letters[j] + (i + 1), (xMin + xPart * i) + (xPart / 2), (yMin + yPart * j) + (yPart / 2));
}
}
context.lineWidth = 160;
context.strokeStyle = g_showMass ? '#1A1A1A' : '#e5e5e5';
for (var j = 0; j < gridHeight; j++) {
for (var i = 0; i < gridWidth; i++) {
context.strokeRect(xMin + xPart * i, yMin + yPart * j, xPart, yPart);
}
}
context.stroke();
}
context.beginPath();
context.strokeStyle = "#F44336";
context.lineWidth = 90;
context.strokeRect(x0 - 90, y0 - 90, xLength + 180, yLength + 180);
context.restore();
}
function GetScore() {
var x;
var time = Date.now();
++__unmatched_77;
g_time = time;
if (0 < g_playerCells.length) {
__unmatched_33();
for (var y = x = 0, i = 0; i < g_playerCells.length; i++) {
g_playerCells[i].J();
x += g_playerCells[i].x / g_playerCells.length;
y += g_playerCells[i].y / g_playerCells.length;
}
g_viewX_ = x;
g_viewY_ = y;
g_scale_ = g_scale;
g_viewX = (g_viewX + x) / 2;
g_viewY = (g_viewY + y) / 2;
} else {
g_viewX = (29 * g_viewX + g_viewX_) / 30;
g_viewY = (29 * g_viewY + g_viewY_) / 30;
g_scale = (9 * g_scale + g_scale_ * ScaleModifier()) / 10;
}
UpdateTree();
UpdatePos();
if (!g_showTrails) {
g_context.clearRect(0, 0, g_ready, noClip);
}
if (g_showTrails) {
g_context.fillStyle = g_showMass ? '#111111' : '#F2FBFF';
g_context.globalAlpha = 0.05;
g_context.fillRect(0, 0, g_ready, noClip);
g_context.globalAlpha = 1;
} else {
if (showGrid) {
g_context.fillStyle = g_showMass ? '#000000' : '#F2FBFF';
g_context.fillRect(0, 0, g_ready, noClip);
} else {
DrawGrid();
}
}
g_cells.sort(function(A, B) {
return A.size == B.size ? A.id - B.id : A.size - B.size;
});
g_context.save();
g_context.translate(g_ready / 2, noClip / 2);
g_context.scale(g_scale, g_scale);
g_context.translate(-g_viewX, -g_viewY);
renderBackground(g_context, g_maxX, g_minX, g_maxY, g_minY);
for (i = 0; i < g_destroyedCells.length; i++) {
g_destroyedCells[i].s(g_context);
}
for (i = 0; i < g_cells.length; i++) {
g_cells[i].s(g_context);
}
if (__unmatched_100) {
g_linesX = (3 * g_linesX + g_linesY_) / 4;
g_linesY = (3 * g_linesY + g_linesX_) / 4;
g_context.save();
g_context.strokeStyle = '#FFAAAA';
g_context.lineWidth = 10;
g_context.lineCap = 'round';
g_context.lineJoin = 'round';
g_context.globalAlpha = 0.5;
g_context.beginPath();
for (i = 0; i < g_playerCells.length; i++) {
g_context.moveTo(g_playerCells[i].x, g_playerCells[i].y);
g_context.lineTo(g_linesX, g_linesY);
}
g_context.stroke();
g_context.restore();
}
g_context.restore();
if (g_leaderboardCanvas && g_leaderboardCanvas.width) {
g_context.drawImage(g_leaderboardCanvas, g_ready - g_leaderboardCanvas.width - 10, 10);
}
g_maxScore = Math.max(g_maxScore, __unmatched_37());
if (0 != g_maxScore) {
if (null == g_cachedScore) {
g_cachedScore = new CachedCanvas(24, '#FFFFFF');
}
g_cachedScore.u(Render('score') + ': ' + ~~(g_maxScore / 100));
y = g_cachedScore.F();
x = y.width;
g_context.globalAlpha = 0.2;
g_context.fillStyle = '#000000';
g_context.fillRect(10, noClip - 10 - 24 - 10, x + 10, 34);
g_context.globalAlpha = 1;
g_context.drawImage(y, 15, noClip - 10 - 24 - 5);
}
DrawSplitImage();
time = Date.now() - time;
if (time > 1000 / 60) {
g_pointNumScale -= 0.01;
} else if (time < 1000 / 65) {
g_pointNumScale += 0.01;
}
if (0.4 > g_pointNumScale) {
g_pointNumScale = 0.4;
}
if (1 < g_pointNumScale) {
g_pointNumScale = 1;
}
time = g_time - __unmatched_79;
if (!IsConnected() || g_playerCellDestroyed || __unmatched_147) {
qkeyDown += time / 2000;
if (1 < qkeyDown) {
qkeyDown = 1;
}
} else {
qkeyDown -= time / 300;
if (0 > qkeyDown) {
qkeyDown = 0;
}
}
if (0 < qkeyDown) {
g_context.fillStyle = '#000000';
if (__unmatched_115) {
g_context.globalAlpha = qkeyDown;
g_context.fillRect(0, 0, g_ready, noClip);
if (canvas.complete && canvas.width) {
if (canvas.width / canvas.height < g_ready / noClip) {
time = g_ready;
x = canvas.height * g_ready / canvas.width;
} else {
time = canvas.width * noClip / canvas.height;
x = noClip;
}
g_context.drawImage(canvas, (g_ready - time) / 2, (noClip - x) / 2, time, x);
g_context.globalAlpha = 0.5 * qkeyDown;
g_context.fillRect(0, 0, g_ready, noClip);
}
} else {
g_context.globalAlpha = 0.5 * qkeyDown;
g_context.fillRect(0, 0, g_ready, noClip);
}
g_context.globalAlpha = 1;
} else {
__unmatched_115 = false;
}
__unmatched_79 = g_time;
}
function DrawGrid() {
g_context.fillStyle = g_showMass ? '#111111' : '#F2FBFF';
g_context.fillRect(0, 0, g_ready, noClip);
g_context.save();
g_context.strokeStyle = g_showMass ? '#AAAAAA' : '#000000';
g_context.globalAlpha = 0.2 * g_scale;
for (var width = g_ready / g_scale, height = noClip / g_scale, g_width = (-g_viewX + width / 2) % 50; g_width < width; g_width += 50) {
g_context.beginPath();
g_context.moveTo(g_width * g_scale - 0.5, 0);
g_context.lineTo(g_width * g_scale - 0.5, height * g_scale);
g_context.stroke();
}
for (g_width = (-g_viewY + height / 2) % 50; g_width < height; g_width += 50) {
g_context.beginPath();
g_context.moveTo(0, g_width * g_scale - 0.5);
g_context.lineTo(width * g_scale, g_width * g_scale - 0.5);
g_context.stroke();
}
g_context.restore();
}
function DrawSplitImage() {
if (g_touchCapable && g_splitImage.width) {
var size = g_ready / 5;
g_context.drawImage(g_splitImage, 5, 5, size, size);
}
}
function __unmatched_37() {
for (var score = 0, i = 0; i < g_playerCells.length; i++) {
score += g_playerCells[i].m * g_playerCells[i].m;
}
return score;
}
function UpdateLeaderboard() {
g_leaderboardCanvas = null;
if (null != g_scorePartitions || 0 != g_scoreEntries.length) {
if (null != g_scorePartitions || g_showNames) {
g_leaderboardCanvas = document.createElement('canvas');
var context = g_leaderboardCanvas.getContext('2d');
var height = 60;
var height = null == g_scorePartitions ? height + 24 * g_scoreEntries.length : height + 180;
var scale = Math.min(200, 0.3 * g_ready) / 200;
g_leaderboardCanvas.width = 200 * scale;
g_leaderboardCanvas.height = height * scale;
context.scale(scale, scale);
context.globalAlpha = 0.4;
context.fillStyle = '#000000';
context.fillRect(0, 0, 200, height);
context.globalAlpha = 1;
context.fillStyle = '#FFFFFF';
scale = null;
scale = Render('leaderboard');
context.font = '30px Ubuntu';
context.fillText(scale, 100 - context.measureText(scale).width / 2, 40);
if (null == g_scorePartitions) {
for (context.font = '20px Ubuntu', height = 0; height < g_scoreEntries.length; ++height) {
scale = g_scoreEntries[height].name || Render('unnamed_cell');
if (!g_showNames) {
scale = Render('unnamed_cell');
}
if (-1 != g_playerCellIds.indexOf(g_scoreEntries[height].id)) {
if (g_playerCells[0].name) {
scale = g_playerCells[0].name;
}
context.fillStyle = '#FFAAAA';
} else {
context.fillStyle = '#FFFFFF';
}
scale = height + 1 + '. ' + scale;
context.fillText(scale, 100 - context.measureText(scale).width / 2, 70 + 24 * height);
}
} else {
for (height = scale = 0; height < g_scorePartitions.length; ++height) {
var end = scale + g_scorePartitions[height] * Math.PI * 2;
context.fillStyle = g_teamColors[height + 1];
context.beginPath();
context.moveTo(100, 140);
context.arc(100, 140, 80, scale, end, false);
context.fill();
scale = end;
}
}
}
}
}
function Node(left, top, width, height, depth) {
this.P = left;
this.x = top;
this.y = width;
this.g = height;
this.b = depth;
}
function Cell(id, x, y, size, color, name) {
this.id = id;
this.o = this.x = x;
this.p = this.y = y;
this.n = this.size = size;
this.color = color;
this.a = [];
this.Q();
this.t(name);
}
function __unmatched_41(__unmatched_267) {
for (__unmatched_267 = __unmatched_267.toString(16); 6 > __unmatched_267.length;) {
__unmatched_267 = '0' + __unmatched_267;
}
return '#' + __unmatched_267;
}
function CachedCanvas(size, color, stroke, strokeColor) {
if (size) {
this.q = size;
}
if (color) {
this.M = color;
}
this.O = !!stroke;
if (strokeColor) {
this.r = strokeColor;
}
}
function __unmatched_43(params) {
for (var size_ = params.length, __unmatched_274, __unmatched_275; 0 < size_;) {
__unmatched_275 = Math.floor(Math.random() * size_);
size_--;
__unmatched_274 = params[size_];
params[size_] = params[__unmatched_275];
params[__unmatched_275] = __unmatched_274;
}
}
function __unmatched_44(rect, callback) {
var __unmatched_278 = '1' == $('#helloContainer').attr('data-has-account-data');
$('#helloContainer').attr('data-has-account-data', '1');
if (null == callback && window.localStorage[i_]) {
var rand = JSON.parse(window.localStorage[i_]);
rand.xp = rect.e;
rand.xpNeeded = rect.c;
rand.level = rect.d;
window.localStorage[i_] = JSON.stringify(rand);
}
if (__unmatched_278) {
var width = +$('.agario-exp-bar .progress-bar-text').first().text().split('/')[0];
var __unmatched_278 = +$('.agario-exp-bar .progress-bar-text').first().text().split('/')[1].split(' ')[0];
var rand = $('.agario-profile-panel .progress-bar-star').first().text();
if (rand != rect.d) {
__unmatched_44({
e: __unmatched_278,
c: __unmatched_278,
d: rand
}, function() {
$('.agario-profile-panel .progress-bar-star').text(rect.d);
$('.agario-exp-bar .progress-bar').css('width', '100%');
$('.progress-bar-star').addClass('animated tada').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function() {
$('.progress-bar-star').removeClass('animated tada');
});
setTimeout(function() {
$('.agario-exp-bar .progress-bar-text').text(rect.c + '/' + rect.c + ' XP');
__unmatched_44({
e: 0,
c: rect.c,
d: rect.d
}, function() {
__unmatched_44(rect, callback);
});
}, 1000);
});
} else {
var __unmatched_281 = Date.now();
var name = function() {
var deltaX;
deltaX = (Date.now() - __unmatched_281) / 1000;
deltaX = 0 > deltaX ? 0 : 1 < deltaX ? 1 : deltaX;
deltaX = deltaX * deltaX * (3 - 2 * deltaX);
$('.agario-exp-bar .progress-bar-text').text(~~(width + (rect.e - width) * deltaX) + '/' + rect.c + ' XP');
$('.agario-exp-bar .progress-bar').css('width', (88 * (width + (rect.e - width) * deltaX) / rect.c).toFixed(2) + '%');
if (1 > deltaX) {
window.requestAnimationFrame(name);
} else if (callback) {
callback();
}
};
window.requestAnimationFrame(name);
}
} else {
$('.agario-profile-panel .progress-bar-star').text(rect.d);
$('.agario-exp-bar .progress-bar-text').text(rect.e + '/' + rect.c + ' XP');
$('.agario-exp-bar .progress-bar').css('width', (88 * rect.e / rect.c).toFixed(2) + '%');
if (callback) {
callback();
}
}
}
function __unmatched_45(__unmatched_284) {
if ('string' == typeof __unmatched_284) {
__unmatched_284 = JSON.parse(__unmatched_284);
}
if (Date.now() + 1800000 > __unmatched_284.expires) {
$('#helloContainer').attr('data-logged-in', '0');
} else {
window.localStorage[i_] = JSON.stringify(__unmatched_284);
__unmatched_110 = __unmatched_284.authToken;
$('.agario-profile-name').text(__unmatched_284.name);
RefreshAds();
__unmatched_44({
e: __unmatched_284.xp,
c: __unmatched_284.xpNeeded,
d: __unmatched_284.level
});
$('#helloContainer').attr('data-logged-in', '1');
}
}
function __unmatched_46(data) {
data = data.split('\n');
__unmatched_45({
name: data[0],
fbid: data[1],
authToken: data[2],
expires: 1000 * +data[3],
level: +data[4],
xp: +data[5],
xpNeeded: +data[6]
});
}
function UpdateScale(__unmatched_286) {
if ('connected' == __unmatched_286.status) {
var y = __unmatched_286.authResponse.accessToken;
console.log(y);
window.FB.api('/me/picture?width=180&height=180', function(__unmatched_288) {
window.localStorage.fbPictureCache = __unmatched_288.data.url;
$('.agario-profile-picture').attr('src', __unmatched_288.data.url);
});
$('#helloContainer').attr('data-logged-in', '1');
if (null != __unmatched_110) {
$.ajax(g_protocol + 'checkToken', {
error: function() {
__unmatched_110 = null;
UpdateScale(__unmatched_286);
},
success: function(__unmatched_289) {
__unmatched_289 = __unmatched_289.split('\n');
__unmatched_44({
d: +__unmatched_289[0],
e: +__unmatched_289[1],
c: +__unmatched_289[2]
});
},
dataType: 'text',
method: 'POST',
cache: false,
crossDomain: true,
data: __unmatched_110
});
} else {
$.ajax(g_protocol + 'facebookLogin', {
error: function() {
__unmatched_110 = null;
$('#helloContainer').attr('data-logged-in', '0');
},
success: __unmatched_46,
dataType: 'text',
method: 'POST',
cache: false,
crossDomain: true,
data: y
});
}
}
}
function RenderLoop(x) {
n(':party');
$('#helloContainer').attr('data-party-state', '4');
x = decodeURIComponent(x).replace(/.*#/gim, '');
__unmatched_49('#' + window.encodeURIComponent(x));
$.ajax(g_protocol + 'getToken', {
error: function() {
$('#helloContainer').attr('data-party-state', '6');
},
success: function(quick) {
quick = quick.split('\n');
$('.partyToken').val('agar.io/#' + window.encodeURIComponent(x));
$('#helloContainer').attr('data-party-state', '5');
n(':party');
Connect('ws://' + quick[0], x);
},
dataType: 'text',
method: 'POST',
cache: false,
crossDomain: true,
data: x
});
}
function __unmatched_49(item) {
if (window.history && window.history.replaceState) {
window.history.replaceState({}, window.document.title, item);
}
}
function __unmatched_50(__unmatched_293, __unmatched_294) {
var playerOwned = -1 != g_playerCellIds.indexOf(__unmatched_293.id);
var __unmatched_296 = -1 != g_playerCellIds.indexOf(__unmatched_294.id);
var __unmatched_297 = 30 > __unmatched_294.size;
if (playerOwned && __unmatched_297) {
++__unmatched_145;
}
if (!(__unmatched_297 || !playerOwned || __unmatched_296)) {
++__unmatched_152;
}
}
function __unmatched_51(__unmatched_298) {
__unmatched_298 = ~~__unmatched_298;
var color = (__unmatched_298 % 60).toString();
__unmatched_298 = (~~(__unmatched_298 / 60)).toString();
if (2 > color.length) {
color = '0' + color;
}
return __unmatched_298 + ':' + color;
}
function __unmatched_52() {
if (null == g_scoreEntries) {
return 0;
}
for (var i = 0; i < g_scoreEntries.length; ++i) {
if (-1 != g_playerCellIds.indexOf(g_scoreEntries[i].id)) {
return i + 1;
}
}
return 0;
}
function ShowOverlay() {
$('.stats-food-eaten').text(__unmatched_145);
$('.stats-time-alive').text(__unmatched_51((__unmatched_150 - __unmatched_149) / 1000));
$('.stats-leaderboard-time').text(__unmatched_51(__unmatched_151));
$('.stats-highest-mass').text(~~(g_maxScore / 100));
$('.stats-cells-eaten').text(__unmatched_152);
$('.stats-top-position').text(0 == g_mode ? ':(' : g_mode);
var g_height = document.getElementById('statsGraph');
if (g_height) {
var pointsAcc = g_height.getContext('2d');
var scale = g_height.width;
var g_height = g_height.height;
pointsAcc.clearRect(0, 0, scale, g_height);
if (2 < points.length) {
for (var maxSize = 200, i = 0; i < points.length; i++) {
maxSize = Math.max(points[i], maxSize);
}
pointsAcc.lineWidth = 3;
pointsAcc.lineCap = 'round';
pointsAcc.lineJoin = 'round';
pointsAcc.strokeStyle = __unmatched_146;
pointsAcc.fillStyle = __unmatched_146;
pointsAcc.beginPath();
pointsAcc.moveTo(0, g_height - points[0] / maxSize * (g_height - 10) + 10);
for (i = 1; i < points.length; i += Math.max(~~(points.length / scale), 1)) {
for (var __unmatched_306 = i / (points.length - 1) * scale, thisNode = [], __unmatched_308 = -20; 20 >= __unmatched_308; ++__unmatched_308) {
if (!(0 > i + __unmatched_308 || i + __unmatched_308 >= points.length)) {
thisNode.push(points[i + __unmatched_308]);
}
}
thisNode = thisNode.reduce(function(__unmatched_309, __unmatched_310) {
return __unmatched_309 + __unmatched_310;
}) / thisNode.length / maxSize;
pointsAcc.lineTo(__unmatched_306, g_height - thisNode * (g_height - 10) + 10);
}
pointsAcc.stroke();
pointsAcc.globalAlpha = 0.5;
pointsAcc.lineTo(scale, g_height);
pointsAcc.lineTo(0, g_height);
pointsAcc.fill();
pointsAcc.globalAlpha = 1;
}
}
}
if (!window.agarioNoInit) {
var __unmatched_54 = window.location.protocol;
var g_secure = 'https:' == __unmatched_54;
var g_protocol = __unmatched_54 + '//m.agar.io/';
var __unmatched_57 = window.navigator.userAgent;
if (-1 != __unmatched_57.indexOf('Android')) {
if (window.ga) {
window.ga('send', 'event', 'MobileRedirect', 'PlayStore');
}
setTimeout(function() {
window.location.href = 'https://play.google.com/store/apps/details?id=com.miniclip.agar.io';
}, 1000);
} else if (-1 != __unmatched_57.indexOf('iPhone') || -1 != __unmatched_57.indexOf('iPad') || -1 != __unmatched_57.indexOf('iPod')) {
if (window.ga) {
window.ga('send', 'event', 'MobileRedirect', 'AppStore');
}
setTimeout(function() {
window.location.href = 'https://itunes.apple.com/app/agar.io/id995999703?mt=8&at=1l3vajp';
}, 1000);
} else {
var g_canvas_;
var g_context;
var g_canvas;
var g_ready;
var noClip;
var g_pointTree = null;
var g_socket = null;
var g_viewX = 0;
var g_viewY = 0;
var g_playerCellIds = [];
var g_playerCells = [];
var g_cellsById = {};
var g_cells = [];
var g_destroyedCells = [];
var g_scoreEntries = [];
var g_mouseX = 0;
var g_mouseY = 0;
var g_moveX = -1;
var g_moveY = -1;
var __unmatched_77 = 0;
var g_time = 0;
var __unmatched_79 = 0;
var g_nick = null;
var g_minX = 0;
var g_minY = 0;
var g_maxX = 10000;
var g_maxY = 10000;
var g_scale = 1;
var g_region = null;
var g_showSkins = true;
var g_showNames = true;
var g_noColors = false;
var __unmatched_90 = false;
var g_maxScore = 0;
var g_showMass = true;
var g_darkTheme = true;
var g_viewX_ = g_viewX = ~~((g_minX + g_maxX) / 2);
var g_viewY_ = g_viewY = ~~((g_minY + g_maxY) / 2);
var g_scale_ = 1;
var __unmatched_97 = '';
var g_scorePartitions = null;
var g_drawLines = false;
var __unmatched_100 = false;
var g_linesY_ = 0;
var g_linesX_ = 0;
var g_linesX = 0;
var g_linesY = 0;
var g_ABGroup = 0;
var g_teamColors = [
'#333333',
'#FF3333',
'#33FF33',
'#3333FF'
];
var g_showTrails = false;
var g_connectSuccessful = false;
var __unmatched_109 = 0;
var __unmatched_110 = null;
var g_zoom = 1;
var qkeyDown = 1;
var g_playerCellDestroyed = false;
var __unmatched_114 = 0;
var __unmatched_115 = true;
var __unmatched_116 = {};
(function() {
var cached = window.location.search;
if ('?' == cached.charAt(0)) {
cached = cached.slice(1);
}
for (var cached = cached.split('&'), i = 0; i < cached.length; i++) {
var parts = cached[i].split('=');
__unmatched_116[parts[0]] = parts[1];
}
}());
var canvas = new Image();
canvas.src = 'img/background.png';
var g_touchCapable = 'ontouchstart' in window && /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(window.navigator.userAgent);
var g_splitImage = new Image();
g_splitImage.src = 'img/split.png';
var canvasTest = document.createElement('canvas');
if ('undefined' == typeof console || 'undefined' == typeof DataView || 'undefined' == typeof WebSocket || null == canvasTest || null == canvasTest.getContext || null == window.localStorage) {
alert('You browser does not support this game, we recommend you to use Firefox to play this');
} else {
var g_regionLabels = null;
window.setNick = function(__unmatched_314) {
if (window.ga) {
window.ga('send', 'event', 'Nick', __unmatched_314.toLowerCase());
}
HideOverlay();
g_nick = __unmatched_314;
SendNick();
g_maxScore = 0;
};
window.setRegion = SetRegion;
var __unmatched_122 = true;
window.setSkins = function(val) {
g_showSkins = val;
};
window.setNames = function(val) {
g_showNames = val;
};
window.setDarkTheme = function(val) {
g_showMass = val;
};
window.setColors = function(val) {
g_noColors = val;
};
window.setShowMass = function(val) {
g_darkTheme = val;
};
window.spectate = function() {
g_nick = null;
SendCmd(1);
HideOverlay();
};
window.setGameMode = function(__unmatched_320) {
if (__unmatched_320 != __unmatched_97) {
if (':party' == __unmatched_97) {
$('#helloContainer').attr('data-party-state', '0');
}
n(__unmatched_320);
if (':party' != __unmatched_320) {
Start();
}
}
};
window.setAcid = function(val) {
g_showTrails = val;
};
if (null != window.localStorage) {
if (null == window.localStorage.AB9) {
window.localStorage.AB9 = 0 + ~~(100 * Math.random());
}
g_ABGroup = +window.localStorage.AB9;
window.ABGroup = g_ABGroup;
}
$.get(__unmatched_54 + '//gc.agar.io', function(code) {
var __unmatched_323 = code.split(' ');
code = __unmatched_323[0];
__unmatched_323 = __unmatched_323[1] || '';
if (-1 == ['UA'].indexOf(code)) {
g_skinNamesA.push('ussr');
}
if (g_regionsByCC.hasOwnProperty(code)) {
if ('string' == typeof g_regionsByCC[code]) {
if (!g_region) {
SetRegion(g_regionsByCC[code]);
} else if (g_regionsByCC[code].hasOwnProperty(__unmatched_323)) {
if (!g_region) {
SetRegion(g_regionsByCC[code][__unmatched_323]);
}
}
}
}
}, 'text');
var g_canRefreshAds = true;
var g_refreshAdsCooldown = 0;
var g_regionsByCC = {
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: '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'
};
var __unmatched_126 = null;
window.connect = Connect;
var g_retryTimeout = 500;
var __unmatched_128 = null;
var __unmatched_129 = 0;
var g_lastMoveY = -1;
var g_lastMoveX = -1;
window.refreshPlayerInfo = function() {
SendCmd(253);
};
var g_leaderboardCanvas = null;
var g_pointNumScale = 1;
var g_cachedScore = null;
var __unmatched_135 = function() {
var sizeRatio = Date.now();
var maxItems = 1000 / 60;
return function() {
window.requestAnimationFrame(__unmatched_135);
var x = Date.now();
var step = x - sizeRatio;
if (step > maxItems) {
sizeRatio = x - step % maxItems;
if (!IsConnected() || 240 > Date.now() - __unmatched_109) {
GetScore();
} else {
console.warn('Skipping draw');
}
__unmatched_143();
}
};
}();
var g_skinCache = {};
var g_skinNamesA = 'poland;usa;china;russia;canada;australia;spain;brazil;germany;ukraine;france;sweden;chaplin;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;putin;merkel;tsipras;obama;kim jong-un;dilma;hollande;berlusconi;cameron;clinton;hillary;venezuela;blatter;chavez;cuba;fidel;merkel;palin;queen;boris;bush;trump'.split(';');
var __unmatched_138 = '8;nasa;putin;merkel;tsipras;obama;kim jong-un;dilma;hollande;berlusconi;cameron;clinton;hillary;blatter;chavez;fidel;merkel;palin;queen;boris;bush;trump'.split(';');
var node = {};
Node.prototype = {
P: null,
x: 0,
y: 0,
g: 0,
b: 0
};
Cell.prototype = {
id: 0,
a: null,
name: null,
k: null,
I: null,
x: 0,
y: 0,
size: 0,
o: 0,
p: 0,
n: 0,
C: 0,
D: 0,
m: 0,
T: 0,
K: 0,
W: 0,
A: false,
f: false,
j: false,
L: true,
S: 0,
V: null,
R: function() {
var i;
for (i = 0; i < g_cells.length; i++) {
if (g_cells[i] == this) {
g_cells.splice(i, 1);
break;
}
}
delete g_cellsById[this.id];
i = g_playerCells.indexOf(this);
if (-1 != i) {
__unmatched_90 = true;
g_playerCells.splice(i, 1);
}
i = g_playerCellIds.indexOf(this.id);
if (-1 != i) {
g_playerCellIds.splice(i, 1);
}
this.A = true;
if (0 < this.S) {
g_destroyedCells.push(this);
}
},
i: function() {
return Math.max(~~(0.3 * this.size), 24);
},
t: function(val) {
if (this.name = val) {
if (null == this.k) {
this.k = new CachedCanvas(this.i(), '#FFFFFF', true, '#000000');
} else {
this.k.G(this.i());
}
this.k.u(this.name);
}
},
Q: function() {
for (var num = this.B(); this.a.length > num;) {
var i = ~~(Math.random() * this.a.length);
this.a.splice(i, 1);
}
for (0 == this.a.length && 0 < num && this.a.push(new Node(this, this.x, this.y, this.size, Math.random() - 0.5)); this.a.length < num;) {
i = ~~(Math.random() * this.a.length);
i = this.a[i];
this.a.push(new Node(this, i.x, i.y, i.g, i.b));
}
},
B: function() {
var num = 10;
if (20 > this.size) {
num = 0;
}
if (this.f) {
num = 30;
}
var size = this.size;
if (!this.f) {
size *= g_scale;
}
size *= g_pointNumScale;
if (this.T & 32) {
size *= 0.25;
}
return ~~Math.max(size, num);
},
da: function() {
this.Q();
for (var cell = this.a, num = cell.length, i = 0; i < num; ++i) {
var prevAcc = cell[(i - 1 + num) % num].b;
var nextAcc = cell[(i + 1) % num].b;
cell[i].b += (Math.random() - 0.5) * (this.j ? 3 : 1);
cell[i].b *= 0.7;
if (10 < cell[i].b) {
cell[i].b = 10;
}
if (-10 > cell[i].b) {
cell[i].b = -10;
}
cell[i].b = (prevAcc + nextAcc + 8 * cell[i].b) / 10;
}
for (var thisCell = this, roll = this.f ? 0 : (this.id / 1000 + g_time / 10000) % (2 * Math.PI), i = 0; i < num; ++i) {
var size = cell[i].g;
var prevAcc = cell[(i - 1 + num) % num].g;
var nextAcc = cell[(i + 1) % num].g;
if (15 < this.size && null != g_pointTree && 20 < this.size * g_scale && 0 < this.id) {
var reduce = false;
var x = cell[i].x;
var y = cell[i].y;
g_pointTree.ea(x - 5, y - 5, 10, 10, function(rect) {
if (rect.P != thisCell && 25 > (x - rect.x) * (x - rect.x) + (y - rect.y) * (y - rect.y)) {
reduce = true;
}
});
if (!reduce && (cell[i].x < g_minX || cell[i].y < g_minY || cell[i].x > g_maxX || cell[i].y > g_maxY)) {
reduce = true;
}
if (reduce) {
if (0 < cell[i].b) {
cell[i].b = 0;
}
cell[i].b -= 1;
}
}
size += cell[i].b;
if (0 > size) {
size = 0;
}
size = this.j ? (19 * size + this.size) / 20 : (12 * size + this.size) / 13;
cell[i].g = (prevAcc + nextAcc + 8 * size) / 10;
prevAcc = 2 * Math.PI / num;
nextAcc = this.a[i].g;
if (this.f && 0 == i % 2) {
nextAcc += 5;
}
cell[i].x = this.x + Math.cos(prevAcc * i + roll) * nextAcc;
cell[i].y = this.y + Math.sin(prevAcc * i + roll) * nextAcc;
}
},
J: function() {
if (0 >= this.id) {
return 1;
}
var posRatio;
posRatio = (g_time - this.K) / 120;
posRatio = 0 > posRatio ? 0 : 1 < posRatio ? 1 : posRatio;
var sizeRatio = 0 > posRatio ? 0 : 1 < posRatio ? 1 : posRatio;
this.i();
if (this.A && 1 <= sizeRatio) {
var i = g_destroyedCells.indexOf(this);
if (-1 != i) {
g_destroyedCells.splice(i, 1);
}
}
this.x = posRatio * (this.C - this.o) + this.o;
this.y = posRatio * (this.D - this.p) + this.p;
this.size = sizeRatio * (this.m - this.n) + this.n;
return sizeRatio;
},
H: function() {
return 0 >= this.id ? true : this.x + this.size + 40 < g_viewX - g_ready / 2 / g_scale || this.y + this.size + 40 < g_viewY - noClip / 2 / g_scale || this.x - this.size - 40 > g_viewX + g_ready / 2 / g_scale || this.y - this.size - 40 > g_viewY + noClip / 2 / g_scale ? false : true;
},
s: function(context) {
if (this.H()) {
++this.S;
var isSimpleDrawing = 0 < this.id && !this.f && !this.j && 0.4 > g_scale;
if (5 > this.B() && 0 < this.id) {
isSimpleDrawing = true;
}
if (this.L && !isSimpleDrawing) {
for (var text = 0; text < this.a.length; text++) {
this.a[text].g = this.size;
}
}
this.L = isSimpleDrawing;
context.save();
this.W = g_time;
text = this.J();
if (this.A) {
context.globalAlpha *= 1 - text;
}
context.lineWidth = 10;
context.lineCap = 'round';
context.lineJoin = this.f ? 'miter' : 'round';
if (g_noColors) {
context.fillStyle = '#FFFFFF';
context.strokeStyle = '#AAAAAA';
} else {
context.fillStyle = this.color;
context.strokeStyle = this.color;
}
if (isSimpleDrawing) {
context.beginPath();
context.arc(this.x, this.y, this.size + 5, 0, 2 * Math.PI, false);
} else {
this.da();
context.beginPath();
var num = this.B();
context.moveTo(this.a[0].x, this.a[0].y);
for (text = 1; text <= num; ++text) {
var skin = text % num;
context.lineTo(this.a[skin].x, this.a[skin].y);
}
}
context.closePath();
text = this.name.toLowerCase();
if (!this.j && g_showSkins && ':teams' != __unmatched_97) {
num = this.V;
if (null == num) {
num = null;
} else if (':' == num[0]) {
if (!node.hasOwnProperty(num)) {
node[num] = new Image();
node[num].src = num.slice(1);
}
num = 0 != node[num].width && node[num].complete ? node[num] : null;
} else {
num = null;
}
if (!num) {
if (-1 != g_skinNamesA.indexOf(text)) {
if (!g_skinCache.hasOwnProperty(text)) {
g_skinCache[text] = new Image();
g_skinCache[text].src = 'skins/' + text + '.png';
}
num = 0 != g_skinCache[text].width && g_skinCache[text].complete ? g_skinCache[text] : null;
} else {
num = null;
}
}
} else {
num = null;
}
skin = num;
if (!isSimpleDrawing) {
context.stroke();
}
context.fill();
if (null != skin) {
context.save();
context.clip();
context.drawImage(skin, this.x - this.size, this.y - this.size, 2 * this.size, 2 * this.size);
context.restore();
}
if ((g_noColors || 15 < this.size) && !isSimpleDrawing) {
context.strokeStyle = '#000000';
context.globalAlpha *= 0.1;
context.stroke();
}
context.globalAlpha = 1;
num = -1 != g_playerCells.indexOf(this);
isSimpleDrawing = ~~this.y;
if (0 != this.id && (g_showNames || num) && this.name && this.k && (null == skin || -1 == __unmatched_138.indexOf(text))) {
skin = this.k;
skin.u(this.name);
skin.G(this.i());
text = 0 >= this.id ? 1 : Math.ceil(10 * g_scale) / 10;
skin.U(text);
var skin = skin.F();
var g_width = ~~(skin.width / text);
var g_height = ~~(skin.height / text);
context.drawImage(skin, ~~this.x - ~~(g_width / 2), isSimpleDrawing - ~~(g_height / 2), g_width, g_height);
isSimpleDrawing += skin.height / 2 / text + 4;
}
if (40 < this.size) {
if (null == this.I) {
this.I = new CachedCanvas(this.i() / 2, '#FFFFFF', true, '#000000');
}
num = this.I;
num.G(this.i() / 1.2);
num.u(~~(this.size * this.size / 100));
text = Math.ceil(10 * g_scale) / 10;
num.U(text);
skin = num.F();
g_width = ~~(skin.width / text);
g_height = ~~(skin.height / text);
context.drawImage(skin, ~~this.x - ~~(g_width / 2), isSimpleDrawing - ~~(g_height / 2), g_width, g_height);
}
context.restore();
}
}
};
CachedCanvas.prototype = {
w: '',
M: '#000000',
O: false,
r: '#000000',
q: 16,
l: null,
N: null,
h: false,
v: 1,
G: function(val) {
if (this.q != val) {
this.q = val;
this.h = true;
}
},
U: function(val) {
if (this.v != val) {
this.v = val;
this.h = true;
}
},
setStrokeColor: function(val) {
if (this.r != val) {
this.r = val;
this.h = true;
}
},
u: function(val) {
if (val != this.w) {
this.w = val;
this.h = true;
}
},
F: function() {
if (null == this.l) {
this.l = document.createElement('canvas');
this.N = this.l.getContext('2d');
}
if (this.h) {
this.h = false;
var items = this.l;
var context = this.N;
var value = this.w;
var scale = this.v;
var size = this.q;
var font = size + 'px Ubuntu';
context.font = font;
var extra = ~~(0.2 * size);
items.width = (context.measureText(value).width + 6) * scale;
items.height = (size + extra) * scale;
context.font = font;
context.scale(scale, scale);
context.globalAlpha = 1;
context.lineWidth = 3;
context.strokeStyle = this.r;
context.fillStyle = this.M;
if (this.O) {
context.strokeText(value, 3, size - extra / 2);
}
context.fillText(value, 3, size - extra / 2);
}
return this.l;
}
};
if (!Date.now) {
Date.now = function() {
return new Date().getTime();
};
}
(function() {
for (var g_skinNamesB = [
'ms',
'moz',
'webkit',
'o'
], i = 0; i < g_skinNamesB.length && !window.requestAnimationFrame; ++i) {
window.requestAnimationFrame = window[g_skinNamesB[i] + 'RequestAnimationFrame'];
window.cancelAnimationFrame = window[g_skinNamesB[i] + 'CancelAnimationFrame'] || window[g_skinNamesB[i] + 'CancelRequestAnimationFrame'];
}
if (!window.requestAnimationFrame) {
window.requestAnimationFrame = function(rect) {
return setTimeout(rect, 1000 / 60);
};
window.cancelAnimationFrame = function(item) {
clearTimeout(item);
};
}
}());
var QTreeFactory = {
X: function(item) {
function __unmatched_372(val) {
if (val < __unmatched_374) {
val = __unmatched_374;
}
if (val > __unmatched_376) {
val = __unmatched_376;
}
return ~~((val - __unmatched_374) / 32);
}
function __unmatched_373(__unmatched_382) {
if (__unmatched_382 < __unmatched_375) {
__unmatched_382 = __unmatched_375;
}
if (__unmatched_382 > __unmatched_377) {
__unmatched_382 = __unmatched_377;
}
return ~~((__unmatched_382 - __unmatched_375) / 32);
}
var __unmatched_374 = item.ba;
var __unmatched_375 = item.ca;
var __unmatched_376 = item.Z;
var __unmatched_377 = item.$;
var depth = ~~((__unmatched_376 - __unmatched_374) / 32) + 1;
var maxDepth = ~~((__unmatched_377 - __unmatched_375) / 32) + 1;
var point = Array(depth * maxDepth);
return {
Y: function(__unmatched_383) {
var __unmatched_384 = __unmatched_372(__unmatched_383.x) + __unmatched_373(__unmatched_383.y) * depth;
if (null == point[__unmatched_384]) {
point[__unmatched_384] = __unmatched_383;
} else if (Array.isArray(point[__unmatched_384])) {
point[__unmatched_384].push(__unmatched_383);
} else {
point[__unmatched_384] = [
point[__unmatched_384],
__unmatched_383
];
}
},
ea: function(__unmatched_385, __unmatched_386, val, __unmatched_388, callback) {
var __unmatched_390 = __unmatched_372(__unmatched_385);
var __unmatched_391 = __unmatched_373(__unmatched_386);
__unmatched_385 = __unmatched_372(__unmatched_385 + val);
__unmatched_386 = __unmatched_373(__unmatched_386 + __unmatched_388);
if (0 > __unmatched_390 || __unmatched_390 >= depth || 0 > __unmatched_391 || __unmatched_391 >= maxDepth) {
debugger;
}
for (; __unmatched_391 <= __unmatched_386; ++__unmatched_391) {
for (__unmatched_388 = __unmatched_390; __unmatched_388 <= __unmatched_385; ++__unmatched_388) {
if (val = point[__unmatched_388 + __unmatched_391 * depth], null != val) {
if (Array.isArray(val)) {
for (var i = 0; i < val.length; i++) {
callback(val[i]);
}
} else {
callback(val);
}
}
}
}
}
};
}
};
var __unmatched_141 = function() {
var __unmatched_393 = new Cell(0, 0, 0, 32, '#ED1C24', '');
var __unmatched_394 = document.createElement('canvas');
__unmatched_394.width = 32;
__unmatched_394.height = 32;
var rect = __unmatched_394.getContext('2d');
return function() {
if (0 < g_playerCells.length) {
__unmatched_393.color = g_playerCells[0].color;
__unmatched_393.t(g_playerCells[0].name);
}
rect.clearRect(0, 0, 32, 32);
rect.save();
rect.translate(16, 16);
rect.scale(0.4, 0.4);
__unmatched_393.s(rect);
rect.restore();
var __unmatched_396 = document.getElementById('favicon');
var __unmatched_397 = __unmatched_396.cloneNode(true);
__unmatched_397.setAttribute('href', __unmatched_394.toDataURL('image/png'));
__unmatched_396.parentNode.replaceChild(__unmatched_397, __unmatched_396);
};
}();
$(function() {
__unmatched_141();
});
var i_ = 'loginCache3';
$(function() {
if (+window.localStorage.wannaLogin) {
if (window.localStorage[i_]) {
__unmatched_45(window.localStorage[i_]);
}
if (window.localStorage.fbPictureCache) {
$('.agario-profile-picture').attr('src', window.localStorage.fbPictureCache);
}
}
});
window.facebookLogin = function() {
window.localStorage.wannaLogin = 1;
};
window.fbAsyncInit = function() {
function __unmatched_398() {
window.localStorage.wannaLogin = 1;
if (null == window.FB) {
alert('You seem to have something blocking Facebook on your browser, please check for any extensions');
} else {
window.FB.login(function(callback) {
UpdateScale(callback);
}, {
scope: 'public_profile, email'
});
}
}
window.FB.init({
appId: '677505792353827',
cookie: true,
xfbml: true,
status: true,
version: 'v2.2'
});
window.FB.Event.subscribe('auth.statusChange', function(__unmatched_400) {
if (+window.localStorage.wannaLogin) {
if ('connected' == __unmatched_400.status) {
UpdateScale(__unmatched_400);
} else {
__unmatched_398();
}
}
});
window.facebookLogin = __unmatched_398;
};
window.logout = function() {
__unmatched_110 = null;
$('#helloContainer').attr('data-logged-in', '0');
$('#helloContainer').attr('data-has-account-data', '0');
delete window.localStorage.wannaLogin;
delete window.localStorage[i_];
delete window.localStorage.fbPictureCache;
Start();
};
var __unmatched_143 = function() {
function ParseString(width, top, callback, height, left) {
var __unmatched_415 = top.getContext('2d');
var __unmatched_416 = top.width;
top = top.height;
width.color = left;
width.t(callback);
width.size = height;
__unmatched_415.save();
__unmatched_415.translate(__unmatched_416 / 2, top / 2);
width.s(__unmatched_415);
__unmatched_415.restore();
}
for (var __unmatched_402 = new Cell(-1, 0, 0, 32, '#5bc0de', ''), __unmatched_403 = new Cell(-1, 0, 0, 32, '#5bc0de', ''), __unmatched_404 = '#0791ff #5a07ff #ff07fe #ffa507 #ff0774 #077fff #3aff07 #ff07ed #07a8ff #ff076e #3fff07 #ff0734 #07ff20 #ff07a2 #ff8207 #07ff0e'.split(' '), g_skinNamesC = [], j = 0; j < __unmatched_404.length; ++j) {
var sub = j / __unmatched_404.length * 12;
var __unmatched_408 = 30 * Math.sqrt(j / __unmatched_404.length);
g_skinNamesC.push(new Cell(-1, Math.cos(sub) * __unmatched_408, Math.sin(sub) * __unmatched_408, 10, __unmatched_404[j], ''));
}
__unmatched_43(g_skinNamesC);
var data = document.createElement('canvas');
data.getContext('2d');
data.width = data.height = 70;
ParseString(__unmatched_403, data, '', 26, '#ebc0de');
return function() {
$('.cell-spinner').filter(':visible').each(function() {
var __unmatched_417 = $(this);
var g = Date.now();
var width = this.width;
var __unmatched_420 = this.height;
var item = this.getContext('2d');
item.clearRect(0, 0, width, __unmatched_420);
item.save();
item.translate(width / 2, __unmatched_420 / 2);
for (var g_numFrames = 0; 10 > g_numFrames; ++g_numFrames) {
item.drawImage(data, (0.1 * g + 80 * g_numFrames) % (width + 140) - width / 2 - 70 - 35, __unmatched_420 / 2 * Math.sin((0.001 * g + g_numFrames) % Math.PI * 2) - 35, 70, 70);
}
item.restore();
if (__unmatched_417 = __unmatched_417.attr('data-itr')) {
__unmatched_417 = Render(__unmatched_417);
}
ParseString(__unmatched_402, this, __unmatched_417 || '', +$(this).attr('data-size'), '#5bc0de');
});
$('#statsPellets').filter(':visible').each(function() {
$(this);
var height = this.width;
var __unmatched_424 = this.height;
this.getContext('2d').clearRect(0, 0, height, __unmatched_424);
for (height = 0; height < g_skinNamesC.length; height++) {
ParseString(g_skinNamesC[height], this, '', g_skinNamesC[height].size, g_skinNamesC[height].color);
}
});
};
}();
window.createParty = function() {
n(':party');
__unmatched_126 = function(rect) {
__unmatched_49('/#' + window.encodeURIComponent(rect));
$('.partyToken').val('agar.io/#' + window.encodeURIComponent(rect));
$('#helloContainer').attr('data-party-state', '1');
};
Start();
};
window.joinParty = RenderLoop;
window.cancelParty = function() {
__unmatched_49('/');
$('#helloContainer').attr('data-party-state', '0');
n('');
Start();
};
var points = [];
var __unmatched_145 = 0;
var __unmatched_146 = '#000000';
var __unmatched_147 = false;
var __unmatched_148 = false;
var __unmatched_149 = 0;
var __unmatched_150 = 0;
var __unmatched_151 = 0;
var __unmatched_152 = 0;
var g_mode = 0;
var __unmatched_154 = true;
setInterval(function() {
if (__unmatched_148) {
points.push(__unmatched_37() / 100);
}
}, 1000 / 60);
setInterval(function() {
var start = __unmatched_52();
if (0 != start) {
++__unmatched_151;
if (0 == g_mode) {
g_mode = start;
}
g_mode = Math.min(g_mode, start);
}
}, 1000);
window.closeStats = function() {
__unmatched_147 = false;
$('#stats').hide();
__unmatched_14(window.ab);
__unmatched_10(0);
};
window.setSkipStats = function(__unmatched_427) {
__unmatched_154 = !__unmatched_427;
};
$(function() {
$(Init);
});
}
}
}
}(unsafeWindow, unsafeWindow.jQuery));