// ==UserScript==
// @name Arrangements
// @namespace http://tampermonkey.net/
// @version 1.3.8
// @description try to take over the world!
// @author AlegreVida
// @match https://s46-tr.ikariam.gameforge.com/?view=city*
// @match https://s46-tr.ikariam.gameforge.com/?view=island*
// @grant none
// @downloadURL https://update.greasyfork.icu/scripts/411524/Arrangements.user.js
// @updateURL https://update.greasyfork.icu/scripts/411524/Arrangements.meta.js
// ==/UserScript==
(function() {
'use strict';
var myIkaCookies;
var arr = [
{
script_text: "1 - Bina Yükseltmelerinde Kaynak Durumu Göster",
cookie_id: "buildingUpgrade"
},
{
script_text: "2 - Belediye Binasında Nüfusun Dolması için Kalan Süre",
cookie_id: "townHall"
},
{
script_text: "3 - Premium ve Vatandaş Tekliflerini Gizle",
cookie_id: "premiumOffers"
},
{
script_text: "4 - Tamamlanan Günlük Görevleri Gizle",
cookie_id: "dailyTasks"
},
{
script_text: "5 - Üretim Yeri İçin Gereken Bağışı Göster",
cookie_id: "donation"
},
{
script_text: "6 - Mucit Atölyesinde Tamamlanan Yükseltmeleri Gizle",
cookie_id: "workshop"
},
{
script_text: "7 - Şehirdeki Birliklerde Sadece Var Olanları Göster",
cookie_id: "unitsInCity"
},
{
script_text: "8 - Mesajlaşmada Kültürel Anlaşmaya Öncelik",
cookie_id: "culturalExchange"
},
{
script_text: "9 - Depoda Güvenli Miktara Ne Kadar Kaldığını Göster",
cookie_id: "warehouse"
},
{
script_text: "10 - Kışladaki Görünümünü Güncelle",
cookie_id: "barracks"
},
{
script_text: "11 - Donanma Tersanesindeki Görünümünü Güncelle",
cookie_id: "shipyard"
},
{
script_text: "12 - Altın Gelirini Göster",
cookie_id: "gold"
},
{
script_text: "13 - İnşaat Listesindeki Binaların Toplam Malzeme İhtiyacını Göster",
cookie_id: "amountInConstructionQueue"
},
{
script_text: "14 - Kışla İçin Ekstra Butonlar",
cookie_id: "unitAmountsInBarracks"
},
{
script_text: "15 - Tersane İçin Ekstra Butonlar",
cookie_id: "unitAmountsInShipyard"
}
];
if(getCookie("myIkaCookies") != null){
myIkaCookies = JSON.parse(getCookie("myIkaCookies"));
}else{
myIkaCookies = {
buildingUpgrade: true,
townHall: true,
premiumOffers: true,
dailyTasks: true,
donation: true,
workshop: true,
unitsInCity: true,
culturalExchange: true,
warehouse: false,
barracks: false,
shipyard: false,
gold: true,
amountInConstructionQueue: true,
unitAmountsInBarracks: false,
unitAmountsInShipyard: false
};
}
setCookie("myIkaCookies", JSON.stringify(myIkaCookies), 3);
$('#GF_toolbar>ul').append("
Script Ayarları");
$('#scriptSettings').mouseenter(function(){
$(this).css('cursor','pointer');
$('#scriptSettings').css("color", "green");
});
$('#scriptSettings').mouseleave(function(){
$('#scriptSettings').css("color", "black");
});
function displayScriptSettings(flag){
myIkaCookies = JSON.parse(getCookie("myIkaCookies"));
if(flag){
function createInputAndLabel(obj){
var cookie_id = obj.cookie_id;
var input_id = "script_" + cookie_id[0].toUpperCase() + cookie_id.substring(1);
var script_text = obj.script_text;
var check = myIkaCookies[cookie_id];
var string = "";
string += "";
string += "";
string += "
";
return string;
}
var htmlText =
"" +
"
" +
"
" +
"
" +
"" +
"
"+
"
";
$('#GF_toolbar>ul').append(htmlText);
$('#hideScriptSettings').mouseenter(function(){
$(this).css('cursor','pointer');
$('#hideScriptSettings').css("color", "red");
});
$('#hideScriptSettings').mouseleave(function(){ $('#hideScriptSettings').css("color", "black"); });
$('#hideScriptSettings').click(function(){ displayScriptSettings(false); });
}else{
$('#scriptSettingsDiv').remove();
}
}
$('#scriptSettings').click(function(){
displayScriptSettings( $('#scriptSettingsDiv').length == 0);
});
function listenerControl(){
var res = ['wood', 'marble', 'wine', 'glass', 'sulfur'];
function fnc_BuildingUpgrade(){
function spanHTML(val, type){
var res = ['wood', 'marble', 'wine', 'glass', 'sulfur'];
return ' (' + val.toLocaleString() + ')';
}
function changeSpanHTML(el, player, needed, type){
if(!isNaN(needed)){
if($(el).length){
$(el).text(' (' + (player - needed).toLocaleString() + ')');
$(el).css("color", (player - needed < 0) ? "red" : "green");
}else{
$(root).find('.' + res[type]).append(spanHTML(player - needed, type));
}
}
}
var root = $('#buildingUpgrade .resources');
var i = 0;
for(var resource of res){
var player = parseInt($('#js_GlobalMenu_' + (resource == "glass" ? "crystal" : resource)).text().replaceAll(",", ""));
var needed = parseInt($(root).find('.' + resource).clone().children().remove().end().text().replaceAll(",", ""));
changeSpanHTML($('#afterUpgrade_' + resource), player, needed, i++);
}
$(root).find('li').css("width", "150px");
}
function fnc_TownHall(){
$('#townHall .mainContentScroll').css("height", "");
if($('#timeLeftToFullyPopulate').length){
return;
}
var occupiedSpace = parseInt($('#js_TownHallOccupiedSpace').text());
var maxInhabitants = parseInt($('#js_TownHallMaxInhabitants').text());
var space = maxInhabitants - occupiedSpace;
var happiness = parseInt($('#js_TownHallHappinessLargeValue').text());
var text = "Boş Konut: " + space;
if(space > 0){
var happinessAfterFull = happiness - space;
var avgSpeed = (happiness + happinessAfterFull)/2/50;
var t = space / avgSpeed;
var timeText = Math.floor(t*60)%60 + ' dk';
if(Math.floor(t) > 0){
timeText = Math.floor(t) + ' saat ' + timeText;
}
text += ' (' + timeText + ')';
}
$('#townHall .stats .space').html(text);
}
function fnc_TownHall_PremiumOffer(){
$('#townHall .premiumOffer').remove();
}
function fnc_Barracks_PremiumOffer(){
$('#premium_btn').remove();
}
function fnc_TradeAdvisor_PremiumOffer(){
if($('#js_premiumAccountOffer').length > 0){
$('#tradeAdvisor .contentBox01h:last').remove();
$('#tradeAdvisor .mainContentScroll:first').css("height", "");
}
};
function fnc_MilitaryAdvisor_PremiumOffer(){
if($('#js_premiumAccountOffer').length > 0){
$('#militaryAdvisor .contentBox01h:last').remove();
}
}
function fnc_ResearchAdvisor_PremiumOffer(){
if($('#js_premiumAccountOffer').length > 0){
$('#researchAdvisor .contentBox01h:last').remove();
}
}
function fnc_DiplomacyAdvisor_PremiumOffer(){
if($('#js_premiumAccountOffer').length > 0){
$('#diplomacyAdvisor .contentBox01h:last').remove();
$('#diplomacyAdvisor .mainContentScroll:first').css("height", "");
}
}
function fnc_DailyTasks(){
if($('#script_ShowHideCompletedDailyTasks').length == 0){
$('#dailyTasks>.mainContentScroll>.mainContent>.buildingDescription>div:nth-of-type(1)').append('');
}
hideCompletedDaily();
clickListener_ShowHideCompletedDailyTasks();
}
function hideCompletedDaily(){
$('#dailyTasks table.table01 tr.textLineThrough').hide();
$('#dailyTasks .mainContentScroll').css("height", "");
$('#script_ShowHideCompletedDailyTasks').attr("show", "0");
$('#script_ShowHideCompletedDailyTasks').text("Tamamlananları Göster");
}
function clickListener_ShowHideCompletedDailyTasks(){
$('#script_ShowHideCompletedDailyTasks').click(function(){
if($('#script_ShowHideCompletedDailyTasks').attr("show") == "0"){
showCompletedDaily();
}else{
hideCompletedDaily();
}
});
}
function fnc_Donation(){
if($('.resUpgrade').length){
if($('li.accordionItem').length > 1){
$("li.accordionItem:last").empty();
}
var root = $('li.accordionItem:first .resUpgrade');
var totalNeeded = parseInt($("li.accordionItem li.wood:first").text().replaceAll(',', ''));
var current = parseInt($("li.accordionItem li.wood:last").text().replaceAll(',', ''));
var needed = totalNeeded - current;
$("#sidebarWidget .resUpgrade:first ul").remove();
$("#sidebarWidget .resUpgrade:first h4").remove();
if( $('#upgradeCountDown').length < 1 ){
$(root).find(".building_level").after('Gereken:
- ' + needed.toLocaleString() + '
');
}
}
}
function fnc_Workshop(){
var root_Units = $('#workshop #tabUnits .content');
var root_Ships = $('#workshop #tabShips .content');
for(var i = 1; i <= $(root_Units).find('.units').length; i++){
if( $(root_Units).find('.units:nth-child(' + i + ') a').length == 0 ){
$(root_Units).find('.units:nth-child(' + i + ')').empty();
}
}
for(var i2 = 1; i2 <= $(root_Ships).find('.units').length; i2++){
if( $(root_Ships).find('.units:nth-child(' + i2 + ') a').length == 0 ){
$(root_Ships).find('.units:nth-child(' + i2 + ')').empty();
}
}
if($(root_Units).find('.units').length == 0){
$(root_Units).empty();
$(root_Units).append(' HELAL LAN SANA !!!
');
}
if($(root_Ships).find('.units').length == 0){
$(root_Ships).empty();
$(root_Ships).append(' HELAL LAN SANA !!!
');
}
}
function fnc_UnitsInCity(){
var units_FirstRow = $('#cityMilitary #tabUnits .content:first table.table01:first');
var units_SecondRow = $('#cityMilitary #tabUnits .content:first table.table01:last');
var ships_FirstRow = $('#cityMilitary #tabShips .content table.table01:first');
var ships_SecondRow = $('#cityMilitary #tabShips .content table.table01:last');
var length_Units1 = $(units_FirstRow).find('tr.count td').length;
var length_Units2 = $(units_SecondRow).find('tr.count td').length;
var length_Ships1 = $(ships_FirstRow).find('tr.count td').length;
var length_Ships2 = $(ships_SecondRow).find('tr.count td').length;
for(var i1 = length_Units1; i1 > 1; i1--){
var root_Units1 = $(units_FirstRow).find('tr.count td:nth-child(' + i1 + ')');
var number_Units1 = $(root_Units1).text().slice(0, root_Units1.text().indexOf(' '));
if(number_Units1 === "-" || number_Units1 == "0"){
root_Units1.remove();
$(units_FirstRow).find('tr.title_img_row th:nth-child(' + i1 + ')').remove();
}
}
for(var i2 = length_Units2; i2 > 1; i2--){
var root_Units2 = $(units_SecondRow).find('tr.count td:nth-child(' + i2 + ')');
var number_Units2 = $(root_Units2).text().slice(0, root_Units2.text().indexOf(' '));
if(number_Units2 === "-" || number_Units2 == "0"){
root_Units2.remove();
$(units_SecondRow).find('tr.title_img_row th:nth-child(' + i2 + ')').remove();
}
}
for(var k1 = length_Ships1; k1 > 1; k1--){
var root_Ships1 = $(ships_FirstRow).find('tr.count td:nth-child(' + k1 + ')');
var number_Ships1 = $(root_Ships1).text().trim();
if(number_Ships1 === "-" || number_Ships1 == "0"){
root_Ships1.remove();
$(ships_FirstRow).find('tr.title_img_row th:nth-child(' + k1 + ')').remove();
}
}
for(var k2 = length_Ships2; k2 > 1; k2--){
var root_Ships2 = $(ships_SecondRow).find('tr.count td:nth-child(' + k2 + ')');
var number_Ships2 = $(root_Ships2).text().trim();
if(number_Ships2 === "-" || number_Ships2 == "0"){
root_Ships2.remove();
$(ships_SecondRow).find('tr.title_img_row th:nth-child(' + k2 + ')').remove();
}
}
if($(units_FirstRow).find('tr.count td').length == 1){
$(units_FirstRow).remove();
}
if($(units_SecondRow).find('tr.count td').length == 1){
$(units_SecondRow).remove();
}
if($(ships_FirstRow).find('tr.count td').length == 1){
$(ships_FirstRow).remove();
}
if($(ships_SecondRow).find('tr.count td').length == 1){
$(ships_SecondRow).remove();
}
}
function fnc_CulturalExchange(){
if( $('#js_treatiesConfirm option[value=77]').length ){
$('#js_treatiesConfirm option[value=77]').attr('selected', 'selected');
}
}
function fnc_Warehouse(){
if($('#warehouse').length > 0){
$('#js_total_safe_capacity').css('color', 'green');
var capacity = parseInt($('#js_total_safe_capacity').text().replaceAll(',', ''));
var arr = ["wood", "wine", "marble", "glass", "sulfur"];
for (var keyword of arr){
var total = parseInt($('#js_total_' + keyword).text().replaceAll(',', ''));
if(capacity > total){
if($('#js_stillSafe_' + keyword).length > 0){
$('#js_stillSafe_' + keyword).text('(' + (total-capacity).toLocaleString() + ')');
}else{
$('#js_plunderable_' + keyword).after('(' + (total-capacity).toLocaleString() + ')')
}
}
}
}
}
function fnc_Barracks(){
for (var i = 1; i <= $('#barracks #units li').length; i++){
var element = $('#barracks #units li:nth-of-type('+i+')');
$(element).find('div:first p').remove();
$(element).css("min-height", "100px");
$(element).find('div:first a img').css("height", "75px");
$(element).find('div:first a img').css("left", "20px");
$(element).find('div:first div').css("bottom", "16px");
$(element).find('div.forminput:first').css("bottom", "10px");
$('#buildUnits div:first p').remove();
$('#barracks .mainContentScroll:first').css("height", "");
}
}
function fnc_BarracksUnitAmount(){
fnc_UnitAmounts("barracks", [10, 50, 100], true);
}
function fnc_Shipyard(){
for (var i = 1; i <= $('#shipyard #units li').length; i++){
var element = $('#shipyard #units li:nth-of-type('+i+')');
$(element).find('div:first p').remove();
$(element).css("min-height", "100px");
$(element).find('div:first a img').css("height", "75px");
$(element).find('div:first a img').css("left", "20px");
$(element).find('div:first div').css("bottom", "16px");
$(element).find('div.forminput:first').css("bottom", "50px");
$('#buildUnits div:first p').remove();
$('#barracks .mainContentScroll:first').css("height", "");
}
}
function fnc_ShipyardUnitAmount(){
fnc_UnitAmounts("shipyard", [3, 12, 30], false);
}
function fnc_UnitAmounts(div, arr, flag){
for (var i = 1; i <= $('#' + div + ' #units li').length; i++){
var element = $('#' + div + ' #units li:nth-of-type('+i+')');
if($('#js_barracksBuyMax' + i).hasClass('invisible')){
$('#js_barracksProblemTextfield' + i).parent().css("bottom", "80px");
continue;
}
if($('#script_changeUnits_' + i).length>0){
continue;
}
var amountAlready = parseInt($('#sliderbg_barracks' + i).attr('title'));
var htmlText = "";
htmlText += "";
for(var m = 0; m < 3; m++){
for(var k = 0; k < 2; k++){
var pad = 4;
if(arr[m] < 100){
pad += 3;
if(k == 0){
pad += .5;
}
}
if(arr[m] < 10){
pad += 3;
}
if(arr[m] >= 100){
pad -= 0.5;
}
var paddingText = "2px " + pad + "px";
var marginText = (k < 1) ? ";margin-right: 6px" : "";
htmlText += "";
}
htmlText += "
";
}
htmlText += "
";
var formInput = $(element).find('div:nth-of-type(3) div:nth-of-type(2)').after(htmlText);
}
$('.changeUnitAmount').each(function(index){
$(this).on("click", function(){
var id = $(this).attr('id').split('_')[2];
var amountAlready = parseInt($('#sliderbg_barracks' + id).attr('title'));
$('#' + div + ' #units li:nth-of-type('+id+') .changeUnitAmount').each(function(index){
var attrs = $(this).attr("id").split('_');
var amount = amountAlready + (attrs[3]*(attrs[4] == 1 ? 1 : -1));
$('#' + div + ' #units li:nth-of-type('+id+') .changeUnitAmount:nth-of-type(' + (index+1) + ')').attr("onclick", "ikariam.controller.sliders['slider_barracks" + id + "'].setActualValue(" + (amount < 0 ? 0 : amount) + "); return false;");
});
});
});
$('.unit').each(function(index){
var forminput = $(this).find(".forminput");
$(forminput).css("text-align", "center");
if($(forminput).css("bottom") != "80px"){
$(forminput).css("bottom", "25px");
}
$(forminput).find("a").text("max");
if($(forminput).find(".textfieldContainer br").length == 0){
$(forminput).find("a").before("
");
}
});
function onclickText(id, amount){
return "onclick=\"ikariam.controller.sliders['slider_barracks" + id + "'].setActualValue(" + (amount < 0 ? 0 : amount) + "); return false;\"";
}
}
function fnc_DisplayGoldIncome(){
var gold = parseInt($('#js_GlobalMenu_gold_Calculation').text().replaceAll(',', ''));
var textGold = gold.toLocaleString();
if($('#script_gold').length > 0){
$('#script_gold').text("(" + textGold + ")");
}else{
$('#js_GlobalMenu_gold').append("(" + textGold + ")");
$('#js_GlobalMenu_gold').css("line-height", "19px");
}
$('#script_gold').css("color", (gold >= 0) ? "green" : "crimson");
}
function fnc_ResourceAmountsInConstructionQueue(){
if($('#constructionList h4').length == 1){
return;
}
var resourceType = ["wood","wine","marble","glass","sulfur"];
var totalResourcesInQueue = {"wood": 0, "wine":0, "marble":0, "glass": 0, "sulfur": 0};
var resourceAmountOwn = {"wood": 0, "wine":0, "marble":0, "glass": 0, "sulfur": 0};
var resourceProduce = {"wood": 0, "wine":0, "marble":0, "glass": 0, "sulfur": 0};
resourceAmountOwn["wood"] = parseInt($("#js_GlobalMenu_wood").text().replaceAll(",",""));
resourceAmountOwn["wine"] = parseInt($("#js_GlobalMenu_wine").text().replaceAll(",",""));
resourceAmountOwn["marble"] = parseInt($("#js_GlobalMenu_marble").text().replaceAll(",",""));
resourceAmountOwn["glass"] = parseInt($("#js_GlobalMenu_crystal").text().replaceAll(",",""));
resourceAmountOwn["sulfur"] = parseInt($("#js_GlobalMenu_sulfur").text().replaceAll(",",""));
resourceProduce["wood"] = parseInt($("#js_GlobalMenu_resourceProduction").text().replaceAll("-", "0"));
resourceProduce["wine"] = parseInt($("#js_GlobalMenu_production_wine").text().replaceAll("-", "0"));
resourceProduce["marble"] = parseInt($("#js_GlobalMenu_production_marble").text().replaceAll("-", "0"));
resourceProduce["glass"] = parseInt($("#js_GlobalMenu_production_crystal").text().replaceAll("-", "0"));
resourceProduce["sulfur"] = parseInt($("#js_GlobalMenu_production_sulfur").text().replaceAll("-", "0"));
console.log(resourceProduce);
var resourceIcons = {"wood": "https://s46-tr.ikariam.gameforge.com/skin/resources/icon_wood.png",
"marble": "https://s46-tr.ikariam.gameforge.com/skin/resources/icon_marble.png",
"wine": "https://s46-tr.ikariam.gameforge.com/skin/resources/icon_wine.png",
"glass": "https://s46-tr.ikariam.gameforge.com/skin/resources/icon_glass.png",
"sulfur":"https://s46-tr.ikariam.gameforge.com/skin/resources/icon_sulfur.png"};
$("#constructionList li").each(function( index ) {
$(this).find(".tooltip").find("div").each(function(ind){
if(ind >= 2) {
var resourceType = $(this).find("img").attr("src").split("_")[1];
if(resourceType == "crystal") {
resourceType = "glass";
}
var resourceAmount = parseInt($(this).find("span").html().replaceAll(",",""));
totalResourcesInQueue[resourceType] += resourceAmount;
}
});
});
if($('#script_AmountsInConstructionQueue').length == 0){
var htmlOutput = "Toplam Malzeme İhtiyacı
";
htmlOutput += '';
resourceType.forEach(function(element, index){
/*if((element == "wood" || element == "marble") && resourceProduce[element] > 0){
console.log("LISTE!!!");
var x = {
"wood" : {
'divIndex' : 3
},
"marble" : {
'divIndex' : 4
}
}
var times = $('#buildCountDown').text().split(" ");
console.log(times);
var totalMin = 0;
if(times[0].substring(times[0].length-1, times[0].length) == "s" && times[1].substring(times[1].length-2, times[1].length) == "dk"){
console.log("SAAT VE DAKİKA!");
totalMin = parseInt((times[0].split("s"))[0])*60 + parseInt((times[1].split("dk"))[0]);
}else if(times[0].substring(times[0].length-2, times[0].length) == "dk"){
console.log("DAKİKA!");
totalMin = parseInt((times[0].split("dk"))[0]);
}
console.log(totalMin + " DK");
resourceAmountOwn[element] += Math.floor(resourceProduce[element]*totalMin/60);
var length = $('#constructionList li').length;
console.log("Listedeki Bina Sayısı: " + length);
var totalNeed = 0;
var req = 0;
for(var i = 1; i < length; i++){
req += parseInt($('#constructionList li:nth-of-type(' + i + ') div.tooltip div:nth-of-type(' + x[element]['divIndex'] + ') span').text().replaceAll(',', '')) + 100;
console.log("i: " + i);
console.log("\tReq: " + req);
console.log("\AmountOwn: " + resourceAmountOwn[element]);
if(req > resourceAmountOwn[element]){
console.log("\t\tLack Of Materials!");
console.log("\t\tTotal Need Before: " + totalNeed);
totalNeed += req - (resourceAmountOwn[element]);
console.log("\t\tTotal Need After: " + totalNeed);
resourceAmountOwn[element] = req;
}
var t = $('#buildingQueue' + i).text().split(" ");
console.log("\t\t\tNew Time: " + t[0] + " " + t[1]);
var tempMin = 0;
if(t[0].substring(t[0].length-1, t[0].length) == "s" && t[1].substring(t[1].length-2, t[1].length) == "dk"){
console.log("\t\t\tSAAT VE DAKİKA!");
tempMin = parseInt(t[0].split("s")[0])*60 + parseInt(t[1].split("dk")[0]);
}else if(t[0].substring(t[0].length-2, t[0].length) == "dk"){
console.log("\t\t\tDAKİKA!");
tempMin = parseInt(t[0].split("dk")[0]);
}
console.log("\t\t\t" + totalMin + " DK");
console.log("\t\t\tÜretimden Önce: " + resourceAmountOwn[element]);
resourceAmountOwn[element] += Math.floor(resourceProduce[element]*(tempMin-totalMin)/60);
totalMin = tempMin;
console.log("\t\t\tÜretimden Sonra: " + resourceAmountOwn[element]);
}
}*/
if(totalResourcesInQueue[element] > 0 ) {
var minusDiff = '';
if(totalResourcesInQueue[element] > resourceAmountOwn[element]) {
minusDiff = '('+(resourceAmountOwn[element] - totalResourcesInQueue[element]).toLocaleString()+')';
}
htmlOutput += ' | '+totalResourcesInQueue[element].toLocaleString()+ ' ' + minusDiff + ' |
';
}
});
htmlOutput += '
';
$("#constructionList").after(htmlOutput);
}else{
resourceType.forEach(function(element, index){
if(totalResourcesInQueue[element] > 0 ) {
var minusDiff = '';
if(totalResourcesInQueue[element] > resourceAmountOwn[element]) {
minusDiff = '('+(resourceAmountOwn[element] - totalResourcesInQueue[element]).toLocaleString()+')';
}
if($('#script_' + element + '_AmountInQueue').length == 0){
var htmltext = ' | '+totalResourcesInQueue[element].toLocaleString()+ ' ' + minusDiff + ' |
';
$('#script_AmountsInConstructionQueue table').append(htmltext);
}else{
$('#script_' + element + '_AmountInQueue td:last').html(totalResourcesInQueue[element].toLocaleString() + ' ' + minusDiff);
}
}else{
$('#script_' + element + '_AmountInQueue').remove();
}
});
}
}
if(myIkaCookies.gold){
fnc_DisplayGoldIncome();
}
createListener(myIkaCookies.buildingUpgrade, "buildingUpgrade", fnc_BuildingUpgrade, false);
createListener(myIkaCookies.townHall, "townHall", fnc_TownHall, false);
createListener(myIkaCookies.premiumOffers, "townHall", fnc_TownHall_PremiumOffer, false);
createListener(myIkaCookies.premiumOffers, "barracks", fnc_Barracks_PremiumOffer, false);
createListener(myIkaCookies.premiumOffers, "tradeAdvisor", fnc_TradeAdvisor_PremiumOffer, false);
createListener(myIkaCookies.premiumOffers, "militaryAdvisor", fnc_MilitaryAdvisor_PremiumOffer, false);
createListener(myIkaCookies.premiumOffers, "researchAdvisor", fnc_ResearchAdvisor_PremiumOffer, false);
createListener(myIkaCookies.premiumOffers, "diplomacyAdvisor", fnc_DiplomacyAdvisor_PremiumOffer, false);
createListener(myIkaCookies.dailyTasks, "dailyTasks", fnc_DailyTasks, false);
createListener(myIkaCookies.donation, "", fnc_Donation, false);
createListener(myIkaCookies.workshop, "workshop", fnc_Workshop, false);
createListener(myIkaCookies.unitsInCity, "cityMilitary", fnc_UnitsInCity, false);
createListener(myIkaCookies.culturalExchange, "sendIKMessage", fnc_CulturalExchange, false);
createListener(myIkaCookies.warehouse, "warehouse", fnc_Warehouse, false);
createListener(myIkaCookies.barracks, "barracks", fnc_Barracks, false);
createListener(myIkaCookies.shipyard, "shipyard", fnc_Shipyard, false);
createListener(myIkaCookies.gold, "js_GlobalMenu_gold_Calculation", fnc_DisplayGoldIncome, true);
createListener(myIkaCookies.amountInConstructionQueue, "constructionList", fnc_ResourceAmountsInConstructionQueue, false);
createListener(myIkaCookies.unitAmountsInBarracks, "barracks", fnc_BarracksUnitAmount, false);
createListener(myIkaCookies.unitAmountsInShipyard, "shipyard", fnc_ShipyardUnitAmount, false)
}
function showCompletedDaily(){
$('#dailyTasks table.table01 tr.textLineThrough').show();
$('#dailyTasks .mainContentScroll').css("height", "");
$('#script_ShowHideCompletedDailyTasks').attr("show", "1");
$('#script_ShowHideCompletedDailyTasks').text("Tamamlananları Gizle");
}
// Araştırmadaki Listeyi Düzelt
var flag_Workshop = true;
var flag_ResearchAdvisor = true;
var listener_ResearchAdvisor = $('body').on('DOMSubtreeModified', '#researchAdvisor', fnc_ResearchAdvisor);
function fnc_ResearchAdvisor(){
if($('#researchAdvisor').length > 0 && flag_Workshop){
flag_Workshop = false;
$('#researchAdvisor #js_researchAdvisorCurrResearchesArr a').css('float', 'right');
$('#researchAdvisor #js_researchAdvisorCurrResearchesArr a').css('margin', '0');
flag_Workshop = true;
}
}
listenerControl();
$(document).ready(function() {
$(document).on('submit', '#scriptSettingsForm', function() {
var myNewCookies = {
buildingUpgrade: $('#script_BuildingUpgrade').is(":checked"),
townHall: $('#script_TownHall').is(":checked"),
premiumOffers: $('#script_PremiumOffers').is(":checked"),
dailyTasks: $('#script_DailyTasks').is(":checked"),
donation: $('#script_Donation').is(":checked"),
workshop: $('#script_Workshop').is(":checked"),
unitsInCity: $('#script_UnitsInCity').is(":checked"),
culturalExchange: $('#script_CulturalExchange').is(":checked"),
warehouse: $('#script_Warehouse').is(":checked"),
barracks: $('#script_Barracks').is(":checked"),
shipyard: $('#script_Shipyard').is(":checked"),
gold: $('#script_Gold').is(":checked"),
amountInConstructionQueue: $('#script_AmountInConstructionQueue').is(":checked"),
unitAmountsInBarracks: $('#script_UnitAmountsInBarracks').is(":checked"),
unitAmountsInShipyard: $('#script_UnitAmountsInShipyard').is(":checked")
}
eraseCookie("myIkaCookies");
setCookie("myIkaCookies", JSON.stringify(myNewCookies), 3);
window.location.reload();
return false;
});
});
/*
Example Listener
function fnc_Listener(){
function fnc(){
};
var params = {
id: 'element_id',
parent: document.querySelector('body'),
recursive: false,
done: function() {
fnc();
}
};
new MutationObserver(function(mutations) {
params.done();
}).observe(params.parent || document, {
childList: true
});
};
fnc_Listener();
????????????????????????????
const targetNode = document.getElementById('dailyTasks')[0];
const config = { attributes: true, childList: true, subtree: true };
const observer = new MutationObserver(callback);
observer.observe(targetNode, config);
observer.disconnect();
*/
//////////////////////////////////////////////////////////////////////////////////////
// LISTENER CREATOR - START
//
function createListener(flag, element_id, doneFunction, flag2){
if(!flag){
return;
}
var params = {
parent: document.querySelector('body'),
recursive: false,
done: function() {
doneFunction();
}
};
if(element_id != ""){
params.id = element_id;
}
var config = { childList: true };
if(false)
config = { characterData: true, attributes: false, childList: false, subtree: true };
new MutationObserver(function(mutations) {
params.done();
}).observe(params.parent || document, config);
}
//
// LISTENER CREATOR - END
//////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////
// COOKIES - START
//
function setCookie(key, value, expiry) {
var expires = new Date();
expires.setTime(expires.getTime() + (expiry * 24 * 60 * 60 * 1000));
document.cookie = key + '=' + value + ';expires=' + expires.toUTCString();
}
function getCookie(key) {
var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)');
return keyValue ? keyValue[2] : null;
}
function eraseCookie(key) {
var keyValue = getCookie(key);
setCookie(key, keyValue, '-1');
}
//
// COOKIES - END
//////////////////////////////////////////////////////////////////////////////////////
function fnc_BuildingsTableListener(){
function fnc_BuildingsTable(){
if($('#js_tab_premiumTradeAdvisorBuildings').hasClass('selected')){
//var city = {name:"", id:"", link:"", buildings:(new Array(30)) };
//var building = {lvl:0, status:0, link:""};
var cities = new Array($('.table01:first tr').length-1);
var cityPNG = 'skin/layout/city.png';
var buildingCounter = 0;
var allBuildings = new Array(30);
for (var x = 1; x <= $('#buildingsOverview .table01').length; x++){
for (var y = 2; y <= $('#buildingsOverview .table01:nth-of-type('+x+') tr.headingrow th').length; y++){
var th = $('#buildingsOverview .table01:nth-of-type('+x+') tr.headingrow th:nth-of-type('+y+') img');
allBuildings[buildingCounter] = { title:th.attr('title'), src:th.attr('src') };
buildingCounter = buildingCounter + 1;
}
}
console.log("Length of AllBuildings: " + allBuildings.length);
buildingCounter = 0;
for(var a = 2; a <= $('#buildingsOverview .table01:first tr').length; a++){
var link = $('#buildingsOverview .table01:first tr:nth-of-type(' + a + ') a');
var href = $('#buildingsOverview .table01:first tr:nth-of-type(' + a + ') a').attr('href');
var city = {
name:link.text(),
link:href,
id:href.slice(href.lastIndexOf('=')+1, href.length),
buildings:new Array(30)
};
cities[a-2] = city;
}
for(var i = 1; i <= $('#buildingsOverview .table01').length; i++){
var table = $('#buildingsOverview .table01:nth-of-type(' + i + ')');
for(var j = 2; j <= $(table).find('tr').length; j++){
var row = $(table).find('tr:nth-of-type(' + j + ')');
for(var k = 1; k <= $(row).find('td').length; k++){
var td = $(row).find('td:nth-of-type(' + k + ')');
var buildingLink = $(row).find('td:nth-of-type(' + k + ') a');
var flag = $(buildingLink).length > 0 ? true : false;
var build = {
lvl: flag ? $(buildingLink).text() : "-",
link: flag ? $(buildingLink).attr('href') : null,
status:0
};
if($(td).find('div.upgrade').length > 0){
build.status = 1;
}else if($(td).find('div.upgradeList').length > 0){
build.status = 2;
}
cities[j-2].buildings[(i-1)*5 + k-1] = build;
};
};
}
//var upgradeHTML = ' | ';
//var upgradeListHTML = ' | ';
while($('#buildingsOverview .content .table01').length > 1){
$('#buildingsOverview .content .table01:last').remove();
}
while($('#buildingsOverview .content .table01 tr:first th').length > 1){
$('#buildingsOverview .content .table01 tr:first th:last').remove();
}
for(var i2 = 2; i2 <= $('#buildingsOverview .content .table01 tr').length; i2++){
while($('#buildingsOverview .content .table01 tr:nth-of-type(' + i2 + ') td').length > 0){
$('#buildingsOverview .content .table01 tr:nth-of-type(' + i2 + ') td:last').remove();
}
}
var z = 0;
while(z <= 29){
$('#buildingsOverview .content .table01:first tr:nth-of-type(1)').append('![' + allBuildings[z].title + ' ' + allBuildings[z].title + '](' + allBuildings[z].src + ') | ');
z++;
}
for(var w = 2; w <= $('#buildingsOverview .content:first .table01:first tbody tr').length; w++){
var v = 0;
while(v <= 29){
if(cities[w-2].buildings[v].status == 0){
if(cities[w-2].buildings[v].link == null){
$('#buildingsOverview .content:first .table01:first tr:nth-of-type(' + w + ')').append('- | ');
}else{
$('#buildingsOverview .content:first .table01:first tr:nth-of-type(' + w + ')').append(''+ cities[w-2].buildings[v].lvl +' | ');
}
}else if(cities[w-2].buildings[v].status == 1){
$('#buildingsOverview .content:first .table01:first tr:nth-of-type(' + w + ')').append(' | ');
}else if(cities[w-2].buildings[v].status == 2){
$('#buildingsOverview .content:first .table01:first tr:nth-of-type(' + w + ')').append(' | ');
}
v = v+1;
}
}
$('#premiumTradeAdvisorBuildings').css("width", "auto");
$('.mainContentScroll:first').css("width", "auto");
$('#buildingsOverview').css("width", "auto");
$('#premiumTradeAdvisorBuildings>div.mainHeader').css("background-position-x", "center");
$('.mainContentScroll:first').css("height", "");
$('#premiumTradeAdvisorBuildings_c').css("left", "75px");
$('#premiumTradeAdvisorBuildings_c').css("top", "250px");
$('#premiumTradeAdvisorBuildings_c').css("right", "auto");
$('#premiumTradeAdvisorBuildings_c').css("z-index", "98");
$('#premiumTradeAdvisorBuildings ul.tabmenu').css("width", "100%");
$('#js_backlinkButton').css("left", "880px");
$('#premiumTradeAdvisorBuildings div.close').css("left", "900px");
//$('#buildingsOverview .content').append('');
$('#premiumTradeAdvisorBuildings>div.mainContentScroll>div.mainContent>div.center').remove();
//$('#premiumTradeAdvisor>div.mainContentScroll>div.mainContent>div.center').remove();
for(var zz = 2; zz <= $('#buildingsOverview .content:first .table01:first tr.headingrow th').length; zz++){
//$('#buildingsOverview .content:first .table01:first tr.headingrow th:nth-of-type('+zz+') img').css("width", "30px");
}
}
};
$('buildingsOverview .table01:nth-of-type(2) tr:nth-of-type(8) td:nth-of-type(4) .upgrade').text();
var params_BuildingsTable = {
id: 'premiumTradeAdvisorBuildings',
parent: document.querySelector('body'),
recursive: false,
done: function() {
fnc_BuildingsTable();
}
};
new MutationObserver(function(mutations) {
params_BuildingsTable.done();
}).observe(params_BuildingsTable.parent || document, {
childList: true
});
};
fnc_BuildingsTableListener();
function fnc_ResourceOverview(){
function ResourceOverview(){
if($('#js_ResourceOverviewTypeSelectionContainer a').css("background") == 'rgba(0, 0, 0, 0) url("https://s46-tr.ikariam.gameforge.com/skin/resources/icon_worldmap_wine.png") no-repeat scroll 5% 50% / auto padding-box border-box'){
var rowLength = $('#resourceOverview>div.content>table.overview tr').length;
var wineIdArray = [];
var notWineIdArray = [];
for(var k = 2; k < rowLength; k++){
if($('#resourceOverview>div.content>table.overview tr:nth-of-type(' + k + ') td:nth-of-type(3)').text() == "-"){
notWineIdArray.push(k);
}else{
wineIdArray.push(k);
}
}
var wine = getTotalWineInCities(wineIdArray);
var obj = createObj(notWineIdArray);
var totalConsumption = totalConsump(obj);
var flag = true;
var coef = 5;
while(flag){
obj = calculateNeeds(obj, coef);
if(getTotalNeeds(obj) < wine){
coef += 5;
}else{
flag = false;
}
}
coef -= 5;
obj = calculateNeeds(obj, coef);
updateNeedsVisually(obj);
}
};
function createObj(arr){
var obj = [];
for(var i = 0; i < arr.length; i++){
var cityId = arr[i];
obj[i] = {wineInCity:parseInt($('#resourceOverview>div.content>table.overview tr:nth-of-type(' + cityId + ') td:nth-of-type(2)').text().replaceAll(",", "")),
consumption:parseInt($('#resourceOverview>div.content>table.overview tr:nth-of-type(' + cityId + ') td:nth-of-type(7)').text().split("/")[0]),
cityName:getCityName(cityId),
needed:0,
id:cityId};
}
return obj;
}
function getCityName(cityId){
var fullName = $('#resourceOverview>div.content>table.overview tr:nth-of-type(' + cityId + ') td:nth-of-type(1)').text();
var text = fullName;
if($('#script_WineNeed_' + cityId).length > 0){
var arr = fullName.split(" ");
text = arr[0];
for (var i = 1; i < arr.length-1; i++){
text += " " + arr[i];
}
}
return text;
}
function getTotalWineInCities(arr){
var wine = 0;
for(var id of arr){
wine += parseInt($('#resourceOverview>div.content>table.overview tr:nth-of-type(' + id + ') td:nth-of-type(2)').text().replaceAll(",", ""));
}
return wine;
}
function totalConsump(obj){
var totalConsumption = 0;
for (var city of obj){
totalConsumption += city.consuption;
}
return totalConsumption;
}
function updateNeedsVisually(obj){
for (var city of obj){
var id = city.id;
var name = city.cityName;
var need = city.needed.toLocaleString();
if($('#script_WineNeed_' + id).length > 0){
$('#script_WineNeed_' + id).text("(" + need + ")");
}else{
$('#resourceOverview>div.content>table.overview tr:nth-of-type(' + id + ') td:nth-of-type(1)').html(name + " " + "(" + need + ")");
}
}
}
function calculateNeeds(obj, coef){
var hour = (obj[0].wineInCity + obj[0].consumption*coef) / obj[0].consumption;
for(var i = 0; i < obj.length; i++){
obj[i].needed = Math.floor(obj[i].consumption*hour-obj[i].wineInCity);
}
return obj;
}
function getTotalNeeds(obj){
var totalNeeded = 0;
for (var city of obj){
totalNeeded += city.needed;
}
return totalNeeded;
}
var params_Yyy = {
id: 'premiumTradeAdvisor',
parent: document.querySelector('body'),
recursive: false,
done: function() {
ResourceOverview();
}
};
new MutationObserver(function(mutations) {
params_Yyy.done();
}).observe(params_Yyy.parent || document, {
childList: true
});
};
fnc_ResourceOverview();
})();