NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name Ordenes de Batalla - MoD eCuba
// @version v8
// @author Runy69 3.0 & El Bort
// @namespace #e.cuba irc.rizon.net
// @description Plugin para visualizar las Ordenes de Batalla de eCuba.
// @require https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
// @require https://raw.githubusercontent.com/jaz303/tipsy/master/src/javascripts/jquery.tipsy.js
// @include http://*.erepublik.com/*
// @include https://*.erepublik.com/*
// @updateURL https://dl.dropboxusercontent.com/s/vc9e04zpzt0o8o8/Meta.meta.js
// @downloadURL https://dl.dropboxusercontent.com/s/xi9kmf824m05dcu/Script.user.js
// ==/UserScript==
var update = false;
var actV = 'v8';
//TXT VARS
var txt = {
//GLOBALS
'global' : {
//PRIORITIES ID
'prio' : {
'1' : 'ma',
'2' : 'al',
'3' : 'me',
'4' : 'ba',
'5' : 'se',
'6' : 'pe',
'7' : 'no'
}
},
//ENGLISH
'en' : {
//PRIORITIES
'prio' : {
'1' : {
'label' : 'MAXIMUM',
'info' : 'MAXIMUM: Priority or very difficult campaign. Domain bar must be between 52% and 55% to ensure victory.'
},
'2' : {
'label' : 'HIGH',
'info' : 'HIGH: Difficult campaign. Domain bar must be between 52% and 55% in all battles as possible to ensure victory.'
},
'3' : {
'label' : 'MEDIUM',
'info' : 'MEDIUM: Medium priority campaign. Domain bar must be between 51% and 53% in all battles as possible to ensure victory.'
},
'4' : {
'label' : 'LOW',
'info' : 'LOW: Low priority campaign or with high score in favor. Keep an eye on and only fight if higher priorities are controlled.'
},
'5' : {
'label' : 'SECURED',
'info' : 'SECURED: Campaign with hight score in favor. IMPORTANT: Don\'t maybe campaign must be elonged, so probably other division should close it.'
},
'6' : {
'label' : 'LOST',
'info' : 'LOST: Besides all efforts made it\'s not possible to win this campaign. Don\'t fight on it.'
},
'7' : {
'label' : 'DON\'T FIGHT',
'info' : 'DONT FIGHT: We must lose this campaign for strategic reasons, don\'t fight on it, we must lose it.'
}
},
'cold' : "Cold",
'domination' : "Domination",
'epic' : "Epic",
'fight' : "Fight",
'fightFor' : "Fight for",
'full' : "Full",
'orderC' : "ORDERS",
'order' : "Orders",
'points' : "Points",
'priorityFor' : "Priority for",
'rounds' : "Round",
'total' : "Total",
'wall' : "Wall"
},
'es' : {
//PRIORITIES
'prio' : {
'1' : {
'label' : 'MÁXIMA',
'info' : 'MAXIMA: Campaña prioritaria y/o muy complicada de cerrar. Se requiere que el porcentaje de dominio en todas las batallas, este entre 52% y 55% para asegurar su victoria.'
},
'2' : {
'label' : 'ALTA',
'info' : 'ALTA: Campaña complicada de cerrar. Se requiere que el porcentaje de dominio en todas las batallas, este entre 52% y 55% para asegurar su victoria.'
},
'3' : {
'label' : 'MEDIA',
'info' : 'MEDIA: Campaña de mediana prioridad. Se requiere que el porcentaje de dominio en todas las batallas, este entre 51% y 53% para asegurar su victoria.'
},
'4' : {
'label' : 'BAJA',
'info' : 'BAJA: Campaña avanzada en punuación a favor o se requiere un minimo de dño para su victoria. Vigilar y combatir SOLO si las prioridades mayores estón muy controladas (barras de las otras batallas sobre 52%).'
},
'5' : {
'label' : 'ASEGURADA',
'info' : 'SEGURA: Campaña muy avanza en punuación a favor. IMPORTANTE: muchas veces se necesita NO luchar para demorar el cierre de la camapaña, por asuntos estrategicos. NO luches en esta campaña. Otra/s División/es tiene/n que cerrarla.'
},
'6' : {
'label' : 'PERDIDA',
'info' : 'PERDIDA: A pesar de todo el esfuerzo y lucha de nuestras tropas y aliados no es posible ganar esta campaña. NO luches en esta campaña, la perdimos.'
},
'7' : {
'label' : 'NO LUCHAR',
'info' : 'NO LUCHAR: Se necesita perder la campaña por asuntos estrategócos. NO luches en esta campaña, debemos perderla.'
}
},
'cold' : "Fría",
'domination' : "Dominación",
'epic' : "Épica",
'fight' : "Luchar",
'fightFor' : "Luchar por",
'full' : "Gran Escala",
'orderC' : "ÓRDENES",
'order' : "Órdenes",
'points' : "Puntos",
'priorityFor' : "Prioridad en",
'rounds' : "Ronda",
'total' : "Total",
'wall' : "Muro"
}
};
//IMAGE SRCS
var img = {
"en" : {
"prio" : {
"1" : "https://dl.dropboxusercontent.com/s/j7lpaza9m8bpd1b/ma_en.jpg",
"2" : "https://dl.dropboxusercontent.com/s/ou6j72c7p1hx6bl/al_en.jpg",
"3" : "https://dl.dropboxusercontent.com/s/9uj8mtcwon6mqum/me_en.jpg",
"4" : "https://dl.dropboxusercontent.com/s/x49jbvzlnpk5ygp/ba_en.jpg",
"5" : "https://dl.dropboxusercontent.com/s/q1jnbocowie9fh7/se_en.jpg",
"6" : "https://dl.dropboxusercontent.com/s/qp3t5wufbe5vj90/pe_en.jpg",
"7" : "https://dl.dropboxusercontent.com/s/sacivmzuou6u7fx/no_en.jpg"
}
},
"es" : {
"prio" : {
"1" : "https://dl.dropboxusercontent.com/s/unevcw5o5itlo5r/ma_es.jpg",
"2" : "https://dl.dropboxusercontent.com/s/rxduqunh1uv5k5h/al_es.jpg",
"3" : "https://dl.dropboxusercontent.com/s/8zk5yndg3cu8j0i/me_es.jpg",
"4" : "https://dl.dropboxusercontent.com/s/wzrg8fsa5pc73ce/ba_es.jpg",
"5" : "https://dl.dropboxusercontent.com/s/2ldjzx4sc3fmqux/se_es.jpg",
"6" : "https://dl.dropboxusercontent.com/s/5ovicymgoa5556f/pe_es.jpg",
"7" : "https://dl.dropboxusercontent.com/s/9y4r3zvx2t06zrx/no_es.jpg"
}
}
};
var cult = SERVER_DATA.culture;
if(txt[cult] === undefined) cult = 'en';
function inicio(fn) {
$.ajax({url: 'https://dl.dropboxusercontent.com/s/vc9e04zpzt0o8o8/Meta.meta.js', dataType: 'text'}).done(function(data){
var lastV = data.match(/@version[\t]*v(.*)/)[1];
update = lastV > actV;
if(document.getElementById('homepage_feed') !== null) {
var _paso = $;
$ = jQuery;
header();
battles(function(data){
var shouts = data[data.length-1].shout;
var batts = data[division()-1];
var url = cult+'/military/campaigns-new/';
var active = [];
$.ajax({url: url, dataType: 'json'}).done(function(data){
var dataB = data.battles;
var campaignTxt = $('#battle_listing h1').text();
if($('#battle_listing h1').text().indexOf(": "+txt[cult].orderC) == -1) $('#battle_listing h1').html(campaignTxt+': ' + txt[cult].orderC);
for(var prio in batts){
prio = prio.toString();
active[prio] = false;
if(Object.getOwnPropertyNames(batts[prio]).length > 0 && txt.global.prio[prio] !== undefined){
var ico = '<img style="margin-top: 10px;" id="info_' + txt.global.prio[prio] + '" original-title="' + txt[cult].prio[prio].info + '" src="http://www.erepublik.com/images/modules/_icons/small_info_icon.png" style="position:relative;bottom: -5px;right: -5px;" alt="">';
var _htmlBattles = '<img src="'+ img[cult].prio[prio] + '">' + ico + '<ul id="prio_' + txt.global.prio[prio] + '" class="prio_' + txt.global.prio[prio] + '"></ul>';
$('#mod_orders').append('<div id="info_header_'+txt.global.prio[prio]+'">'+_htmlBattles+'<div>');
$('#info_' + txt.global.prio[prio]).tipsy({gravity: $.fn.tipsy.autoNS});
}
for(var i in batts[prio]){
if(dataB[Math.abs(batts[prio][i])] !== undefined){
var signedId = batts[prio][i];
var id = Math.abs(signedId);
var side = (signedId/Math.abs(signedId) == 1 ? "def" : "inv");
battle(prio, side, dataB[id], data, shouts[id]);
active[prio] = true;
}
}
if(!active[prio]) $('#info_header_'+txt.global.prio[prio]).remove();
if ($('.war_versus_img').length > 0) $('.war_versus_img').tipsy({gravity: 's', html: true, opacity: 1.0, trigger: 'manual'});
}
if(active.indexOf(true) == -1) $('#battle_listing h1').html(campaignTxt);
$('#battle_listing h1').after('<small style=\"width: inherit; margin-top: -8px;\" id=\"script_v\">MoD eCuba '+actV+'<\/small><img id="info_translate" original-title="If you want to add your language send PM to Runy69 3.0 or El Bort to talk about translations" src="http://www.erepublik.com/images/modules/_icons/small_info_icon.png" style="margin-top: -8px;" alt="">');
if(update) $('#script_v').html('MoD eCuba update avilable: <a href=\"https://dl.dropboxusercontent.com/s/xi9kmf824m05dcu/Script.user.js\">Update '+lastV+'<\/a>');
$('#info_translate').tipsy({gravity: $.fn.tipsy.autoNS});
fn();
});
});
footer();
$ = _paso;
}
});
}
function header() {
var orders = '<div id="mod_orders"></div>';
$('#battle_listing h1').after(orders);
}
function footer() {
var orders="";
$(orders).insertAfter('#mod_orders');
}
function division() {
return parseInt(erepublik.citizen.division);
}
function battles(fn) {
$.ajax({url: 'https://www.googleapis.com/drive/v3/files/0B0ZftAweIEPLeDItSUkzSEZQU00?acknowledgeAbuse=false&fields=description&key=AIzaSyBN0fqYSh8d5Jb0mtV7eDn6nuK5uy182SM', dataType: 'text'}).done(function(data){
var json = JSON.parse(data);
json = json.description;
fn(JSON.parse(json));
});
}
function shoutToTxt(shouts, campaign, id, side){
var region = campaign.region.name;
var shoutTxt = "";
var prios = [];
for(var i = 0; i < shouts.length; i++){
if(shouts[i] !== false){
if(prios[parseInt(shouts[i])] === undefined) prios[parseInt(shouts[i])] = 'D'+(i+1);
else prios[parseInt(shouts[i])] += ', D'+(i+1);
}
}
if(prios !== []) {
for(i in prios){
shoutTxt += prios[i] + " " + txt.en.prio[i].label + "\n";
}
shoutTxt = "eCuba MoD "+txt[cult].order+":\n"+txt[cult].priorityFor+" "+erepublik.info.countries[campaign[side].id].name+":\n" + shoutTxt + region + " " + 'http://www.erepublik.com/en/military/battlefield-new/'+id;
}
return shoutTxt;
}
function battle(prio, side, data, fullData, shouts) {
var campaign = data;
var shoutTxt = shoutToTxt(shouts, campaign, campaign.id, side);
if(fullData.countries[data.inv.id].allies.indexOf(parseInt(erepublik.citizen.country)) > -1) campaign.inv.isMyAlly = true;
if(fullData.countries[data.def.id].allies.indexOf(parseInt(erepublik.citizen.country)) > -1) campaign.def.isMyAlly = true;
var html="";
var div = division();
if(campaign.div[11] !== undefined) div = 11;
var epic = campaign.div[div] == 2;
html += "<li class=\"is_homepage"+(campaign.is_lib?' liberation':'')+(campaign.is_dict?' dictatorship':'')+(epic?' epic_battle_entry':'')+"\">";
html += "<table>";
html += "<tr>";
html += "<td colspan=\"2\">";
if(campaign.inv.isEmpire) html += "<span class=\"empire_flag_deco medium\"><span class=\"inner_deco_star\"><\/span><\/span>";
if(campaign.is_dict) html += "<span class=\"dict_war_icon left_side\"><\/span>";
if(campaign.is_lib) html += "<span class=\"libe_war_icon left_side\"><\/span>";
html += "<span style=\"zoom: 1;\" id=\"invFlag_"+data.id+"\" value=\""+campaign.inv.id+"\" class=\"country_flags "+erepublik.info.countries[campaign.inv.id].permalink+"\"><\/span>";
if(campaign.inv.isMyAlly && !campaign.is_rw && !campaign.is_dict && !campaign.is_lib) html += "<img style=\"top: 20px;\" class=\"mpp_sign one\" src=\"\/\/www.erepublik.net\/images\/modules\/_icons\/small_mpp.png\" title=\""+erepublik.info.countries[campaign.def.id].permalink+"\" alt=\"\" \/>";
if(campaign.is_rw) html += "<img style=\"top: 20px;\" class=\"resistance_sign one\" src=\"\/\/www.erepublik.net\/images\/modules\/_icons\/small_resistance.png\" title=\""+erepublik.info.countries[campaign.def.id].permalink+"\" alt=\"\">";
html += "<div style=\"margin-left: -16px!important;"+(div == 11 ? ' background-image: url(/images/modules/misc/versus_aircraft.png?1468398448)':'')+"\" id=\"info_"+campaign.id+"\" class=\"war_versus_img\" original-title=\"Loading Data...\"><\/div>";
if(campaign.def.isEmpire) html += "<span class=\"empire_flag_deco medium second\"><span class=\"inner_deco_star\"><\/span><\/span>";
html += "<span style=\"zoom: 1;\" id=\"defFlag_"+data.id+"\" value=\""+campaign.def.id+"\" class=\"country_flags "+erepublik.info.countries[campaign.def.id].permalink+"\"><\/span>";
if(campaign.def.isMyAlly && !campaign.is_rw && !campaign.is_dict && !campaign.is_lib) html += "<img style=\"top: 20px;\" class=\"mpp_sign two\" src=\"\/\/www.erepublik.net\/images\/modules\/_icons\/small_mpp.png\" title=\""+erepublik.info.countries[campaign.def.id].name+"\" alt=\"\" \/>";
html += "<strong>"+campaign.region.name+"<\/strong>";
html += "<span original-title=\""+txt[cult].fightFor+": "+erepublik.info.countries[campaign[side].id].name+"\" class=\"mod_fight_button fight_button campaign_page\">";
if(!campaign.is_rw) html += "<a href=\"\/es\/military\/battlefield-new\/"+campaign.id+"\" class=\"std_global_btn smallSize blueColor\"><span>"+txt[cult].fight+"<\/span><\/a>";
else html += "<a href=\"\/es\/wars\/show\/"+campaign.war_id+"\" class=\"std_global_btn smallSize blueColor\"><span>"+txt[cult].fight+"<\/span><\/a>";
html += "<\/span>";
html += "<\/td>";
html += "<\/tr>";
html += "<tr>";
html += "<td style=\"width: 50%\">";
html += "<a style=\"float: none; margin: 5px 5px; margin-left: 10px!important;\" id=\"info_button_"+campaign.id+"\" "+(div == 11 ? 'type="air"':"")+" value=\""+campaign.id+"\" href=\"javascript:;\" class=\"war_info_button std_global_btn smallSize blueColor\"><span>Info<\/span><\/a>";
html += "<\/td>";
if(shoutTxt !== "") {
html += "<td style=\"width: 48%\">";
html += "<a style=\"float: none; margin: 5px 5px;\" id=\"shout_button_"+campaign.id+"\" value=\""+shoutTxt+"\" href=\"javascript:;\" class=\"shout_button std_global_btn smallSize blueColor\"><span>Shout<\/span><\/a>";
html += "<\/td>";
}
html += "<\/tr>";
html += "<\/table>";
html += "<\/li>";
$('#prio_'+txt.global.prio[prio]).append(html);
$('.mod_fight_button').tipsy({gravity: 'e', opacity: 1});
}
function loadBattleData(idElem, fn) {
var url = cult+'/military/battle-stats/'+$(idElem).attr('value');
$.ajax({ url: url, dataType: 'json'}).done(function(data){
fn(idElem, data);
});
}
function setData(item){
loadBattleData(item, function(idElem, data){
var air = $(idElem).attr('type') == 'air';
var battId = $(idElem).attr('value');
var round = 0;
var defId = $('#defFlag_'+battId).attr('value');
var invId = $('#invFlag_'+battId).attr('value');
for(var i in data.stats.current){
if(data.stats.current[i] !== undefined) round = i;
}
var epic = [];
if(!air){
for(var i = 1; i <= 4; i++){
epic[i] = data.battle_zone_situation[i];
epic[i] = (epic[i] > 0 ? (epic[i] == 1 ? txt[cult].full : txt[cult].epic) : txt[cult].cold);
}
} else {
epic[11] = data.battle_zone_situation[11];
epic[11] = (epic[11] > 0 ? (epic[11] == 1 ? txt[cult].full : txt[cult].epic) : txt[cult].cold);
}
var html="";
html += "<table style=\"padding: 5px!important;\">";
html += "<tr>";
html += "<td>"+txt[cult].points+"<\/td><td>"+txt[cult].domination+"<\/td><td>"+txt[cult].wall+"<\/td>";
html += "<td>"+txt[cult].rounds+" "+round+"<\/td>";
html += "<td>"+txt[cult].wall+"<\/td><td>"+txt[cult].domination+"<\/td><td>"+txt[cult].points+"<\/td>";
html += "<\/tr>";
if(!air){
for(var i = 1; i <= 4; i++){
html += "<tr "+(division() == i ? "style=\"background:#83B70B\"" : "")+">";
html += "<td>"+data.division[invId][i].points+"<\/td><td>"+data.division[invId][i].domination+"<\/td><td>"+(100-data.division.domination[i]).toFixed(2)+"%<\/td>";
html += "<td class=\"middleCell\">"+epic[i]+"<\/td>";
html += "<td>"+(data.division.domination[i]).toFixed(2)+"%<\/td><td>"+data.division[defId][i].domination+"<\/td><td>"+data.division[defId][i].points+"<\/td>";
html += "<\/tr>";
}
} else {
html += "<tr style=\"background:#83B70B\">";
html += "<td>"+data.division[invId][11].points+"<\/td><td>"+data.division[invId][11].domination+"<\/td><td>"+(100-data.division.domination[11]).toFixed(2)+"%<\/td>";
html += "<td class=\"middleCell\">"+epic[11]+"<\/td>";
html += "<td>"+(data.division.domination[11]).toFixed(2)+"%<\/td><td>"+data.division[defId][11].domination+"<\/td><td>"+data.division[defId][11].points+"<\/td>";
html += "<\/tr>";
}
html += "<tr><td>"+data.division[invId].total+"<\/td><td colspan=\"5\"> "+txt[cult].total+" <\/td><td>"+data.division[defId].total+"<\/td><\/tr>";
html += "<\/table>";
$("#info_"+battId).attr('original-title', html);
$('#info_'+battId).tipsy("show");
});
}
$(document).ready(function(){
inicio(function(){
$("<style type='text/css'> .tipsy-inner{max-width:999px!important}.tipsy-inner tr:last-child span{float:right;margin:0 0 0 5px}.tipsy-inner td{min-width:30px; padding: 2px;}.middleCell{text-align:center;padding:0}</style>").appendTo("head");
$('.war_info_button').one('click', function(){
setData(this);
});
$('.war_info_button').click(function(){
var battId = $(this).attr('value');
if($('div[class="tipsy-inner"]').length === 0){
$("#info_"+battId).tipsy("show");
} else {
$("#info_"+battId).tipsy("hide");
}
});
$('.shout_button').click(function(){
$("#shout").click().val($(this).attr('value').trim());
unsafeWindow.new_post();
});
});
});