// ==UserScript==
// @name Liczenie odleglosci do podlinkowanych wiosek
// @namespace [url]http://your.homepage/[/url]
// @version 0.5
// @description Skrypt dopisuje do linków do wiosek odległość do nich z aktywnej wioski
// @author Mosze
// @match [url]https://*.plemiona.pl/*[/url]
// @grant none
// ==/UserScript==
// Changelog:
// 0.5: obsługa nowego formatu linków, obsługa protokołu https - autor: lol2x
// 0.4: po wskazaniu na odległość, skrypt oblicza dodatkowo czas podróży
// poszczególnych jednostek oraz ich hipotetyczny czas dotarcia
// 0.3: obsługa linków dodatkowo w raportach
// 0.2: obsługa linków w wiadomościach prywatnych, oprócz tych na forum
// obsługa wszystkich polskich światów
// 0.1: pierwsza wersja skryptu
var unit_speed = /* prędkość gry: */ 1.5 * /* prędkość jednostek: */ 0.8;
$(function() {
var my_coords = $("#menu_row2 b.nowrap").html().split(/[(|)]/);
var my_x = my_coords[1]|0;
var my_y = my_coords[2]|0;
console.log(my_coords);
$('a[href*="info_village"]').each(function() {
var desc = $(this).html();
console.log(desc);
var match = desc.match(/\(([0-9]{1,3})\|([0-9]{1,3})\) K[0-9]{1,2} $/);
if (!match) return;
var o_x = match[1]|0;
var o_y = match[2]|0;
var dist = Math.sqrt((my_x - o_x)*(my_x - o_x) + (my_y - o_y)*(my_y - o_y));
var dist_r = Math.round(dist);
var popup;
var span = $("<span> (odl. "+dist_r+")</span>")
.css("position", "relative")
.hover(function() {
popup = $("<div></div>").css({
position: "absolute",
top: "1.5em",
background: "white",
display: "inline-table",
"z-index": 100
});
$.each({
9: "<img src='/graphic/unit/unit_spy.png'>",
10: "<img src='/graphic/unit/unit_light.png'>"+
"<img src='/graphic/unit/unit_marcher.png'>"+
"<img src='/graphic/unit/unit_knight.png'>",
11: "<img src='/graphic/unit/unit_heavy.png'>",
18: "<img src='/graphic/unit/unit_spear.png'>"+
"<img src='/graphic/unit/unit_axe.png'>"+
"<img src='/graphic/unit/unit_archer.png'>",
22: "<img src='/graphic/unit/unit_sword.png'>",
30: "<img src='/graphic/unit/unit_ram.png'>"+
"<img src='/graphic/unit/unit_catapult.png'>",
35: "<img src='/graphic/unit/unit_snob.png'>"
}, function(velo, html) {
velo = velo|0;
var tlen = dist * velo / unit_speed;
var zeropad = function(num, count) {
return [Math.pow(10, count - num.toString().length), num].join('').substr(1);
};
var dateformat = function(t) {
return zeropad(t.getDate(), 2) + "." + zeropad(t.getMonth() + 1, 2) + "." + t.getFullYear().toString() +
" (" + ["Nie", "Pon", "Wto", "Śro", "Czw", "Pią", "Sob"][t.getDay()] + ") " +
zeropad(t.getHours(), 2) + ":" + zeropad(t.getMinutes(), 2) + ":" + zeropad(t.getSeconds(), 2);
};
var tlen_h = zeropad(tlen/60|0,2);
var tlen_m = zeropad(tlen%60|0,2);
var tlen_s = zeropad(tlen*60%60|0,2);
var tlen_f = ""+tlen_h+":"+tlen_m+":"+tlen_s;
var time = dateformat(new Date(Date.now() + tlen * 60000));
var row = $("<tr></tr>").appendTo(popup);
$("<td>"+html+"</td>").appendTo(row);
$("<td>"+tlen_f+"</td>").appendTo(row);
$("<td>"+time+"</td>").appendTo(row);
});
popup.appendTo(span);
}, function() {
popup && popup.remove();
});
$(this).append(span);
});
});