// ==UserScript==
// @name Grepolis Academy Overview
// @name:de Grepolis Akademie Übersicht
// @name:en Grepolis Academy Overview
// @namespace grepolis
// @description Grepolis: List all researches of all towns
// @description:de Grepolis: Eine Übersicht über alle Forschungen aller Städte.
// @description:en Grepolis: List all researches of all towns
// @include http://*.grepolis.*
// @include http://*.grepolis.com/game/*
// @include https://*.grepolis.com/game/*
// @exclude http://forum.*.grepolis.*
// @exclude http://wiki.*.grepolis.*
// @icon http://s3.amazonaws.com/uso_ss/icon/185038/large.png?1385676234
// @version 2.15
// @grant GM_listValues
// @grant GM_getValue
// @grant GM_setValue
// @grant GM_deleteValue
// @grant GM_info
// @grant GM_xmlhttpRequest
// ==/UserScript==
/************************************************************************
* Main Script
***********************************************************************/
function XR_main_script(DATA) {
/************************************************************************
* Global variables
***********************************************************************/
var XR = {};
var wID = Game.world_id;
var mID = Game.market_id;
var aID = Game.alliance_id;
var sID = Game.player_id;
var pName = Game.player_name;
$(".tb_activities").css("left","227px");
$(".toolbar_buttons").append('\
\
');
$("#BTN_academyoverview").click(function() {
XR.Functions.academyOverview();
});
/************************************************************************
* Languages
***********************************************************************/
XR.Lang = {
get : function (a, b) {
if (XR.Lang[mID] !== undefined && XR.Lang[mID][a] !== undefined && XR.Lang[mID][a][b] !== undefined) {
return XR.Lang[mID][a][b];
} else if (XR.Lang[mID] !== undefined && XR.Lang[mID][a] !== undefined) {
return XR.Lang[mID][a];
} else if (XR.Lang.en !== undefined && XR.Lang.en[a] !== undefined && XR.Lang.en[a][b] !== undefined) {
return XR.Lang.en[a][b];
} else {
return XR.Lang.en[a];
}
},
de : {
meta : {
lang : 'deutsch'
},
academyoverview :"Akademie-Übersicht",
research_technology :"Technologie erforschen",
reset_technology :"Forschung zurücksetzen",
confirm_reset_technology :"Bestätigungsabfrage beim Zurücksetzen einer Forschung",
save :"Speichern"
},
en : {
meta : {
lang : 'english'
},
academyoverview :"Academy Overview",
research_technology :"Research technology",
reset_technology :"Reset technology",
confirm_reset_technology :"Confirmation prompt when reset a technology",
save :"Save"
}
};
/************************************************************************
* Ajax Call functions
***********************************************************************/
XR.CallAjaxFunction = {
player : {
index : function () {
XR.Functions.SettingsWindow();
},
},
notify : {
fetch : function () {
console.log("fetch");
console.log(document.URL);
},
}
};
/************************************************************************
* Functions
***********************************************************************/
XR.Functions = {
academyOverview : function () {
var wnd = GPWindowMgr.Create(GPWindowMgr.TYPE_XR_ACADEMYOVERVIEW) || GPWindowMgr.getOpenFirst(GPWindowMgr.TYPE_XR_ACADEMYOVERVIEW);
var research_ids = [];
for (i=1; i<=34; i=i+3) {
$.each(GameData.researches, function () {
if ($(this)[0].building_dependencies.academy==i) {
research_ids.push($(this)[0].id);
}
});
}
var factor = Math.min(Math.max(Math.ceil(research_ids.length/3), 10), 13);
wincontent = '\
\
';
// les 5 premieres image http://gpde.innogamescdn.com/images/game/survey/survey_sprite.png
wnd.setContent(wincontent);
if (research_ids.length>0) {
$("#header").append('');
$("#moveleft").click(function(){
if (parseInt($("#academyoverview_header").css("left"))<0) {
$(".academyoverview_movetab").animate({left:'+='+factor*46+'px'},"slow");
} else {
$(".academyoverview_movetab").animate({left:'-'+(Math.ceil(research_ids.length/factor)-1)*factor*46+'px'},"slow");
}
});
$("#moveright").click(function(){
if (parseInt($("#academyoverview_header").css("left"))<=(Math.ceil(research_ids.length/factor)-1)*factor*-46) {
$(".academyoverview_movetab").animate({left:'0px'},"slow");
} else {
$(".academyoverview_movetab").animate({left:'-='+factor*46+'px'},"slow");
}
});
}
$.each(research_ids, function(i, val) {
if (research_ids[i]=="take_over") {
$("#academyoverview_header").append('');
} else {
$("#academyoverview_header").append('\
\
');
}
});
for (i=research_ids.length; i<=Math.floor(research_ids.length/factor+1)*factor; i++) {
$("#academyoverview_header").append('');
}
XRTownNames = [];
for (i=0; i\
\
\
\
\
\
');
for (j=0; j\
\
\
\
\
');
} else if (ITowns.towns[XRtownid].researches().attributes[research_ids[j]]===true) {
XR_researchDown = (DATA.XR_reset_technology!=="checked") ? '' : '