-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgold_club_oasis_marker.user.js
More file actions
129 lines (107 loc) · 4.08 KB
/
Copy pathgold_club_oasis_marker.user.js
File metadata and controls
129 lines (107 loc) · 4.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
// ==UserScript==
// @name Gold Club Oasis Marker
// @namespace GC
// @include http://*.travian.us/build.php?gid=16&tt=100*
// ==/UserScript==
function getDistance(x1, y1, x2, y2)
{
xDis = Math.abs(x1 - x2);
yDis = Math.abs(y1 - y2);
xPy = xDis * xDis;
yPy = yDis * yDis;
totalDis = Math.sqrt(xPy + yPy);
floatedDis = Math.round(100 * totalDis) / 100;
return floatedDis;
}
function getTSEffectMultiplier(origin)
{
for (nums in document.getElementsByTagName('div'))
{
cell = document.getElementsByTagName('div')[nums];
if (cell.className == 'cox')
{
xCo = document.getElementsByTagName('div')[nums].innerHTML.substring(1);
yCo = document.getElementsByTagName('div')[nums * 1 + 2].innerHTML.substring(0, document.getElementsByTagName('div')[nums * 1 + 2].innerHTML.length - 1);
vilRoot = document.getElementsByTagName('div')[nums - 1];
vil = vilRoot.innerHTML.substring(vilRoot.innerHTML.indexOf('>'), vilRoot.length)
vil = vil.substring(1, vil.indexOf('<'))
if (xCo == origin[0] && yCo == origin[1])
{
tsEffectMultiplier = (vil.indexOf('+') > 0) ? 1 + (vil.substring(vil.indexOf('+') + 1) * 0.1) : 1;
return tsEffectMultiplier
}
}
}
return false;
}
function getDistanceTSEffect(distance, tsEffect)
{
if (distance <= 30)
{
return distance;
}
tsEffectedDistance = distance - 30;
tsEffectedDistance *= (1 / tsEffect);
tsEffectedDistance += 30;
return tsEffectedDistance;
}
function existsCloserVillage(origin, dest, cluster)
{
originTSEffect = getTSEffectMultiplier(origin);
startingDistance = getDistanceTSEffect(getDistance(origin[0], origin[1], dest[0], dest[1]), originTSEffect);
for (nums in document.getElementsByTagName('div'))
{
cell = document.getElementsByTagName('div')[nums];
if (cell.className == 'cox')
{
xCo = document.getElementsByTagName('div')[nums].innerHTML.substring(1);
yCo = document.getElementsByTagName('div')[nums * 1 + 2].innerHTML.substring(0, document.getElementsByTagName('div')[nums * 1 + 2].innerHTML.length - 1);
vilRoot = document.getElementsByTagName('div')[nums - 1];
vil = vilRoot.innerHTML.substring(vilRoot.innerHTML.indexOf('>'), vilRoot.length)
vil = vil.substring(1, vil.indexOf('<'))
tsEffect = getTSEffectMultiplier(Array(xCo, yCo));
distanceToTarget = getDistanceTSEffect(getDistance(xCo, yCo, dest[0], dest[1]), tsEffect);
if (distanceToTarget < (startingDistance - cluster))
{
info = Array(xCo, yCo, vil);
return info;
}
}
}
return false;
}
function runTasks()
{
for (goldRow in document.getElementsByTagName('tr'))
{
if (goldRow * 1 != goldRow)
{
continue;
}
goldRow *= 1;
if (document.getElementsByTagName('tr')[goldRow].childNodes.length > 3)
{
if (document.getElementsByTagName('tr')[goldRow].childNodes[2].className != "vil")
{
continue;
}
}
cell = document.getElementsByTagName('tr')[goldRow].innerHTML;
if (cell.indexOf('Unoccupied Oasis') > 1)
{
cell = cell.substr(cell.indexOf("(") + 1, cell.length)
$calcCoords = cell.substr(0, cell.indexOf(")")).split("|");
$startingCoords = document.title.toString().substring(document.title.toString().indexOf('(') + 1, document.title.toString().indexOf(')')).split('|');
closerVillage = existsCloserVillage($startingCoords, $calcCoords, 3)
if (closerVillage == false)
{
document.getElementsByTagName('tr')[goldRow].childNodes[2].childNodes[1].innerHTML += ' <font color="red">!!</font> ';
} else {
document.getElementsByTagName('tr')[goldRow].childNodes[2].childNodes[1].innerHTML += ' <font style="color: red; font-weight: normal; text-variant: small-caps; font-size-adjust: 0.4">' + closerVillage[2] + '</font> ';
}
} else {
continue;
}
}
}
runTasks();