// ==UserScript==
// @name PODEROSOITALIAV2
// @namespace http://tampermonkey.net/
// @version 3.0
// @description USEM COM SABEDORIA
// @author PODEROSOITALIA
// @match http://bloble.io/*
// @grant none
// @icon
// ==/UserScript==
window.renderPlayer = function(a, d, c, b, g) {b.save();if (a.skin && 0 < a.skin && a.skin <= playerSkins && !skinSprites[a.skin]) {var e = new Image;e.onload = function() {this.readyToDraw = !0;this.onload = null;g == currentSkin && changeSkin(0);};e.src = ".././img/skins/skin_" + (a.skin - 1) + ".png";skinSprites[a.skin] = e;};a.skin && skinSprites[a.skin] && skinSprites[a.skin].readyToDraw ? (e = a.size - b.lineWidth / 4, b.lineWidth /= 2, renderCircle(d, c, a.size, b, !1, !0)) : g || (b.fillStyle = "rgba(255, 255, 255, 0)", renderCircle(d, c, a.size, b)); b.restore();};
window.ntx = function(dir, dst, uPath) {window.socket.emit("1", dir, dst, uPath)}
window.resolution = 1;
window.upgrInputsToIndex = {};
window.cameraSpd = 5.0;
window.joinEnabled = true;
window.cid = window.UTILS.getUniqueID();localStorage.setItem("cid",window.cid);
window.outlineWidth = 6;
window.darkColor = "#2125ff70";
window.playerColors = "#f9ff6099 #ff606099 #82ff6099 #607eff99 #60eaff99 #ff60ee99 #e360ff99 #ffaf6099 #a3ff6099 #ff609c99 #60ff8299 #cc60ff99 #c6595999 #404b7f99 #f2d95799 #c5525299 #c5525299 #498e5699 #c4515199 #c3545499 #c8575799 #c8595999 #5b74b699 #cd686899 #5c81bd99 #5bb14699 #d8c96399 #c5525299 #404b7f99 #c5525299 #c5525299 #c5525299 #c5525299 #404b7f99 #498e5699 #498e5699 #dbd24599 #ca514e99 #43427e99".split(" ");
window.backgroundColor = "#000";
window.indicatorColor = "#2125ff60";
window.redColor = "#fff";
window.outerColor = "#0a0a0a";
window.lanePad = 10;
window.playerSkins = 0;
window.SkinBots = 0;
window.playerBorderRot = undefined;
/*#2 COMANDOS DE CHAT*/
enterGame = function() {
socket && unitList && (showMainMenuText(randomLoadingTexts[UTILS.randInt(0, randomLoadingTexts.length - 1)]),
hasStorage && localStorage.setItem("lstnmdbl", userNameInput.value),
mainCanvas.focus(),
grecaptcha.execute("6Ldh8e0UAAAAAFOKBv25wQ87F3EKvBzyasSbqxCE").then(function(a) {
setTimeout(function() {frase();}, 1000);
socket.emit("spawn", {
name: ''+userNameInput.value,
skin: 26
}, a)}))}
function frase(){
socket.emit("ch", "")}
//===================Fim===================//
//base com casas e 9 gens//
addEventListener('keydown', a => {
a = a.keyCode;
function filterUnitsUp(unitType, uPath, typeUp) {
const myUnits = window.units.filter(unit => unit.owner == window.player.sid && unit.type == unitType && unit.uPath == uPath);
myUnits.forEach(unitID => {
socket.emit("4", unitID.id, typeUp);
});
}
function filterUnitsSell(unitType, uPath) {
let Sell = [];
const myUnits = window.units.filter(unit => unit.owner == window.player.sid && unit.type == unitType && unit.uPath == uPath);
myUnits.forEach(unitID => {
Sell.push(unitID.id);
socket.emit("3", Sell);
});
}
if (a == 105){
setTimeout(function(){ gens()},1000);setTimeout(function(){ gens()},10000);setTimeout(function(){ gens()},20000);setTimeout(function(){ gens()},30000);setTimeout(function(){ gens()},50000);setTimeout(function(){ walls();},60000);setTimeout(function(){ walls()},63000);setTimeout(function(){ micro()},80000);setTimeout(function(){ micro()},95000);setTimeout(function(){ upgens()},100000);setTimeout(function(){ upgens();},130000);setTimeout(function(){ upgens();},155000);setTimeout(function(){ upgens()},160000);setTimeout(function(){ command()},170000);setTimeout(function(){ command()},180000);setTimeout(function(){ greatleadership()},185000);setTimeout(function(){ armory()},190000);setTimeout(function(){ barracks1()},195000);setTimeout(function(){ siege()},230000);setTimeout(function(){ siege()},234000);setTimeout(function(){ barracks2()},235000);setTimeout(function(){ barracks2()},240000);setTimeout(function(){ upbarracks()},250000);setTimeout(function(){ upbarracks()},255000);setTimeout(function(){ upbarracks()},260000);setTimeout(function(){ upbarracks()},270000);setTimeout(function(){ upbarracks()},280000);setTimeout(function(){ sellgens()},310000);setTimeout(function(){ base()},315000);setTimeout(function(){ sellsiege()},340000);setTimeout(function(){ centralizar()},340500);setTimeout(function(){ barracks1()},341000);setTimeout(function(){ upbarracks()},342000);setTimeout(function(){ upbarracks()},345000);setTimeout(function(){ upbarracks()},350000);setTimeout(function(){ centralizar2()},362000);setTimeout(function(){ centralizar3()},363000);setTimeout(function(){ centralizar3()},364000);setTimeout(function(){ upgens2()},365000);setTimeout(function(){ upantitank()},368000);
function gens(){
socket.emit("1", 4.73, 245, 3); socket.emit("1", 5.0025, 245, 3); socket.emit("1", 5.275, 245, 3); socket.emit("1", 5.5475, 245, 3); socket.emit("1", 5.82, 245, 3); socket.emit("1", 6.0925, 245, 3); socket.emit("1", 6.365, 245, 3); socket.emit("1", 6.6375, 245, 3); socket.emit("1", 6.91, 245, 3); socket.emit("1", 7.1825, 245, 3); socket.emit("1", 7.455, 245, 3); socket.emit("1", 7.7275, 245, 3); socket.emit("1", 8.0025, 245, 3); socket.emit("1", 8.275, 245, 3); socket.emit("1", 8.5475, 245, 3); socket.emit("1", 8.82, 245, 3); socket.emit("1", 9.0925, 245, 3); socket.emit("1", 9.3675, 245, 3); socket.emit("1", 9.64, 245, 3); socket.emit("1", 9.9125, 245, 3); socket.emit("1", 10.1875, 245, 3); socket.emit("1", 10.4625, 245, 3); socket.emit("1", 10.7375, 245, 3); socket.emit("1", 5.64, 180, 3); socket.emit("1", 5.999, 180, 3); socket.emit("1", 6.51, 185, 3); socket.emit("1", 7.05, 185, 3); socket.emit("1", 7.6, 185, 3); socket.emit("1", 8.15, 185, 3); socket.emit("1", 8.675, 185, 3); socket.emit("1", 9.225, 185, 3); socket.emit("1", 9.78, 185, 3); socket.emit("1", 10.325, 185, 3); socket.emit("1", 5.36, 130, 3); socket.emit("1", 6.275, 130, 3); socket.emit("1", 6.775, 130, 3); socket.emit("1", 7.3, 130, 3); socket.emit("1", 7.85, 130, 3); socket.emit("1", 8.4, 130, 3); socket.emit("1", 8.925, 130, 3); socket.emit("1", 9.5, 130, 3); socket.emit("1", 10.05, 130, 3);socket.emit("1",-1.55, 140, 7)
}
function walls(){
socket.emit("1",1.57, 306, 1);socket.emit("1",1.37, 306, 1);socket.emit("1",1.77, 306, 1);socket.emit("1",2.19, 306, 1);socket.emit("1",0.95, 306.01, 1);socket.emit("1",0.75, 306, 1);socket.emit("1",0.55, 306, 1);socket.emit("1",2.39, 306, 1);socket.emit("1",2.59, 306, 1);socket.emit("1",0.13, 306, 1);socket.emit("1",3.01, 306, 1);socket.emit("1",-3.07, 306, 1);socket.emit("1",-2.87, 306, 1);socket.emit("1",-2.67, 306, 1);socket.emit("1",-2.27, 306, 1);socket.emit("1",-2.07, 306, 1);socket.emit("1",-2.47, 306, 1);socket.emit("1",-0.07, 306, 1);socket.emit("1",-0.27, 306, 1);socket.emit("1",-0.47, 306, 1);socket.emit("1",-1.87, 306, 1);socket.emit("1",-1.67, 306, 1);socket.emit("1",-1.47, 306, 1);socket.emit("1",-1.27, 306, 1);socket.emit("1",-1.07, 306, 1);socket.emit("1",-0.87, 306, 1);socket.emit("1",-0.67, 306, 1);
}
function base(){
socket.emit("1", -2.54, 130, 4);socket.emit("1",-1.55, 140, 7);socket.emit("1",1.57, 306, 1);socket.emit("1",1.37, 306, 1);socket.emit("1",1.77, 306, 1);socket.emit("1",2.19, 306, 1);socket.emit("1",0.95, 306.01, 1);socket.emit("1",0.75, 306, 1);socket.emit("1",0.55, 306, 1);socket.emit("1",2.39, 306, 1);socket.emit("1",2.59, 306, 1);socket.emit("1",0.13, 306, 1);socket.emit("1",3.01, 306, 1);socket.emit("1",-3.07, 306, 1);socket.emit("1",-2.87, 306, 1);socket.emit("1",-2.67, 306, 1);socket.emit("1",-2.27, 306, 1);socket.emit("1",-2.07, 306, 1);socket.emit("1",-2.47, 306, 1);socket.emit("1",-0.07, 306, 1);socket.emit("1",-0.27, 306, 1);socket.emit("1",-0.47, 306, 1);socket.emit("1",-1.87, 306, 1);socket.emit("1",-1.67, 306, 1);socket.emit("1",-1.47, 306, 1);socket.emit("1",-1.27, 306, 1);socket.emit("1",-1.07, 306, 1);socket.emit("1",-0.87, 306, 1);socket.emit("1",-0.67, 306, 1);socket.emit("1",1.16, 310, 8);socket.emit("1",1.98, 310, 8);socket.emit("1",2.8, 310, 8);socket.emit("1",-1.03, 130, 4);socket.emit("1",3.61, 245, 4);socket.emit("1",3.86, 245.01, 4);socket.emit("1",-2.17, 245.85, 4);socket.emit("1",3.08, 184, 4);socket.emit("1",3.11, 245, 4);socket.emit("1",3.36, 245, 4);socket.emit("1",4.36, 245, 4);socket.emit("1",4.86, 245, 4);socket.emit("1",4.61, 245, 4);socket.emit("1",4.39, 185, 4);socket.emit("1",5.11, 245, 4);socket.emit("1",5.36, 244.99, 4);socket.emit("1",-1.21, 184.75, 4);socket.emit("1",6.11, 245.01, 4);socket.emit("1",6.36, 245, 4);socket.emit("1",4.21, 130, 4);socket.emit("1",4.06, 186, 4);socket.emit("1",3.74, 190, 4);socket.emit("1",3.27, 130, 4);socket.emit("1",3.42, 186, 4);socket.emit("1",6.05, 186, 4);socket.emit("1",0.1, 184.35, 4);socket.emit("1",6.19, 130, 4);socket.emit("1",5.72, 130, 4);socket.emit("1",-0.88, 185.64, 4);socket.emit("1",5.73, 190, 4);socket.emit("1",5.86, 245, 4);socket.emit("1",5.61, 245, 4);socket.emit("1",6.66, 130, 4);socket.emit("1",2.79, 130, 4);socket.emit("1",2.75, 190, 4);socket.emit("1",2.86, 245.85, 4);socket.emit("1",6.61, 244.99, 4);socket.emit("1",6.72, 189.5, 4);socket.emit("1",3.74, 130, 4);socket.emit("1",0.34, 310, 8);socket.emit("1",2.43, 188, 4);socket.emit("1",2.3, 243.85, 5);socket.emit("1",7.04, 188.5, 4);socket.emit("1",0.89, 243.85, 5);socket.emit("1",0.6, 243.85, 5);socket.emit("1",2.59, 243.85, 5);socket.emit("1",2.04, 245.85, 4);socket.emit("1",1.15, 245.85, 4);socket.emit("1",1.78, 243.85, 5);socket.emit("1",1.41, 243.85, 5);socket.emit("1",2.09, 183.74, 3);socket.emit("1",1.1, 183.82, 3);socket.emit("1",2.32, 130, 4);socket.emit("1",1.84, 132, 3);socket.emit("1",1.35, 132, 3);socket.emit("1",1.59, 188.08, 3);socket.emit("1",0.86, 130, 4);
}
function barracks1(){
socket.emit("1",0.34, 310, 8)
}
function barracks2(){
socket.emit("1",1.16, 310, 8);socket.emit("1",1.98, 310, 8);socket.emit("1",2.8, 310, 8)
}
function greatleadership(){
filterUnitsUp(1, 9, 0)
}
function upbarracks(){
filterUnitsUp(2, 8, 0)
}
function micro(){
filterUnitsUp(3, 1, 1)
}
function upgens(){
filterUnitsUp(0, 3, 0)
}
function upgens2(){
filterUnitsUp(0, 3, 0)
}
function upantitank(){
filterUnitsUp(0, 5, 1)
}
function upgenstank(){
filterUnitsUp(0, 3, 0)
}
function command(){
socket.emit("4",0,0,1)
}
function siege(){
filterUnitsUp(2, 8, 2)
}
function armory(){
filterUnitsUp(0, 7, 0)
}
function sellgens(){
filterUnitsSell(0, 3)
filterUnitsSell(0, '3,0')
}
function sellsiege(){
filterUnitsSell(2, '8,2')
}
function centralizar(){
let ty = [];
for (var b = 0; b < units.length; ++b) {
if (units[b].owner == player.sid && units[b].uPath == 11) {
ty.push(units[b].id);
}
}
socket.emit("5", (player.x)-1, (player.y)+1, ty, 0, -1);
}
function centralizar2(){
let ty = [];
for (var b = 0; b < units.length; ++b) {
if (units[b].owner == player.sid && units[b].uPath == 11) {
ty.push(units[b].id);
}
}
socket.emit("5", (player.x)+1, (player.y)-1, ty, 0, -1);
}
function centralizar3(){
let ty = [];
for (var b = 0; b < units.length; ++b) {
if (units[b].owner == player.sid && units[b].uPath == 11) {
ty.push(units[b].id);
}
}
socket.emit("5", (player.x)*1, (player.y)*1, ty, 0, -1);
}
function centralizar4(){
let ty = [];
for (var b = 0; b < units.length; ++b) {
if (units[b].owner == player.sid && units[b].uPath == 11) {
ty.push(units[b].id);
}
}
socket.emit("5", (player.x), (player.y), ty, 0, -1);
}
}
if (a == 97){//full atk
socket.emit("1", -2.54, 130, 4);socket.emit("1",-1.55, 140, 7);socket.emit("1",1.57, 306, 1);socket.emit("1",1.37, 306, 1);socket.emit("1",1.77, 306, 1);socket.emit("1",2.19, 306, 1);socket.emit("1",0.95, 306.01, 1);socket.emit("1",0.75, 306, 1);socket.emit("1",0.55, 306, 1);socket.emit("1",2.39, 306, 1);socket.emit("1",2.59, 306, 1);socket.emit("1",0.13, 306, 1);socket.emit("1",3.01, 306, 1);socket.emit("1",-3.07, 306, 1);socket.emit("1",-2.87, 306, 1);socket.emit("1",-2.67, 306, 1);socket.emit("1",-2.27, 306, 1);socket.emit("1",-2.07, 306, 1);socket.emit("1",-2.47, 306, 1);socket.emit("1",-0.07, 306, 1);socket.emit("1",-0.27, 306, 1);socket.emit("1",-0.47, 306, 1);socket.emit("1",-1.87, 306, 1);socket.emit("1",-1.67, 306, 1);socket.emit("1",-1.47, 306, 1);socket.emit("1",-1.27, 306, 1);socket.emit("1",-1.07, 306, 1);socket.emit("1",-0.87, 306, 1);socket.emit("1",-0.67, 306, 1);socket.emit("1",1.16, 310, 8);socket.emit("1",1.98, 310, 8);socket.emit("1",2.8, 310, 8);socket.emit("1",-1.03, 130, 4);socket.emit("1",3.61, 245, 4);socket.emit("1",3.86, 245.01, 4);socket.emit("1",-2.17, 245.85, 4);socket.emit("1",3.08, 184, 4);socket.emit("1",3.11, 245, 4);socket.emit("1",3.36, 245, 4);socket.emit("1",4.36, 245, 4);socket.emit("1",4.86, 245, 4);socket.emit("1",4.61, 245, 4);socket.emit("1",4.39, 185, 4);socket.emit("1",5.11, 245, 4);socket.emit("1",5.36, 244.99, 4);socket.emit("1",-1.21, 184.75, 4);socket.emit("1",6.11, 245.01, 4);socket.emit("1",6.36, 245, 4);socket.emit("1",4.21, 130, 4);socket.emit("1",4.06, 186, 4);socket.emit("1",3.74, 190, 4);socket.emit("1",3.27, 130, 4);socket.emit("1",3.42, 186, 4);socket.emit("1",6.05, 186, 4);socket.emit("1",0.1, 184.35, 4);socket.emit("1",6.19, 130, 4);socket.emit("1",5.72, 130, 4);socket.emit("1",-0.88, 185.64, 4);socket.emit("1",5.73, 190, 4);socket.emit("1",5.86, 245, 4);socket.emit("1",5.61, 245, 4);socket.emit("1",6.66, 130, 4);socket.emit("1",2.79, 130, 4);socket.emit("1",2.75, 190, 4);socket.emit("1",2.86, 245.85, 4);socket.emit("1",6.61, 244.99, 4);socket.emit("1",6.72, 189.5, 4);socket.emit("1",3.74, 130, 4);socket.emit("1",0.34, 310, 8);socket.emit("1",2.43, 188, 4);socket.emit("1",2.3, 243.85, 5);socket.emit("1",7.04, 188.5, 4);socket.emit("1",0.89, 243.85, 5);socket.emit("1",0.6, 243.85, 5);socket.emit("1",2.59, 243.85, 5);socket.emit("1",2.04, 245.85, 4);socket.emit("1",1.15, 245.85, 4);socket.emit("1",1.78, 243.85, 5);socket.emit("1",1.41, 243.85, 5);socket.emit("1",2.09, 183.74, 3);socket.emit("1",1.1, 183.82, 3);socket.emit("1",2.32, 130, 4);socket.emit("1",1.84, 132, 3);socket.emit("1",1.35, 132, 3);socket.emit("1",1.59, 188.08, 3);socket.emit("1",0.86, 130, 4);
}
})
//DEFEND//
addEventListener('keydown', a => {
a = a.keyCode;
if (a == 88){
socket.emit("1",1.57, 306, 1);socket.emit("1",1.37, 306, 1);socket.emit("1",1.77, 306, 1);socket.emit("1",2.19, 306, 1);socket.emit("1",0.95, 306.01, 1);socket.emit("1",0.75, 306, 1);socket.emit("1",0.55, 306, 1);socket.emit("1",2.39, 306, 1);socket.emit("1",2.59, 306, 1);socket.emit("1",0.13, 306, 1);socket.emit("1",3.01, 306, 1);socket.emit("1",-3.07, 306, 1);socket.emit("1",-2.87, 306, 1);socket.emit("1",-2.67, 306, 1);socket.emit("1",-2.27, 306, 1);socket.emit("1",-2.07, 306, 1);socket.emit("1",-2.47, 306, 1);socket.emit("1",-0.07, 306, 1);socket.emit("1",-0.27, 306, 1);socket.emit("1",-0.47, 306, 1);socket.emit("1",-1.87, 306, 1);socket.emit("1",-1.67, 306, 1);socket.emit("1",-1.47, 306, 1);socket.emit("1",-1.27, 306, 1);socket.emit("1",-1.07, 306, 1);socket.emit("1",-0.87, 306, 1);socket.emit("1",-0.67, 306, 1);socket.emit("1",3.11, 245, 1);socket.emit("1",3.36, 245, 1);socket.emit("1",3.08, 184, 1);socket.emit("1",3.42, 186, 1);socket.emit("1",3.27, 130, 1);socket.emit("1",8.26, 306, 1);socket.emit("1",3.61, 245, 1);socket.emit("1",3.86, 245.01, 1);socket.emit("1",4.73, 190, 1);socket.emit("1",3.74, 190, 1);socket.emit("1",5.06, 185, 1);socket.emit("1",4.06, 186, 1);socket.emit("1",4.39, 185, 1);socket.emit("1",4.73, 130, 1);socket.emit("1",5.25, 130, 1);socket.emit("1",3.74, 130, 1);socket.emit("1",4.21, 130, 1);socket.emit("1",2.8, 306, 1);socket.emit("1",1.16, 306, 1);socket.emit("1",0.35, 306, 1);socket.emit("1",2.43, 188, 1);socket.emit("1",7.13, 130, 1);socket.emit("1",7.6, 130, 1);socket.emit("1",1.85, 130, 1);socket.emit("1",2.32, 130, 1);socket.emit("1",2.79, 130, 1);socket.emit("1",8.89, 246, 1);socket.emit("1",2.86, 245, 1);socket.emit("1",2.75, 190, 1);socket.emit("1",8.14, 246.01, 1);socket.emit("1",8.39, 246, 1);socket.emit("1",8.64, 246, 1);socket.emit("1",7.37, 185, 1);socket.emit("1",7.71, 187.45, 1);socket.emit("1",8.04, 188.5, 1);socket.emit("1",8.36, 185, 1);socket.emit("1",7.64, 246, 1);socket.emit("1",7.89, 246, 1);socket.emit("1",4.11, 245, 1);socket.emit("1",4.36, 245, 1);socket.emit("1",4.61, 245, 1);socket.emit("1",4.86, 245, 1);socket.emit("1",5.11, 245, 1);socket.emit("1",5.36, 245, 1);socket.emit("1",5.61, 245, 1);socket.emit("1",5.73, 190, 1);socket.emit("1",5.4, 185, 1);socket.emit("1",5.72, 129.99, 1);socket.emit("1",6.19, 130, 1);socket.emit("1",6.66, 130, 1);socket.emit("1",5.86, 245, 1);socket.emit("1",6.11, 245, 1);socket.emit("1",6.36, 245, 1);socket.emit("1",6.61, 244.99, 1);socket.emit("1",6.05, 186, 1);socket.emit("1",6.37, 185, 1);socket.emit("1",6.86, 245.01, 1);socket.emit("1",7.14, 245, 1);socket.emit("1",7.39, 245, 1);socket.emit("1",6.72, 189.5, 1);socket.emit("1",7.04, 188.5, 1);
}
})
//gens//
addEventListener('keydown', a => {
a = a.keyCode;
if (a == 96){
socket.emit("1",1.57, 243.85, 3);socket.emit("1",2.44, 196.8, 3);socket.emit("1",2.24, 243.86, 3);socket.emit("1",-2.78, 194.68, 3);socket.emit("1",1.97, 243.85, 3);socket.emit("1",2.1, 185.59, 3);socket.emit("1",1.87, 132, 3);socket.emit("1",1.26, 132, 3);socket.emit("1",1.38, 194.13, 3);socket.emit("1",1.76, 194.06, 3);socket.emit("1",-2.44, 185.75, 3);socket.emit("1",-2.59, 243.85, 3);socket.emit("1",3.06, 132, 3);socket.emit("1",2.37, 132, 3);socket.emit("1",2.77, 180.64, 3);socket.emit("1",2.91, 243.85, 3);socket.emit("1",2.64, 243.85, 3);socket.emit("1",3.11, 196.06, 3);socket.emit("1",-2.97, 243.85, 3);socket.emit("1",-2.69, 132, 3);socket.emit("1",-2.31, 243.85, 3);socket.emit("1",0.76, 132, 3);socket.emit("1",0.36, 180.1, 3);socket.emit("1",0.03, 197.16, 3);socket.emit("1",-0.44, 132, 3);socket.emit("1",0.08, 132, 3);socket.emit("1",0.23, 243.85, 3);socket.emit("1",0.5, 243.85, 3);socket.emit("1",0.7, 196.11, 3);socket.emit("1",0.9, 243.85, 3);socket.emit("1",1.04, 186.08, 3);socket.emit("1",1.17, 243.86, 3);socket.emit("1",-0.17, 243.85, 3);socket.emit("1",-0.36, 194.93, 3);socket.emit("1",-0.7, 183.73, 3);socket.emit("1",-0.55, 243.85, 3);socket.emit("1",-0.82, 243.85, 3);socket.emit("1",1.16, 310, 8);socket.emit("1",1.98, 310, 8);socket.emit("1",0.34, 310, 8);socket.emit("1",2.8, 310, 8);socket.emit("1",1.57, 306, 1);socket.emit("1",1.37, 306, 1);socket.emit("1",1.77, 306, 1);socket.emit("1",2.19, 306, 1);socket.emit("1",0.95, 306.01, 1);socket.emit("1",0.75, 306, 1);socket.emit("1",0.55, 306, 1);socket.emit("1",2.39, 306, 1);socket.emit("1",2.59, 306, 1);socket.emit("1",0.13, 306, 1);socket.emit("1",3.01, 306, 1);socket.emit("1",-3.07, 306, 1);socket.emit("1",-2.87, 306, 1);socket.emit("1",-2.67, 306, 1);socket.emit("1",-2.27, 306, 1);socket.emit("1",-2.07, 306, 1);socket.emit("1",-2.47, 306, 1);socket.emit("1",-0.07, 306, 1);socket.emit("1",-0.27, 306, 1);socket.emit("1",-0.47, 306, 1);socket.emit("1",-1.87, 306, 1);socket.emit("1",-1.67, 306, 1);socket.emit("1",-1.47, 306, 1);socket.emit("1",-1.27, 306, 1);socket.emit("1",-1.07, 306, 1);socket.emit("1",-0.87, 306, 1);socket.emit("1",-0.67, 306, 1);socket.emit("1",-1.55, 140, 7);socket.emit("1",-2.19, 132, 3);socket.emit("1",-0.95, 132, 3);socket.emit("1",-2.08, 193.61, 3);socket.emit("1",-1.05, 195.4, 3);socket.emit("1",-1.56, 243.85, 3);socket.emit("1",-1.27, 243.85, 3);socket.emit("1",-1.85, 243.85, 3);
}
})
addEventListener('keydown', a => {
a = a.keyCode;
if (a == 90) {//Commander
const myUnits = units.filter(unit => unit.owner == player.sid && unit.type == 0 && unit.uPath == 3);
myUnits.forEach(unit => {
socket.emit("4", unit.id, 0)
});
}
})
addEventListener('keydown', a => {
a = a.keyCode;
if (a == 121) {//Sell gens
const my = {};
let Sell = [];
my.SellWalls = window.units.filter(unit => unit.owner == window.player.sid && unit.type == 0 && unit.uPath == 3 || unit.uPath == '3,0')
my.SellWalls.forEach(gensID => {Sell.push(gensID.id);window.socket.emit("3",Sell)})
}
})
addEventListener('keydown', a => {
a = a.keyCode;
if (a == 189) {//Sell house
const my = {};
let Sell = [];
my.SellHouse = window.units.filter(unit => unit.owner == window.player.sid && unit.type == 0 && unit.uPath == 4)
my.SellHouse.forEach(houseID => {Sell.push(houseID.id);window.socket.emit("3",Sell)})
}
})
addEventListener('keydown', a => {
a = a.keyCode;
if (a == 103) {//Up Barrack
const my = {};
my.UPbarracks = window.units.filter(unit => unit.owner == window.player.sid && unit.type == 2 && unit.uPath == 8)
my.UPbarracks.forEach(barracksID => {window.socket.emit("4",barracksID.id,0)})
}
})
addEventListener('keydown', a => {
a = a.keyCode;
if (a == 190){
for (var i = 0; i < units.length; ++i) 3 == units[i].type && "circle" == units[i].shape && units[i].owner == player.sid && socket.emit("4", units[i].id, 1)
}
})
addEventListener('keydown', a => {
a = a.keyCode;
if (a == 90) {//Commander
window.socket.emit("4",0,0,1)
window.selUnits = [];
window.units.every((unit) => {
if (unit.owner === window.player.sid && unit.type === 1) {
if (!unit.info) unit.info = window.getUnitFromPath(unit.uPath);
if (unit.info.name === 'Commander') {
window.selUnits.push(unit);
return false;
}}
return true;
});
window.selUnitType = "Unit";
}
})
addEventListener('keydown', a => {
a = a.keyCode;
if (a == 81) {//Soldiers
window.selUnits = [];
window.units.forEach((unit) => {
if (unit.owner === window.player.sid && unit.type === 1) {
if (!unit.info) unit.info = window.getUnitFromPath(unit.uPath);
if (unit.info.name === 'Soldier') {
window.selUnits.push(unit);
return false;
}}
return true;
});
window.selUnitType = "Unit";
}
})
addEventListener('keydown', a => {
a = a.keyCode;
if(a == 226) {//Sell Walls
const my = {};
let Sell = [];
my.SellWalls = window.units.filter(unit => unit.owner == window.player.sid && unit.type == 3 && unit.uPath == 1)
my.SellWalls.forEach(wallsID => {Sell.push(wallsID.id);window.socket.emit("3",Sell)})
}
})
addEventListener('keydown', a => {
a = a.keyCode;
if (a == 110) {//Centralizador
for (var e = [], b = 0; b < Math.floor(window.selUnits.length-0); ++b) e.push(window.selUnits[b].id);window.socket.emit("5", (window.player.x)-1, (window.player.y)+1, e, 0, -1);
for (e = [], b = 0; b < Math.floor(window.selUnits.length-0); ++b) e.push(window.selUnits[b].id);window.socket.emit("5", (window.player.x)+1, (window.player.y)-1, e, 0, -1);
for (e = [], b = 0; b < Math.floor(window.selUnits.length-0); ++b) e.push(window.selUnits[b].id);window.socket.emit("5", (window.player.x)*1, (window.player.y)*1, e, 0, -1);
for (e = [], b = 0; b < Math.floor(window.selUnits.length-0); ++b) e.push(window.selUnits[b].id);window.socket.emit("5", (window.player.x), (window.player.y), e, 0, -1);
}
})
window.share.getUnitList = function() {
return [{
name: "Soldier",
shape: "circle",
desc: "Expendable and perfect for rushing the enemy",
typeName: "Unit",
limit: 4,
reward: 3,
notUser: true,
uPath: [0],
space: 2,
type: 1,
size: 17,
speed: 0.18,
health: 30,
dmg: 10
}, {
name: "Wall",
shape: "circle",
desc: "Blocks incoming units and projectiles",
typeName: "Tower",
uPath: [1],
type: 3,
size: 30,
cost: 20,
health: 100,
dmg: 50,
upgrades: [{
name: "Boulder",
shape: "hexagon",
desc: "Strong barrier that blocks incoming units",
typeName: "Tower",
uPath: [1, 0],
type: 3,
size: 30,
cost: 60,
health: 150,
dmg: 50,
upgrades: [{
name: "Spikes",
shape: "spike",
desc: "Strong spike that blocks incoming units",
typeName: "Tower",
uPath: [1, 0, 0],
type: 3,
size: 30,
cost: 200,
health: 200,
dmg: 100
}]
}, {
name: "Micro Generator",
shape: "circle",
desc: "Generates power over time",
typeName: "Tower",
uPath: [1, 1],
type: 3,
size: 30,
iSize: 0.55,
cost: 30,
health: 50,
dmg: 10,
pts: 0.5
}]
}, {
name: "Simple Turret",
shape: "circle",
desc: "Shoots incoming enemy units",
typeName: "Tower",
uPath: [2],
type: 0,
size: 29,
cost: 25,
turretIndex: 1,
range: 180,
reload: 800,
health: 20,
dmg: 20,
upgrades: [{
name: "Rapid Turret",
shape: "circle",
desc: "Shoots incoming units at faster rate",
typeName: "Tower",
uPath: [2, 0],
type: 0,
size: 30,
cost: 60,
turretIndex: 2,
range: 180,
reload: 400,
health: 20,
dmg: 20,
upgrades: [{
name: "Gatlin Turret",
shape: "circle",
desc: "Rapidly shoots incoming units at close range",
typeName: "Tower",
uPath: [2, 0, 0],
type: 0,
size: 30,
cost: 100,
turretIndex: 7,
range: 180,
reload: 140,
health: 20,
dmg: 15
}]
}, {
name: "Ranged Turret",
shape: "circle",
desc: "Turret with higher range and damage",
typeName: "Tower",
uPath: [2, 1],
type: 0,
size: 30,
cost: 60,
turretIndex: 3,
range: 240,
reload: 800,
health: 30,
dmg: 30,
upgrades: [{
name: "Spotter Turret",
shape: "circle",
desc: "Shoots at very high range and reveals cloaked units",
typeName: "Tower",
seeCloak: true,
uPath: [2, 1, 0],
type: 0,
size: 30,
cost: 100,
turretIndex: 10,
range: 290,
reload: 800,
health: 30,
dmg: 30
}]
}]
}, {
name: "Generator",
shape: "hexagon",
desc: "Generates power over time",
typeName: "Tower",
uPath: [3],
type: 0,
size: 32,
iSize: 0.55,
cost: 50,
health: 50,
dmg: 10,
pts: 1,
upgrades: [{
name: "Power Plant",
shape: "octagon",
desc: "Generates power at a faster rate",
typeName: "Tower",
uPath: [3, 0],
type: 0,
size: 32,
iSize: 0.6,
cost: 100,
health: 80,
dmg: 10,
pts: 1.5
}]
}, {
name: "House",
shape: "pentagon",
desc: "Increases unit limit",
typeName: "Tower",
uPath: [4],
type: 0,
size: 30,
iSize: 0.3,
cost: 60,
health: 40,
dmg: 10,
lmt: [0, 3]
}, {
name: "Sniper Turret",
shape: "circle",
desc: "Slower firerate but larger range and damage",
typeName: "Tower",
uPath: [5],
type: 0,
size: 32,
cost: 80,
turretIndex: 4,
range: 240,
reload: 2000,
health: 30,
tDmg: 50,
dmg: 30,
upgrades: [{
name: "Semi-Auto Sniper",
shape: "circle",
desc: "Fast firerate sniper turret",
typeName: "Tower",
uPath: [5, 0],
type: 0,
size: 32,
cost: 180,
turretIndex: 5,
range: 240,
reload: 1000,
health: 60,
tDmg: 50,
dmg: 30
}, {
name: "Anti Tank Gun",
shape: "circle",
desc: "High damage turret with very slow firerate",
typeName: "Tower",
target: 1,
uPath: [5, 1],
type: 0,
size: 32,
cost: 300,
turretIndex: 6,
range: 280,
reload: 4500,
health: 60,
tDmg: 250,
dmg: 30
}]
}, {
name: "Tank",
shape: "square",
desc: "More powerful unit but moves slower",
typeName: "Unit",
group: 0,
reward: 100,
notUser: true,
uPath: [6],
space: 15,
type: 1,
size: 31,
speed: 0.05,
health: 250,
dmg: 50
}, {
name: "Armory",
shape: "circle",
desc: "Provides improvements for your army",
typeName: "Tower",
uPath: [7],
limit: 1,
type: 0,
size: 40,
renderIndex: 3,
cost: 100,
health: 90,
dmg: 30,
upgrades: [{
name: "Power Armor",
desc: "Increases soldier armor",
powerup: true,
uPath: [7, 0],
cost: 500,
uVals: [0, 'health', 20, 'renderIndex', 4]
}, {
name: "Booster Engines",
desc: "Increases tank movement speed",
powerup: true,
uPath: [7, 1],
cost: 600,
uVals: [6, 'speed', 0.04, 'renderIndex', 5]
}, {
name: "Panzer Cannons",
desc: "Adds cannons to tank units",
powerup: true,
uPath: [7, 2],
cost: 1000,
uVals: [6, 'turretIndex', 8, 'tDmg', 10, 'reload', 900, 'range', 200, 'shoot', true, 'target', 1]
}, {
name: "Cloaking Device",
desc: "Hides tanks from enemy towers",
powerup: true,
uPath: [7, 3],
cost: 2000,
uVals: [6, 'cloak', 1, 'canCloak', 1]
}]
}, {
name: "Barracks",
shape: "square",
desc: "Produces soldiers over time",
typeName: "Tower",
uPath: [8],
limit: 4,
type: 2,
size: 34,
iSize: 0.55,
cost: 150,
reload: 3500,
unitSpawn: 0,
health: 60,
dmg: 30,
upgrades: [{
name: "Greater Barracks",
shape: "square",
desc: "Produces soldiers more rapidly",
typeName: "Tower",
uPath: [8, 0],
type: 2,
size: 34,
renderIndex: 1,
cost: 500,
reload: 2500,
unitSpawn: 0,
health: 80,
dmg: 40
}, {
name: "Tank Factory",
shape: "square",
desc: "Slowly produces tanks over time",
typeName: "Tower",
uPath: [8, 1],
type: 2,
size: 35,
range: 70,
renderIndex: 2,
cost: 2000,
reload: 10000,
unitSpawn: 6,
health: 140,
dmg: 50,
upgrades: [{
name: "Blitz Factory",
shape: "square",
desc: "Produces Tanks at a Faster rate",
typeName: "Tower",
uPath: [8, 1, 0],
type: 2,
size: 35,
range: 70,
renderIndex: 2,
cost: 5000,
reload: 6000,
unitSpawn: 6,
health: 180,
dmg: 50
}]
}, {
name: "Siege Factory",
shape: "square",
desc: "Produces siege tanks over time",
typeName: "Tower",
uPath: [8, 2],
type: 2,
size: 35,
range: 70,
renderIndex: 8,
cost: 3000,
reload: 20000,
unitSpawn: 11,
health: 200,
dmg: 100
}]
}, {
name: "Commander",
shape: "star",
hero: true,
desc: "Powerful commander unit",
typeName: "Unit",
reward: 200,
notUser: true,
uPath: [9],
limit: 1,
type: 1,
size: 32,
speed: 0.16,
health: 700,
dmg: 100,
tDmg: 30,
turretIndex: 9,
reload: 600,
range: 160,
target: 1,
upgrades: [{
name: "Great Leadership",
desc: "Increases population cap",
powerup: true,
removeOthers: true,
uPath: [9, 0],
cost: 500,
lmt: [0, 10]
}]
}, {
name: "Tree",
desc: "Can be used for cover",
typeName: "Nature",
layer: 1,
uPath: [10],
type: 4,
notUser: true,
dontUpdate: true,
size: 90,
renderIndex: 7
}, {
name: "Siege Ram",
shape: "circle",
desc: "Very powerful and slow siege tank",
typeName: "Unit",
group: 0,
reward: 300,
notUser: true,
uPath: [11],
space: 40,
type: 1,
size: 30,
iSize: 0.5,
speed: 0.015,
health: 1500,
dmg: 100
}];
}
updatePath = function(a, d) {
if (a.paths[1]) {
mainContext.save();
a.dir = a.paths[0];
var c = a.paths[1],
user = users.find(u => u.sid === a.owner);
c -= d;
0 < c ? (a.x += d * MathCOS(a.dir), a.y += d * MathSIN(a.dir)) : (c *= -1, a.x += a.paths[1] * MathCOS(a.dir), a.y += a.paths[1] * MathSIN(a.dir), a.startTime += a.paths[1] / a.speed, a.paths.splice(0, 2), updatePath(a, c));
mainContext.lineWidth = 2;
mainContext.globalAlpha = 5;
var x = a.x - ((player.x || 0) - maxScreenWidth / 2 + camX),
y = a.y - ((player.y || 0) - maxScreenHeight / 2 + camY);
renderLine(x, y, x + c * MathCOS(a.dir), y + c * MathSIN(a.dir), mainContext, user && playerColors[user.color]);
a.lastX = a.x;
a.lastY = a.y;
mainContext.restore();
}
}
renderLine = function(sX, sY, fX, fY, c, clr, sW) {
c.beginPath();
c.moveTo(sX, sY);
c.lineTo(fX, fY);
c.strokeStyle = clr || '#eee8';
c.stroke();
c.closePath();
}
addEventListener("keydown",function(a){if(document.activeElement == mainCanvas && selUnits.length){if(a.key=="/"){effect700();}}});
var rot = 0.1;
function effect700(){var radiuslenght = 700;var radius = radiuslenght;var x = player.x+targetDst*
MathCOS(targetDir)+camX;var y = player.y+targetDst*MathSIN(targetDir)+camY;var interval = (Math.PI*2)/selUnits.length;rot+=0.1;
for(let i=0;i<selUnits.length;i++){socket.emit("5",x+(Math.cos(interval*i+rot)*radius),y+(Math.sin(interval*i+rot)*radius),[selUnits[i].id],0,0);
}};
var chatkaka = document.createElement("style")
addEventListener('keydown', a => {
a = a.keyCode;
if (a === 69) {/*Commander e soldiers*/
selUnits = []; units.forEach((unit) => { if (unit.owner === player.sid && unit.type === 1) { if (!unit.info) unit.info = getUnitFromPath(unit.uPath); unit.info.name !== 'Siege Ram' && selUnits.push(unit) } }); selUnitType = "Unit";
}
})
window.ntx = function(dir, dst, uPath) {window.socket.emit("1", dir, dst, uPath)}
window.resolution = 1;
window.upgrInputsToIndex = {};
window.cameraSpd = 2.0;
window.joinEnabled = true;
window.cid = window.UTILS.getUniqueID();localStorage.setItem("cid",window.cid);
window.outlineWidth = 6;
// Bot //
window.Bot=function(){
var bots = prompt("quantidade de bot")
for (let i = 0; i < bots; i++) {
window.open("http://bloble.io/?l="+partyKey)
}}
// Hotbar //
window.UIList = window.UIList || [];
window.initFuncs = window.initFuncs || [];
window.statusItems = window.statusItems || [];
window.UIList.push({
level:0,x:3,html:'<div onclick=Bot()>BotGuia</div>'},{
})
window.makeUI = function () {
if (window.hasMadeUI) return;
window.hasMadeUI = true;
window.statusItems.sort(function (a, b) {return a.order - b.order;})
var levels = [];
window.UIList.forEach((item) => {
if (!levels[item.level]) levels[item.level] = [];
levels[item.level].push(item)})
levels = levels.filter((a) => {if (a) {a.sort(function (a, b) {return a.x - b.x;})
return true;} else {return false;}})
var headAppend = document.getElementsByTagName("head")[0],style = document.createElement("div");
var toast = document.createElement('div');toast.id = "snackbar";
var css = document.createElement('div');
var height = levels.length * (14 + 19) + (levels.length - 1) * 7 + 23;
style.innerHTML = "<style>\n\
#noobscriptUI, #noobscriptUI > div > div {\n\
background-color: rgba(139,0,139, 0.2);\n\
margin-left: 1px;\n\
border-radius:10px;\n\
pointer-events:all\n\
}\n\
#noobscriptUI {\n\
top: -" + (height + 12) + "px;\n\
transition: 1s;\n\
margin-left:10px;\n\
position:absolute;\n\
padding-left:25px;\n\
margin-top:9px;\n\
padding-top:15px;\n\
width:500px;\n\
height: " + height + "px;\n\
font-family:arial;\n\
left:24%\n\
}\n\
#noobscriptUI:hover{\n\
top:0px\n\
}\n\
#noobscriptUI > div > div {\n\
color:#fff;\n\
padding:7px;\n\
height:19px;\n\
display:inline-block;\n\
background-color: rgba(139,0,139, 0.2)\n\
cursor:pointer;\n\
font-size:20px\n\
}\n\
</style>"
headAppend.appendChild(style);headAppend.appendChild(css);
var contAppend = document.getElementById("gameUiContainer"),menuA = document.createElement("div");
var code = ['<div id="noobscriptUI">\n'];
levels.forEach((items, i) => {
code.push(i === 0 ? ' <div>\n' : ' <div style="margin-top:7px;">\n');
items.forEach((el) => {
code.push(' ' + el.html + '\n');})
code.push(' </div>\n');})
code.push(' <div id="confinfo" style="margin-top:4px; color: white; text-align: center; font-size: 10px; white-space:pre"></div>')
code.push('</div>');
menuA.innerHTML = code.join("");
contAppend.insertBefore(menuA, contAppend.firstChild)
contAppend.appendChild(toast)}
setTimeout(() => {window.makeUI();}, 1000);
playerSkins = 0;cid = UTILS.getUniqueID();localStorage.setItem("cid",cid);upgrInputsToInde
function Troops1() {selUnits = []; units.forEach((unit) => {if (unit.owner === player.sid && unit.type === 1 && unit.id%2 === 0) {if (!unit.info) unit.info = getUnitFromPath(unit.uPath);if (unit.info.name === 'Soldier') { selUnits.push(unit);return false; } } return true; });selUnitType = "Unit"; }
function Troops2() {selUnits = []; units.forEach((unit) => {if (unit.owner === player.sid && unit.type === 1 && unit.id%2 !== 0) {if (!unit.info) unit.info = getUnitFromPath(unit.uPath);if (unit.info.name === 'Soldier') { selUnits.push(unit);return false; } } return true; });selUnitType = "Unit"; }
addEventListener("keydown", function(a){
a = a.keyCode ? a.keyCode : a.which;
if(a === 49){Troops1()}
if(a === 50){Troops2()}
})