This repository has been archived on 2023-01-26. You can view files and clone it, but cannot push or open issues or pull requests.
scripts-old/dist/bonusBarbarianVillageFinder.js

302 lines
10 KiB
JavaScript

(function () {
function $6a49e4c969cec444$export$2e2bcd8739ae039(obj, key, value) {
if (key in obj) Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
else obj[key] = value;
return obj;
}
function $f1e9793517c51c58$export$2e2bcd8739ae039(target) {
for(var i = 1; i < arguments.length; i++){
var source = arguments[i] != null ? arguments[i] : {
};
var ownKeys = Object.keys(source);
if (typeof Object.getOwnPropertySymbols === 'function') ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
}));
ownKeys.forEach(function(key) {
$6a49e4c969cec444$export$2e2bcd8739ae039(target, key, source[key]);
});
}
return target;
}
function $b1520df0e3a4699c$export$2e2bcd8739ae039(source, excluded) {
if (source == null) return {
};
var target = {
};
var sourceKeys = Object.keys(source);
var key, i;
for(i = 0; i < sourceKeys.length; i++){
key = sourceKeys[i];
if (excluded.indexOf(key) >= 0) continue;
target[key] = source[key];
}
return target;
}
function $f26b272b176e5476$export$2e2bcd8739ae039(source, excluded) {
if (source == null) return {
};
var target = $b1520df0e3a4699c$export$2e2bcd8739ae039(source, excluded);
var key, i;
if (Object.getOwnPropertySymbols) {
var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
for(i = 0; i < sourceSymbolKeys.length; i++){
key = sourceSymbolKeys[i];
if (excluded.indexOf(key) >= 0) continue;
if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
target[key] = source[key];
}
}
return target;
}
const $902f167bfdc7b30b$export$fb18762d0c18fa09 = 'https://api.tribalwarshelp.com/graphql';
var $902f167bfdc7b30b$export$2e2bcd8739ae039 = ({ query: query , variables: variables = {
} } = {
})=>{
return fetch($902f167bfdc7b30b$export$fb18762d0c18fa09, {
method: 'POST',
body: JSON.stringify({
query: query,
variables: variables
}),
headers: {
'Content-Type': 'application/json'
}
}).then((res)=>{
return res.json();
}).then(({ data: data , errors: errors })=>{
if (errors && Array.isArray(errors) && errors.length > 0) throw new Error(errors[0].message);
return new Promise((resolve)=>resolve(data)
);
});
};
const $71f792443ec67043$var$translations = {
pl_PL: {
actualCoords: 'Aktualne koordynaty',
searchBonusBarbarianVillages: 'Wyszukaj koczownicze',
village: 'Wioska',
distance: 'Dystans',
action: 'Akcja',
center: 'Wycentruj'
},
en_DK: {
actualCoords: 'Actual coords',
searchBonusBarbarianVillages: 'Search bonus barbarian villages',
village: 'Village',
distance: 'Distance',
action: 'Action',
center: 'Center'
},
de_DE: {
actualCoords: 'Aktuelle Koordinaten',
searchBonusBarbarianVillages: 'Suche Bonus-Barbarendörfer',
village: 'Dorf',
distance: 'Distanz',
action: 'Aktion',
center: 'Center'
}
};
var $71f792443ec67043$export$2e2bcd8739ae039 = ()=>$71f792443ec67043$var$translations[window.game_data.locale] || $71f792443ec67043$var$translations.en_DK
;
var $9412d55e353d4b8b$export$2e2bcd8739ae039 = ()=>window.location.host.split('.')[0]
;
const $db1dd60e5389e0c9$export$7345792e21cfc457 = (id)=>{
return window.location.origin + TribalWars.buildURL('', {
screen: 'info_ally',
id: id
});
};
const $db1dd60e5389e0c9$export$3df7b9b48f38839e = (id)=>{
return window.location.origin + TribalWars.buildURL('', {
screen: 'info_player',
id: id
});
};
const $db1dd60e5389e0c9$export$e537a41a0fc85cc5 = (id)=>{
return window.location.origin + TribalWars.buildURL('', {
screen: 'info_village',
id: id
});
};
const $db1dd60e5389e0c9$export$c6f77ec2633c38b1 = (n = '', x = 500, y = 500)=>{
const continent = 'K' + String(y)[0] + String(x)[0];
return `${n} (${x}|${y}) ${continent}`;
};
const $db1dd60e5389e0c9$export$893530ca1c0f63a2 = (distance, baseSpeed)=>{
return Math.round(distance * baseSpeed);
};
const $db1dd60e5389e0c9$export$8b4b6650247854da = (img)=>{
return image_base + img;
};
const $8f952366ce71d0fe$export$6e378131ceaf17af = (x1, y1, x2, y2)=>{
const a = x1 - x2;
const b = y1 - y2;
return Math.sqrt(a * a + b * b);
};
// ==UserScript==
// @name Bonus barbarian village finder
// @namespace https://github.com/tribalwarshelp/scripts
// @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/bonusBarbarianVillageFinder.js
// @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/bonusBarbarianVillageFinder.js
// @version 0.4.7
// @description Bonus barbarian village finder
// @author Kichiyaki https://dwysokinski.me/
// @match *://*/game.php*screen=map*
// @grant none
// ==/UserScript==
const $0e40ff93e5ed20a5$var$SERVER = $9412d55e353d4b8b$export$2e2bcd8739ae039();
const $0e40ff93e5ed20a5$var$QUERY = `
query villages($server: String!, $filter: VillageFilter, $sort: [String!], $offset: Int) {
villages(server: $server, filter: $filter, offset: $offset, sort: $sort) {
total
items {
id
name
bonus
x
y
}
}
}
`;
const $0e40ff93e5ed20a5$var$TABLE_ID = 'bonusBarbarianVillageFinderTable';
const $0e40ff93e5ed20a5$var$ACTUAL_COORDS_ID = 'actualCoords';
const $0e40ff93e5ed20a5$var$translations = $71f792443ec67043$export$2e2bcd8739ae039();
let $0e40ff93e5ed20a5$var$container = undefined;
const $0e40ff93e5ed20a5$var$buildReqOptions = (bonus, offset)=>{
return {
query: $0e40ff93e5ed20a5$var$QUERY,
variables: {
server: $0e40ff93e5ed20a5$var$SERVER,
sort: [
'id DESC'
],
filter: {
bonus: bonus,
playerID: [
0
]
},
offset: offset
}
};
};
const $0e40ff93e5ed20a5$var$loadBonusVillages = async (bonus)=>{
const { villages: villages } = await $902f167bfdc7b30b$export$2e2bcd8739ae039($0e40ff93e5ed20a5$var$buildReqOptions(bonus, 0));
for(let i = villages.length; i < villages.total; i += 1000){
const data = await $902f167bfdc7b30b$export$2e2bcd8739ae039($0e40ff93e5ed20a5$var$buildReqOptions(bonus, 0));
villages.items = [
...villages.items,
...data.villages.items
];
}
return villages;
};
const $0e40ff93e5ed20a5$var$searchBonusBarbarianVillages = async (e)=>{
e.preventDefault();
const villages = await $0e40ff93e5ed20a5$var$loadBonusVillages(parseInt(e.target[0].value));
const coords = TWMap.pos;
villages.items = villages.items.map((item)=>{
return $f1e9793517c51c58$export$2e2bcd8739ae039({
}, item, {
distance: $8f952366ce71d0fe$export$6e378131ceaf17af(coords[0], coords[1], item.x, item.y)
});
}).sort((a, b)=>a.distance - b.distance
);
document.querySelector('#' + $0e40ff93e5ed20a5$var$TABLE_ID).innerHTML = $0e40ff93e5ed20a5$var$buildTableBodyHTML(villages.items);
};
const $0e40ff93e5ed20a5$var$getBonuses = ()=>{
let bonuses = [];
for(let i in TWMap.bonus_data)bonuses.push({
value: i,
text: TWMap.bonus_data[i].text
});
return bonuses;
};
const $0e40ff93e5ed20a5$var$buildTableBodyHTML = (villages)=>{
return `
<tbody>
<tr>
<th>
${$0e40ff93e5ed20a5$var$translations.village}
</th>
<th>
${$0e40ff93e5ed20a5$var$translations.distance}
</th>
<th>
${$0e40ff93e5ed20a5$var$translations.action}
</th>
</tr>
${Array.isArray(villages) ? villages.map((village)=>`<tr>
<td>
<a href="${$db1dd60e5389e0c9$export$e537a41a0fc85cc5(village.id)}">
${$db1dd60e5389e0c9$export$c6f77ec2633c38b1(village.name, village.x, village.y)}
</a>
</td>
<td>
${village.distance.toFixed(1)}
</td>
<td>
<a href="#" onclick="return TWMap.focusUserSpecified(${village.x}, ${village.y})">${$0e40ff93e5ed20a5$var$translations.center}</a>
</td>
</tr>`
).join('') : ''}
</tbody>
`;
};
const $0e40ff93e5ed20a5$var$updateActualCoords = ()=>{
document.querySelector('#' + $0e40ff93e5ed20a5$var$ACTUAL_COORDS_ID).innerHTML = `${$0e40ff93e5ed20a5$var$translations.actualCoords}: <strong>${TWMap.pos.join('|')}</strong>`;
};
const $0e40ff93e5ed20a5$var$renderUI = ()=>{
const html = `
<p id="${$0e40ff93e5ed20a5$var$ACTUAL_COORDS_ID}"></p>
<form>
<select>
${$0e40ff93e5ed20a5$var$getBonuses().map((bonus)=>`<option value="${bonus.value}">${bonus.text}</option>`
).join('')}
</select>
<button type="submit">${$0e40ff93e5ed20a5$var$translations.searchBonusBarbarianVillages}</button>
</form>
<table class="vis" style="width: 100%;" id="${$0e40ff93e5ed20a5$var$TABLE_ID}">
${$0e40ff93e5ed20a5$var$buildTableBodyHTML()}
</table>
`;
if (!$0e40ff93e5ed20a5$var$container) {
$0e40ff93e5ed20a5$var$container = document.createElement('div');
$0e40ff93e5ed20a5$var$container.classList.add('containerBorder');
$0e40ff93e5ed20a5$var$container.style.clear = 'both';
document.querySelector('#map_big').appendChild($0e40ff93e5ed20a5$var$container);
}
$0e40ff93e5ed20a5$var$container.innerHTML = html;
$0e40ff93e5ed20a5$var$container.querySelector('form').addEventListener('submit', $0e40ff93e5ed20a5$var$searchBonusBarbarianVillages);
$0e40ff93e5ed20a5$var$updateActualCoords();
setInterval($0e40ff93e5ed20a5$var$updateActualCoords, 1000);
};
(function() {
$0e40ff93e5ed20a5$var$renderUI();
})();
})();