add 'can send noble' info to extendedMapPopup
This commit is contained in:
parent
76da7135b6
commit
7d41302310
|
@ -370,7 +370,22 @@ const loadInADayData = async function loadInADayData(type) {
|
|||
};
|
||||
|
||||
exports.loadInADayData = loadInADayData;
|
||||
},{"../libs/InADayParser":"dSAr"}],"fvjy":[function(require,module,exports) {
|
||||
},{"../libs/InADayParser":"dSAr"}],"XOOL":[function(require,module,exports) {
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.calcDistanceBetweenTwoPoints = void 0;
|
||||
|
||||
const calcDistanceBetweenTwoPoints = (x1, y1, x2, y2) => {
|
||||
const a = x1 - x2;
|
||||
const b = y1 - y2;
|
||||
return Math.sqrt(a * a + b * b);
|
||||
};
|
||||
|
||||
exports.calcDistanceBetweenTwoPoints = calcDistanceBetweenTwoPoints;
|
||||
},{}],"fvjy":[function(require,module,exports) {
|
||||
"use strict";
|
||||
|
||||
var _requestCreator = _interopRequireDefault(require("./libs/requestCreator"));
|
||||
|
@ -381,6 +396,8 @@ var _getCurrentServer = _interopRequireDefault(require("./utils/getCurrentServer
|
|||
|
||||
var _tribalwars = require("./utils/tribalwars");
|
||||
|
||||
var _math = require("./utils/math");
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
||||
|
@ -394,7 +411,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|||
// @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.0
|
||||
// @version 0.4.1
|
||||
// @description Bonus barbarian village finder
|
||||
// @author Kichiyaki http://dawid-wysokinski.pl/
|
||||
// @match *://*/game.php*screen=map*
|
||||
|
@ -440,10 +457,8 @@ const searchBonusBarbarianVillages = async e => {
|
|||
const villages = await loadBonusVillages(parseInt(e.target[0].value));
|
||||
const coords = TWMap.pos;
|
||||
villages.items = villages.items.map(item => {
|
||||
const a = coords[0] - item.x;
|
||||
const b = coords[1] - item.y;
|
||||
return _objectSpread(_objectSpread({}, item), {}, {
|
||||
distance: Math.sqrt(a * a + b * b)
|
||||
distance: (0, _math.calcDistanceBetweenTwoPoints)(coords[0], coords[1], item.x, item.y)
|
||||
});
|
||||
}).sort((a, b) => a.distance - b.distance);
|
||||
document.querySelector('#' + TABLE_ID).innerHTML = buildTableBodyHTML(villages.items);
|
||||
|
@ -488,4 +503,4 @@ const renderUI = () => {
|
|||
(function () {
|
||||
renderUI();
|
||||
})();
|
||||
},{"./libs/requestCreator":"Ph2E","./i18n/bonusBarbarianVillageFinder":"MRps","./utils/getCurrentServer":"DMkL","./utils/tribalwars":"fHHP"}]},{},["fvjy"], null)
|
||||
},{"./libs/requestCreator":"Ph2E","./i18n/bonusBarbarianVillageFinder":"MRps","./utils/getCurrentServer":"DMkL","./utils/tribalwars":"fHHP","./utils/math":"XOOL"}]},{},["fvjy"], null)
|
|
@ -303,12 +303,18 @@ const translations = {
|
|||
pl_PL: {
|
||||
ennobledAt: 'Podbita o',
|
||||
never: 'Nigdy',
|
||||
possibleLoyalty: 'Możliwe poparcie'
|
||||
possibleLoyalty: 'Możliwe poparcie',
|
||||
canSendNobles: 'Można wysłać szlachciców',
|
||||
yes: 'Tak',
|
||||
no: 'Nie'
|
||||
},
|
||||
en_DK: {
|
||||
ennobledAt: 'Ennobled at',
|
||||
never: 'Never',
|
||||
possibleLoyalty: 'Possible loyalty'
|
||||
possibleLoyalty: 'Possible loyalty',
|
||||
canSendNobles: 'Can send nobles',
|
||||
yes: 'Yes',
|
||||
no: 'No'
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -387,6 +393,21 @@ exports.default = void 0;
|
|||
var _default = () => window.location.host.split('.')[0];
|
||||
|
||||
exports.default = _default;
|
||||
},{}],"XOOL":[function(require,module,exports) {
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.calcDistanceBetweenTwoPoints = void 0;
|
||||
|
||||
const calcDistanceBetweenTwoPoints = (x1, y1, x2, y2) => {
|
||||
const a = x1 - x2;
|
||||
const b = y1 - y2;
|
||||
return Math.sqrt(a * a + b * b);
|
||||
};
|
||||
|
||||
exports.calcDistanceBetweenTwoPoints = calcDistanceBetweenTwoPoints;
|
||||
},{}],"KWxH":[function(require,module,exports) {
|
||||
"use strict";
|
||||
|
||||
|
@ -426,6 +447,8 @@ var _formatDate = _interopRequireDefault(require("./utils/formatDate"));
|
|||
|
||||
var _getCurrentServer = _interopRequireDefault(require("./utils/getCurrentServer"));
|
||||
|
||||
var _math = require("./utils/math");
|
||||
|
||||
var _localStorage = require("./utils/localStorage");
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
@ -435,14 +458,14 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|||
// @namespace https://github.com/tribalwarshelp/scripts
|
||||
// @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedMapPopup.js
|
||||
// @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedMapPopup.js
|
||||
// @version 0.4.0
|
||||
// @version 0.5.0
|
||||
// @description Extended Map Popup
|
||||
// @author Kichiyaki http://dawid-wysokinski.pl/
|
||||
// @match *://*/game.php*screen=map*
|
||||
// @grant none
|
||||
// ==/UserScript==
|
||||
const SERVER = (0, _getCurrentServer.default)();
|
||||
const CURR_SERVER_CONFIG = "\n query server($key: String!) {\n server(key: $key) {\n config {\n speed\n }\n }\n }\n";
|
||||
const CURR_SERVER_CONFIG = "\n query server($key: String!) {\n server(key: $key) {\n config {\n speed\n snob {\n maxDist\n }\n }\n }\n }\n";
|
||||
const LAST_VILLAGE_CONQUER_QUERY = "\n query ennoblements($server: String!, $filter: EnnoblementFilter!) {\n ennoblements(server: $server, filter: $filter) {\n items {\n ennobledAt\n village {\n id\n }\n }\n }\n }\n";
|
||||
const SERVER_CONFIG_LOCAL_STORAGE_KEY = 'kiszkowaty_extended_map_popup_server_cfg';
|
||||
const translations = (0, _extendedMapPopup.default)();
|
||||
|
@ -463,7 +486,7 @@ const isConfigExpired = date => {
|
|||
const loadServerConfig = async () => {
|
||||
let data = loadServerConfigFromLocalStorage();
|
||||
|
||||
if (!data || !data.server || isConfigExpired(new Date(data.loadedAt))) {
|
||||
if (!data || !data.server || isConfigExpired(new Date(data.loadedAt)) || !data.server.config || !data.server.config.speed || !data.server.config.snob || !data.server.config.snob.maxDist) {
|
||||
data = await (0, _requestCreator.default)({
|
||||
query: CURR_SERVER_CONFIG,
|
||||
variables: {
|
||||
|
@ -514,7 +537,8 @@ const calcLoyalty = (ennobledAt, speed) => {
|
|||
return Math.floor(loyalty);
|
||||
};
|
||||
|
||||
const renderAdditionalInfo = (data, cfg) => {
|
||||
const renderAdditionalInfo = (id, data, cfg) => {
|
||||
const coords = TWMap.CoordByXY(TWMap.villageKey[id]);
|
||||
const ennoblement = data && data.ennoblements && data.ennoblements.items && data.ennoblements.items.length > 0 ? data.ennoblements.items[0] : undefined;
|
||||
const parent = document.querySelector('#map_popup #info_content tbody');
|
||||
let lastEnnobledAt = parent.querySelector('#lastEnnobledAt');
|
||||
|
@ -535,22 +559,33 @@ const renderAdditionalInfo = (data, cfg) => {
|
|||
}
|
||||
|
||||
loyalty.innerHTML = "\n <td>\n ".concat(translations.possibleLoyalty, ":\n </td>\n <td>\n ").concat(ennoblement ? calcLoyalty(new Date(ennoblement.ennobledAt), cfg.speed) : 100, "\n </td>\n ");
|
||||
let canSendNobles = parent.querySelector('#canSendNobles');
|
||||
|
||||
if (!canSendNobles) {
|
||||
canSendNobles = document.createElement('tr');
|
||||
canSendNobles.id = 'canSendNobles';
|
||||
parent.appendChild(canSendNobles);
|
||||
}
|
||||
|
||||
console.log(coords);
|
||||
canSendNobles.innerHTML = "\n <td>\n ".concat(translations.canSendNobles, ":\n </td>\n <td>\n ").concat((0, _math.calcDistanceBetweenTwoPoints)(coords[0], coords[1], window.game_data.village.x, window.game_data.village.y) < cfg.snob.maxDist ? translations.yes : translations.no, "\n </td>\n ");
|
||||
};
|
||||
|
||||
const createLoadVillageHandler = cfg => async e => {
|
||||
TWMap.popup._loadVillage(e);
|
||||
|
||||
const data = await loadVillageData(parseInt(e));
|
||||
renderAdditionalInfo(data, cfg);
|
||||
renderAdditionalInfo(parseInt(e), data, cfg);
|
||||
};
|
||||
|
||||
const createDisplayForVillageHandler = cfg => async (e, a, t) => {
|
||||
TWMap.popup._displayForVillage(e, a, t);
|
||||
|
||||
console.log('_displayForVillage', a, t);
|
||||
const data = await loadVillageData(parseInt(e.id), {
|
||||
cacheOnly: window.game_data.features.Premium.active
|
||||
});
|
||||
renderAdditionalInfo(data, cfg);
|
||||
renderAdditionalInfo(parseInt(e.id), data, cfg);
|
||||
};
|
||||
|
||||
(async function () {
|
||||
|
@ -565,4 +600,4 @@ const createDisplayForVillageHandler = cfg => async (e, a, t) => {
|
|||
console.log('extended map popup', error);
|
||||
}
|
||||
})();
|
||||
},{"date-fns/differenceInMinutes":"oGJj","./i18n/extendedMapPopup":"ddIN","./libs/requestCreator":"Ph2E","./utils/formatDate":"V6Mf","./utils/getCurrentServer":"DMkL","./utils/localStorage":"KWxH"}]},{},["HdqX"], null)
|
||||
},{"date-fns/differenceInMinutes":"oGJj","./i18n/extendedMapPopup":"ddIN","./libs/requestCreator":"Ph2E","./utils/formatDate":"V6Mf","./utils/getCurrentServer":"DMkL","./utils/math":"XOOL","./utils/localStorage":"KWxH"}]},{},["HdqX"], null)
|
|
@ -2,13 +2,14 @@ import requestCreator from './libs/requestCreator';
|
|||
import getTranslations from './i18n/bonusBarbarianVillageFinder';
|
||||
import getCurrentServer from './utils/getCurrentServer';
|
||||
import { formatVillageURL, formatVillageName } from './utils/tribalwars';
|
||||
import { calcDistanceBetweenTwoPoints } from './utils/math';
|
||||
|
||||
// ==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.0
|
||||
// @version 0.4.1
|
||||
// @description Bonus barbarian village finder
|
||||
// @author Kichiyaki http://dawid-wysokinski.pl/
|
||||
// @match *://*/game.php*screen=map*
|
||||
|
@ -67,11 +68,14 @@ const searchBonusBarbarianVillages = async (e) => {
|
|||
|
||||
villages.items = villages.items
|
||||
.map((item) => {
|
||||
const a = coords[0] - item.x;
|
||||
const b = coords[1] - item.y;
|
||||
return {
|
||||
...item,
|
||||
distance: Math.sqrt(a * a + b * b),
|
||||
distance: calcDistanceBetweenTwoPoints(
|
||||
coords[0],
|
||||
coords[1],
|
||||
item.x,
|
||||
item.y
|
||||
),
|
||||
};
|
||||
})
|
||||
.sort((a, b) => a.distance - b.distance);
|
||||
|
|
|
@ -3,6 +3,7 @@ import getTranslations from './i18n/extendedMapPopup';
|
|||
import requestCreator from './libs/requestCreator';
|
||||
import formatDate from './utils/formatDate';
|
||||
import getCurrentServer from './utils/getCurrentServer';
|
||||
import { calcDistanceBetweenTwoPoints } from './utils/math';
|
||||
import { setItem, getItem } from './utils/localStorage';
|
||||
|
||||
// ==UserScript==
|
||||
|
@ -10,7 +11,7 @@ import { setItem, getItem } from './utils/localStorage';
|
|||
// @namespace https://github.com/tribalwarshelp/scripts
|
||||
// @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedMapPopup.js
|
||||
// @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedMapPopup.js
|
||||
// @version 0.4.0
|
||||
// @version 0.5.0
|
||||
// @description Extended Map Popup
|
||||
// @author Kichiyaki http://dawid-wysokinski.pl/
|
||||
// @match *://*/game.php*screen=map*
|
||||
|
@ -23,6 +24,9 @@ const CURR_SERVER_CONFIG = `
|
|||
server(key: $key) {
|
||||
config {
|
||||
speed
|
||||
snob {
|
||||
maxDist
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -57,7 +61,15 @@ const isConfigExpired = (date) => {
|
|||
|
||||
const loadServerConfig = async () => {
|
||||
let data = loadServerConfigFromLocalStorage();
|
||||
if (!data || !data.server || isConfigExpired(new Date(data.loadedAt))) {
|
||||
if (
|
||||
!data ||
|
||||
!data.server ||
|
||||
isConfigExpired(new Date(data.loadedAt)) ||
|
||||
!data.server.config ||
|
||||
!data.server.config.speed ||
|
||||
!data.server.config.snob ||
|
||||
!data.server.config.snob.maxDist
|
||||
) {
|
||||
data = await requestCreator({
|
||||
query: CURR_SERVER_CONFIG,
|
||||
variables: {
|
||||
|
@ -102,7 +114,8 @@ const calcLoyalty = (ennobledAt, speed) => {
|
|||
return Math.floor(loyalty);
|
||||
};
|
||||
|
||||
const renderAdditionalInfo = (data, cfg) => {
|
||||
const renderAdditionalInfo = (id, data, cfg) => {
|
||||
const coords = TWMap.CoordByXY(TWMap.villageKey[id]);
|
||||
const ennoblement =
|
||||
data &&
|
||||
data.ennoblements &&
|
||||
|
@ -149,12 +162,36 @@ const renderAdditionalInfo = (data, cfg) => {
|
|||
}
|
||||
</td>
|
||||
`;
|
||||
|
||||
let canSendNobles = parent.querySelector('#canSendNobles');
|
||||
if (!canSendNobles) {
|
||||
canSendNobles = document.createElement('tr');
|
||||
canSendNobles.id = 'canSendNobles';
|
||||
parent.appendChild(canSendNobles);
|
||||
}
|
||||
canSendNobles.innerHTML = `
|
||||
<td>
|
||||
${translations.canSendNobles}:
|
||||
</td>
|
||||
<td>
|
||||
${
|
||||
calcDistanceBetweenTwoPoints(
|
||||
coords[0],
|
||||
coords[1],
|
||||
window.game_data.village.x,
|
||||
window.game_data.village.y
|
||||
) < cfg.snob.maxDist
|
||||
? translations.yes
|
||||
: translations.no
|
||||
}
|
||||
</td>
|
||||
`;
|
||||
};
|
||||
|
||||
const createLoadVillageHandler = (cfg) => async (e) => {
|
||||
TWMap.popup._loadVillage(e);
|
||||
const data = await loadVillageData(parseInt(e));
|
||||
renderAdditionalInfo(data, cfg);
|
||||
renderAdditionalInfo(parseInt(e), data, cfg);
|
||||
};
|
||||
|
||||
const createDisplayForVillageHandler = (cfg) => async (e, a, t) => {
|
||||
|
@ -162,7 +199,7 @@ const createDisplayForVillageHandler = (cfg) => async (e, a, t) => {
|
|||
const data = await loadVillageData(parseInt(e.id), {
|
||||
cacheOnly: window.game_data.features.Premium.active,
|
||||
});
|
||||
renderAdditionalInfo(data, cfg);
|
||||
renderAdditionalInfo(parseInt(e.id), data, cfg);
|
||||
};
|
||||
|
||||
(async function () {
|
||||
|
|
|
@ -3,11 +3,17 @@ const translations = {
|
|||
ennobledAt: 'Podbita o',
|
||||
never: 'Nigdy',
|
||||
possibleLoyalty: 'Możliwe poparcie',
|
||||
canSendNobles: 'Można wysłać szlachciców',
|
||||
yes: 'Tak',
|
||||
no: 'Nie',
|
||||
},
|
||||
en_DK: {
|
||||
ennobledAt: 'Ennobled at',
|
||||
never: 'Never',
|
||||
possibleLoyalty: 'Possible loyalty',
|
||||
canSendNobles: 'Can send nobles',
|
||||
yes: 'Yes',
|
||||
no: 'No',
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
export const calcDistanceBetweenTwoPoints = (x1, y1, x2, y2) => {
|
||||
const a = x1 - x2;
|
||||
const b = y1 - y2;
|
||||
return Math.sqrt(a * a + b * b);
|
||||
};
|
Reference in New Issue