// ==UserScript==
// @name Arrangements
// @namespace http://tampermonkey.net/
// @version 1.0.0
// @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 none
// ==/UserScript==
(function() {
'use strict';
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');
}
var myIkaCookies;
if(getCookie("myIkaCookies") != null){
myIkaCookies = JSON.parse(getCookie("myIkaCookies"));
console.log("MY IKA COOKIES FOUND!");
}else{
myIkaCookies = {
buildingUpgrade: true,
townHall: true,
premiumOffers: true,
dailyTasks: true,
donation: true,
workshop: true,
unitsInCity: true,
culturalExchange: true,
warehouse: false,
barracks: false,
shipyard: false
};
console.log("MY IKA COOKIES NOT FOUND!");
setCookie("myIkaCookies", JSON.stringify(myIkaCookies), 3);
}
$('#GF_toolbar>ul').append("
Script Ayarları");
function displayScriptSettings(flag){
myIkaCookies = JSON.parse(getCookie("myIkaCookies"));
if(flag){
$('#GF_toolbar>ul').append(
"");
$('#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 ikaNumberStyle(num, withPlus){
var isMinus = (num < 0);
num = Math.abs(num) + "";
if(num.length > 6){
num = num.substring(0, num.length-6) + "," + num.substring(num.length-6, num.length-3) + "," + num.substring(num.length-3, num.length);
}else if(num.length > 3){
num = num.substring(0, num.length-3) + "," + num.substring(num.length-3, num.length);
}
return (isMinus ? "-" + num : ((withPlus) ? "+" : "") + num);
};
function fnc_BuildingUpgrade(){
function spanHTML(val, type){
var res = ['wood', 'marble', 'wine', 'glass', 'sulfur'];
return ' (' + ikaNumberStyle(val, 1) + ')';
}
function changeSpanHTML(el, player, needed, type){
if(!isNaN(needed)){
if($(el).length){
$(el).text(' (' + ikaNumberStyle(player - needed, 1) + ')');
$(el).css("color", (player - needed < 0) ? "red" : "green");
}else{
$(root).find('.' + res[type]).append(spanHTML(player - needed, type));
}
}
}
var root = $('#buildingUpgrade .resources');
var needed_wood = parseInt($(root).find('.wood').clone().children().remove().end().text().replace(",", ""));
var needed_marble = parseInt($(root).find('.marble').clone().children().remove().end().text().replace(",", ""));
var needed_wine = parseInt($(root).find('.wine').clone().children().remove().end().text().replace(",", ""));
var needed_glass = parseInt($(root).find('.glass').clone().children().remove().end().text().replace(",", ""));
var needed_sulfur = parseInt($(root).find('.sulfur').clone().children().remove().end().text().replace(",", ""));
var player_wood = parseInt($('#js_GlobalMenu_wood').text().replace(",", ""));
var player_marble = parseInt($('#js_GlobalMenu_marble').text().replace(",", ""));
var player_wine = parseInt($('#js_GlobalMenu_wine').text().replace(",", ""));
var player_glass = parseInt($('#js_GlobalMenu_crystal').text().replace(",", ""));
var player_sulfur = parseInt($('#js_GlobalMenu_sulfur').text().replace(",", ""));
changeSpanHTML($('#afterUpgrade_wood'), player_wood, needed_wood, 0);
changeSpanHTML($('#afterUpgrade_marble'), player_marble, needed_marble, 1);
changeSpanHTML($('#afterUpgrade_wine'), player_wine, needed_wine, 2);
changeSpanHTML($('#afterUpgrade_glass'), player_glass, needed_glass, 3);
changeSpanHTML($('#afterUpgrade_sulfur'), player_sulfur, needed_sulfur, 4);
$(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 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().replace(',', ''));
var current = parseInt($("li.accordionItem li.wood:last").text().replace(',', ''));
var needed = totalNeeded - current;
$("#sidebarWidget .resUpgrade:first ul").remove();
$("#sidebarWidget .resUpgrade:first h4").remove();
if( $('#upgradeCountDown').length < 1 ){
$(root).find(".building_level").after('Gereken:
- ' + ikaNumberStyle(needed, 0) + '
');
}
}
}
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().replace(',', ''));
var arr = ["wood", "wine", "marble", "glass", "sulfur"];
for (var keyword of arr){
var total = parseInt($('#js_total_' + keyword).text().replace(',', ''));
if(capacity > total){
if($('#js_stillSafe_' + keyword).length > 0){
$('#js_stillSafe_' + keyword).text('(' + ikaNumberStyle(total-capacity, true) + ')');
}else{
$('#js_plunderable_' + keyword).after('(' + ikaNumberStyle(total-capacity, true) + ')')
}
}
}
}
}
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", "50px");
$('#buildUnits div:first p').remove();
$('#barracks .mainContentScroll:first').css("height", "");
}
}
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();
$('#shipyard .mainContentScroll:first').css("height", "");
}
}
createListener(myIkaCookies.buildingUpgrade, "buildingUpgrade", fnc_BuildingUpgrade);
createListener(myIkaCookies.townHall, "townHall", fnc_TownHall);
createListener(myIkaCookies.premiumOffers, "townHall", fnc_TownHall_PremiumOffer);
createListener(myIkaCookies.premiumOffers, "barracks", fnc_Barracks_PremiumOffer);
createListener(myIkaCookies.premiumOffers, "tradeAdvisor", fnc_TradeAdvisor_PremiumOffer);
createListener(myIkaCookies.premiumOffers, "militaryAdvisor", fnc_MilitaryAdvisor_PremiumOffer);
createListener(myIkaCookies.premiumOffers, "researchAdvisor", fnc_ResearchAdvisor_PremiumOffer);
createListener(myIkaCookies.premiumOffers, "diplomacyAdvisor", fnc_DiplomacyAdvisor_PremiumOffer);
createListener(myIkaCookies.dailyTasks, "dailyTasks", fnc_DailyTasks);
createListener(myIkaCookies.donation, "", fnc_Donation);
createListener(myIkaCookies.workshop, "workshop", fnc_Workshop);
createListener(myIkaCookies.unitsInCity, "cityMilitary", fnc_UnitsInCity);
createListener(myIkaCookies.culturalExchange, "sendIKMessage", fnc_CulturalExchange);
createListener(myIkaCookies.warehouse, "warehouse", fnc_Warehouse);
createListener(myIkaCookies.barracks, "barracks", fnc_Barracks);
createListener(myIkaCookies.shipyard, "shipyard", fnc_Shipyard);
}
function clickListener_ShowHideCompletedDailyTasks(){
$('#script_ShowHideCompletedDailyTasks').click(function(){
if($('#script_ShowHideCompletedDailyTasks').attr("show") == "0"){
showCompletedDaily();
}else{
hideCompletedDaily();
}
});
}
function hideCompletedDaily(){
$('#dailyTasks table.table01 tr.textLineThrough').hide();
$('#dailyTasks .mainContentScroll').css("height", "");
$('#script_ShowHideCompletedDailyTasks').attr("show", "0");
$('#script_ShowHideCompletedDailyTasks').text("Tamamlananları Göster");
}
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")
}
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();
*/
function createListener(flag, element_id, doneFunction){
if(!flag){
return;
}
var params;
if(element_id == ""){
params = {
parent: document.querySelector('body'),
recursive: false,
done: function() {
doneFunction();
}
}
}else{
params = {
id: element_id,
parent: document.querySelector('body'),
recursive: false,
done: function() {
doneFunction();
}
}
}
new MutationObserver(function(mutations) {
params.done();
}).observe(params.parent || document, {
childList: true
});
}
})();