fix calcAttackDuration formula, refactor

This commit is contained in:
Dawid Wysokiński 2021-01-03 13:13:05 +01:00
parent 2d446c7c4a
commit 05d038b09b
32 changed files with 294 additions and 729 deletions

View File

@ -202,36 +202,36 @@ exports.default = _default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.buildImgURL = exports.calcAttackDuration = exports.formatVillageName = exports.formatVillageURL = exports.formatPlayerURL = exports.formatTribeURL = void 0;
exports.buildImgURL = exports.calcAttackDuration = exports.buildVillageName = exports.buildVillageURL = exports.buildPlayerURL = exports.buildTribeURL = void 0;
const formatTribeURL = id => {
const buildTribeURL = id => {
return window.location.origin + TribalWars.buildURL('', {
screen: 'info_ally',
id
});
};
exports.formatTribeURL = formatTribeURL;
exports.buildTribeURL = buildTribeURL;
const formatPlayerURL = id => {
const buildPlayerURL = id => {
return window.location.origin + TribalWars.buildURL('', {
screen: 'info_player',
id
});
};
exports.formatPlayerURL = formatPlayerURL;
exports.buildPlayerURL = buildPlayerURL;
const formatVillageURL = id => {
const buildVillageURL = id => {
return window.location.origin + TribalWars.buildURL('', {
screen: 'info_village',
id
});
};
exports.formatVillageURL = formatVillageURL;
exports.buildVillageURL = buildVillageURL;
const formatVillageName = function formatVillageName() {
const buildVillageName = function buildVillageName() {
let n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
let x = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;
let y = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 500;
@ -239,10 +239,10 @@ const formatVillageName = function formatVillageName() {
return "".concat(n, " (").concat(x, "|").concat(y, ") ").concat(continent);
};
exports.formatVillageName = formatVillageName;
exports.buildVillageName = buildVillageName;
const calcAttackDuration = (distance, unitSpeed, baseSpeed) => {
return Math.round(distance * baseSpeed / unitSpeed);
const calcAttackDuration = (distance, baseSpeed) => {
return Math.round(distance * baseSpeed);
};
exports.calcAttackDuration = calcAttackDuration;
@ -276,10 +276,14 @@ var _bonusBarbarianVillageFinder = _interopRequireDefault(require("./i18n/bonusB
var _getCurrentServer = _interopRequireDefault(require("./utils/getCurrentServer"));
var _tribalwars = require("./utils/tribalwars");
var twutils = _interopRequireWildcard(require("./utils/tribalwars"));
var _math = require("./utils/math");
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
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; }
@ -360,7 +364,7 @@ const getBonuses = () => {
};
const buildTableBodyHTML = villages => {
return "\n <tbody>\n <tr>\n <th>\n ".concat(translations.village, "\n </th>\n <th>\n ").concat(translations.distance, "\n </th>\n <th>\n ").concat(translations.action, "\n </th>\n </tr>\n ").concat(Array.isArray(villages) ? villages.map(village => "<tr>\n <td>\n <a href=\"".concat((0, _tribalwars.formatVillageURL)(village.id), "\">\n ").concat((0, _tribalwars.formatVillageName)(village.name, village.x, village.y), "\n </a>\n </td>\n <td>\n ").concat(village.distance.toFixed(1), "\n </td>\n <td>\n <a href=\"#\" onclick=\"return TWMap.focusUserSpecified(").concat(village.x, ", ").concat(village.y, ")\">Center</a>\n </td>\n </tr>")).join('') : '', "\n </tbody>\n ");
return "\n <tbody>\n <tr>\n <th>\n ".concat(translations.village, "\n </th>\n <th>\n ").concat(translations.distance, "\n </th>\n <th>\n ").concat(translations.action, "\n </th>\n </tr>\n ").concat(Array.isArray(villages) ? villages.map(village => "<tr>\n <td>\n <a href=\"".concat(twutils.buildVillageURL(village.id), "\">\n ").concat(twutils.buildVillageName(village.name, village.x, village.y), "\n </a>\n </td>\n <td>\n ").concat(village.distance.toFixed(1), "\n </td>\n <td>\n <a href=\"#\" onclick=\"return TWMap.focusUserSpecified(").concat(village.x, ", ").concat(village.y, ")\">Center</a>\n </td>\n </tr>")).join('') : '', "\n </tbody>\n ");
};
const updateActualCoords = () => {

View File

@ -2999,36 +2999,36 @@ exports.setItem = setItem;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.buildImgURL = exports.calcAttackDuration = exports.formatVillageName = exports.formatVillageURL = exports.formatPlayerURL = exports.formatTribeURL = void 0;
exports.buildImgURL = exports.calcAttackDuration = exports.buildVillageName = exports.buildVillageURL = exports.buildPlayerURL = exports.buildTribeURL = void 0;
const formatTribeURL = id => {
const buildTribeURL = id => {
return window.location.origin + TribalWars.buildURL('', {
screen: 'info_ally',
id
});
};
exports.formatTribeURL = formatTribeURL;
exports.buildTribeURL = buildTribeURL;
const formatPlayerURL = id => {
const buildPlayerURL = id => {
return window.location.origin + TribalWars.buildURL('', {
screen: 'info_player',
id
});
};
exports.formatPlayerURL = formatPlayerURL;
exports.buildPlayerURL = buildPlayerURL;
const formatVillageURL = id => {
const buildVillageURL = id => {
return window.location.origin + TribalWars.buildURL('', {
screen: 'info_village',
id
});
};
exports.formatVillageURL = formatVillageURL;
exports.buildVillageURL = buildVillageURL;
const formatVillageName = function formatVillageName() {
const buildVillageName = function buildVillageName() {
let n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
let x = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;
let y = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 500;
@ -3036,10 +3036,10 @@ const formatVillageName = function formatVillageName() {
return "".concat(n, " (").concat(x, "|").concat(y, ") ").concat(continent);
};
exports.formatVillageName = formatVillageName;
exports.buildVillageName = buildVillageName;
const calcAttackDuration = (distance, unitSpeed, baseSpeed) => {
return Math.round(distance * baseSpeed / unitSpeed);
const calcAttackDuration = (distance, baseSpeed) => {
return Math.round(distance * baseSpeed);
};
exports.calcAttackDuration = calcAttackDuration;
@ -3163,7 +3163,7 @@ var _dailyAchievments = _interopRequireDefault(require("./i18n/dailyAchievments"
var _localStorage = require("./utils/localStorage");
var _tribalwars = require("./utils/tribalwars");
var twutils = _interopRequireWildcard(require("./utils/tribalwars"));
var _getCurrentServer = _interopRequireDefault(require("./utils/getCurrentServer"));
@ -3173,6 +3173,10 @@ var _date = require("./utils/date");
var _twhelp = require("./utils/twhelp");
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
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; }
@ -3239,7 +3243,7 @@ const render = (_ref) => {
dailyPlayerStatsOrderedByScoreSup,
dailyPlayerStatsOrderedByVillages
} = _ref;
const html = "\n <div class=\"award-group-head\">".concat(translations.title, "</div>\n <div class=\"award-group-content\" style=\"text-align: center;\">\n <div style=\"padding: 10px;\">\n <h1 style=\"margin-bottom: 0px;\"><a href=\"").concat((0, _twhelp.buildURLToServerPage)((0, _getServerVersionCode.default)(SERVER), SERVER), "\">TWHelp</a></h1>\n <h3 style=\"margin-bottom: 10px; margin-top: 0;\">").concat(translations.devNote, "</h3>\n <h3 style=\"color: red;\"><strong>").concat(translations.warning, "</strong></h3>\n <p><strong>").concat(translations.aotd, "</strong></p>\n ").concat(dailyPlayerStatsOrderedByScoreAtt.items.map((item, index) => "<span>".concat(index + 1, ". <a href=\"").concat((0, _tribalwars.formatPlayerURL)(item.player.id), "\">").concat(item.player.name, " - ").concat(item.scoreAtt.toLocaleString(), "</a></span>")).join('<br>'), "\n </div>\n <hr>\n <div style=\"padding: 10px;\">\n <p><strong>").concat(translations.dotd, "</strong></p>\n ").concat(dailyPlayerStatsOrderedByScoreDef.items.map((item, index) => "<span>".concat(index + 1, ". <a href=\"").concat((0, _tribalwars.formatPlayerURL)(item.player.id), "\">").concat(item.player.name, " - ").concat(item.scoreDef.toLocaleString(), "</a></span>")).join('<br>'), "\n </div>\n <hr>\n <div style=\"padding: 10px;\">\n <p><strong>").concat(translations.sotd, "</strong></p>\n ").concat(dailyPlayerStatsOrderedByScoreSup.items.map((item, index) => "<span>".concat(index + 1, ". <a href=\"").concat((0, _tribalwars.formatPlayerURL)(item.player.id), "\">").concat(item.player.name, " - ").concat(item.scoreSup.toLocaleString(), "</a></span>")).join('<br>'), "\n </div>\n <hr>\n <div style=\"padding: 10px;\">\n <p><strong>").concat(translations.gpotd, "</strong></p>\n ").concat(dailyPlayerStatsOrderedByVillages.items.map((item, index) => "<span>".concat(index + 1, ". <a href=\"").concat((0, _tribalwars.formatPlayerURL)(item.player.id), "\">").concat(item.player.name, " - ").concat(item.villages.toLocaleString(), "</a></span>")).join('<br>'), "\n </div>\n </div>\n <div class=\"award-group-foot\"></div>\n ");
const html = "\n <div class=\"award-group-head\">".concat(translations.title, "</div>\n <div class=\"award-group-content\" style=\"text-align: center;\">\n <div style=\"padding: 10px;\">\n <h1 style=\"margin-bottom: 0px;\"><a href=\"").concat((0, _twhelp.buildURLToServerPage)((0, _getServerVersionCode.default)(SERVER), SERVER), "\">TWHelp</a></h1>\n <h3 style=\"margin-bottom: 10px; margin-top: 0;\">").concat(translations.devNote, "</h3>\n <h3 style=\"color: red;\"><strong>").concat(translations.warning, "</strong></h3>\n <p><strong>").concat(translations.aotd, "</strong></p>\n ").concat(dailyPlayerStatsOrderedByScoreAtt.items.map((item, index) => "<span>".concat(index + 1, ". <a href=\"").concat(twutils.buildPlayerURL(item.player.id), "\">").concat(item.player.name, " - ").concat(item.scoreAtt.toLocaleString(), "</a></span>")).join('<br>'), "\n </div>\n <hr>\n <div style=\"padding: 10px;\">\n <p><strong>").concat(translations.dotd, "</strong></p>\n ").concat(dailyPlayerStatsOrderedByScoreDef.items.map((item, index) => "<span>".concat(index + 1, ". <a href=\"").concat(twutils.buildPlayerURL(item.player.id), "\">").concat(item.player.name, " - ").concat(item.scoreDef.toLocaleString(), "</a></span>")).join('<br>'), "\n </div>\n <hr>\n <div style=\"padding: 10px;\">\n <p><strong>").concat(translations.sotd, "</strong></p>\n ").concat(dailyPlayerStatsOrderedByScoreSup.items.map((item, index) => "<span>".concat(index + 1, ". <a href=\"").concat(twutils.buildPlayerURL(item.player.id), "\">").concat(item.player.name, " - ").concat(item.scoreSup.toLocaleString(), "</a></span>")).join('<br>'), "\n </div>\n <hr>\n <div style=\"padding: 10px;\">\n <p><strong>").concat(translations.gpotd, "</strong></p>\n ").concat(dailyPlayerStatsOrderedByVillages.items.map((item, index) => "<span>".concat(index + 1, ". <a href=\"").concat(twutils.buildPlayerURL(item.player.id), "\">").concat(item.player.name, " - ").concat(item.villages.toLocaleString(), "</a></span>")).join('<br>'), "\n </div>\n </div>\n <div class=\"award-group-foot\"></div>\n ");
if (!container) {
container = document.createElement('div');

View File

@ -424,36 +424,36 @@ exports.calcDistanceBetweenTwoPoints = calcDistanceBetweenTwoPoints;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.buildImgURL = exports.calcAttackDuration = exports.formatVillageName = exports.formatVillageURL = exports.formatPlayerURL = exports.formatTribeURL = void 0;
exports.buildImgURL = exports.calcAttackDuration = exports.buildVillageName = exports.buildVillageURL = exports.buildPlayerURL = exports.buildTribeURL = void 0;
const formatTribeURL = id => {
const buildTribeURL = id => {
return window.location.origin + TribalWars.buildURL('', {
screen: 'info_ally',
id
});
};
exports.formatTribeURL = formatTribeURL;
exports.buildTribeURL = buildTribeURL;
const formatPlayerURL = id => {
const buildPlayerURL = id => {
return window.location.origin + TribalWars.buildURL('', {
screen: 'info_player',
id
});
};
exports.formatPlayerURL = formatPlayerURL;
exports.buildPlayerURL = buildPlayerURL;
const formatVillageURL = id => {
const buildVillageURL = id => {
return window.location.origin + TribalWars.buildURL('', {
screen: 'info_village',
id
});
};
exports.formatVillageURL = formatVillageURL;
exports.buildVillageURL = buildVillageURL;
const formatVillageName = function formatVillageName() {
const buildVillageName = function buildVillageName() {
let n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
let x = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;
let y = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 500;
@ -461,10 +461,10 @@ const formatVillageName = function formatVillageName() {
return "".concat(n, " (").concat(x, "|").concat(y, ") ").concat(continent);
};
exports.formatVillageName = formatVillageName;
exports.buildVillageName = buildVillageName;
const calcAttackDuration = (distance, unitSpeed, baseSpeed) => {
return Math.round(distance * baseSpeed / unitSpeed);
const calcAttackDuration = (distance, baseSpeed) => {
return Math.round(distance * baseSpeed);
};
exports.calcAttackDuration = calcAttackDuration;
@ -616,7 +616,7 @@ function differenceInMinutes(dirtyDateLeft, dirtyDateRight) {
var diff = (0, _index.default)(dirtyDateLeft, dirtyDateRight) / MILLISECONDS_IN_MINUTE;
return diff > 0 ? Math.floor(diff) : Math.ceil(diff);
}
},{"../differenceInMilliseconds/index.js":"H70G","../_lib/requiredArgs/index.js":"kK6Q"}],"ATOB":[function(require,module,exports) {
},{"../differenceInMilliseconds/index.js":"H70G","../_lib/requiredArgs/index.js":"kK6Q"}],"kcC2":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
@ -628,7 +628,7 @@ var _differenceInMinutes = _interopRequireDefault(require("date-fns/differenceIn
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _default = (ennobledAt, speed) => {
const calcLoyalty = (ennobledAt, speed) => {
let loyalty = 25 + Math.abs((0, _differenceInMinutes.default)(ennobledAt, new Date())) * (speed / 60);
if (loyalty > 100) {
@ -638,6 +638,7 @@ var _default = (ennobledAt, speed) => {
return Math.floor(loyalty);
};
var _default = calcLoyalty;
exports.default = _default;
},{"date-fns/differenceInMinutes":"oGJj"}],"HdqX":[function(require,module,exports) {
"use strict";
@ -660,7 +661,7 @@ var _localStorage = require("./utils/localStorage");
var _tribalwars = require("./utils/tribalwars");
var _countLoyalty = _interopRequireDefault(require("./utils/countLoyalty"));
var _calcLoyalty = _interopRequireDefault(require("./utils/calcLoyalty"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@ -675,7 +676,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/extendedMapPopup.js
// @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/extendedMapPopup.js
// @version 0.6.4
// @version 0.6.5
// @description Extended map popup
// @author Kichiyaki https://dawid-wysokinski.pl/
// @match *://*/game.php*screen=map*
@ -793,7 +794,7 @@ const renderAdditionalInfo = (id, data, _ref) => {
const units = getAvailableUnits(unitConfig);
unitsEl.innerHTML = "\n <td colspan=\"2\">\n <table style=\"border: 1px solid #ded3b9; max-width: 450px;\"\n width=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\">\n <tbody>\n <tr class=\"center\">\n ".concat(units.map(buildUnitHeader).join(''), "\n </tr>\n <tr class=\"center\">\n ").concat(units.map((unit, index) => {
return buildUnitArrivalInfo((0, _tribalwars.calcAttackDuration)(distance, config.unitSpeed * config.speed, unit.speed), index);
return buildUnitArrivalInfo((0, _tribalwars.calcAttackDuration)(distance, unit.speed), index);
}).join(''), "\n </tr>\n </tbody>\n </table>\n </td>\n ");
let lastEnnobledAt = parent.querySelector('#lastEnnobledAt');
@ -812,7 +813,7 @@ const renderAdditionalInfo = (id, data, _ref) => {
parent.appendChild(loyalty);
}
loyalty.innerHTML = "\n <td>\n ".concat(translations.possibleLoyalty, ":\n </td>\n <td>\n ").concat(ennoblement ? (0, _countLoyalty.default)(new Date(ennoblement.ennobledAt), config.speed) : 100, "\n </td>\n ");
loyalty.innerHTML = "\n <td>\n ".concat(translations.possibleLoyalty, ":\n </td>\n <td>\n ").concat(ennoblement ? (0, _calcLoyalty.default)(new Date(ennoblement.ennobledAt), config.speed) : 100, "\n </td>\n ");
let canSendNoble = parent.querySelector('#canSendNoble');
if (!canSendNoble) {
@ -852,4 +853,4 @@ const createDisplayForVillageHandler = cfg => async (e, a, t) => {
console.log('extended map popup', error);
}
})();
},{"date-fns/addMinutes":"pfh4","./i18n/extendedMapPopup":"ddIN","./libs/requestCreator":"Ph2E","./utils/formatDate":"V6Mf","./utils/getCurrentServer":"DMkL","./utils/math":"XOOL","./utils/buildUnitImgURL":"KX6P","./utils/localStorage":"KWxH","./utils/tribalwars":"fHHP","./utils/countLoyalty":"ATOB"}]},{},["HdqX"], null)
},{"date-fns/addMinutes":"pfh4","./i18n/extendedMapPopup":"ddIN","./libs/requestCreator":"Ph2E","./utils/formatDate":"V6Mf","./utils/getCurrentServer":"DMkL","./utils/math":"XOOL","./utils/buildUnitImgURL":"KX6P","./utils/localStorage":"KWxH","./utils/tribalwars":"fHHP","./utils/calcLoyalty":"kcC2"}]},{},["HdqX"], null)

View File

@ -587,36 +587,36 @@ exports.default = _default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.buildImgURL = exports.calcAttackDuration = exports.formatVillageName = exports.formatVillageURL = exports.formatPlayerURL = exports.formatTribeURL = void 0;
exports.buildImgURL = exports.calcAttackDuration = exports.buildVillageName = exports.buildVillageURL = exports.buildPlayerURL = exports.buildTribeURL = void 0;
const formatTribeURL = id => {
const buildTribeURL = id => {
return window.location.origin + TribalWars.buildURL('', {
screen: 'info_ally',
id
});
};
exports.formatTribeURL = formatTribeURL;
exports.buildTribeURL = buildTribeURL;
const formatPlayerURL = id => {
const buildPlayerURL = id => {
return window.location.origin + TribalWars.buildURL('', {
screen: 'info_player',
id
});
};
exports.formatPlayerURL = formatPlayerURL;
exports.buildPlayerURL = buildPlayerURL;
const formatVillageURL = id => {
const buildVillageURL = id => {
return window.location.origin + TribalWars.buildURL('', {
screen: 'info_village',
id
});
};
exports.formatVillageURL = formatVillageURL;
exports.buildVillageURL = buildVillageURL;
const formatVillageName = function formatVillageName() {
const buildVillageName = function buildVillageName() {
let n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
let x = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;
let y = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 500;
@ -624,10 +624,10 @@ const formatVillageName = function formatVillageName() {
return "".concat(n, " (").concat(x, "|").concat(y, ") ").concat(continent);
};
exports.formatVillageName = formatVillageName;
exports.buildVillageName = buildVillageName;
const calcAttackDuration = (distance, unitSpeed, baseSpeed) => {
return Math.round(distance * baseSpeed / unitSpeed);
const calcAttackDuration = (distance, baseSpeed) => {
return Math.round(distance * baseSpeed);
};
exports.calcAttackDuration = calcAttackDuration;
@ -653,7 +653,11 @@ var _showPopup = _interopRequireDefault(require("../utils/showPopup"));
var _formatDate = _interopRequireDefault(require("../utils/formatDate"));
var _tribalwars = require("../utils/tribalwars");
var twutils = _interopRequireWildcard(require("../utils/tribalwars"));
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@ -662,7 +666,7 @@ const translations = (0, _showEnnoblementsPopup.default)();
const getPlayerTd = (player, tribe) => {
if (player) {
return "<td><a href=\"".concat((0, _tribalwars.formatPlayerURL)(player.id), "\">").concat(player.name, " (").concat(tribe ? "<a href=\"".concat((0, _tribalwars.formatTribeURL)(tribe.id), "\">").concat(tribe.tag, "</a>") : '-', ")</a></td>");
return "<td><a href=\"".concat(twutils.buildPlayerURL(player.id), "\">").concat(player.name, " (").concat(tribe ? "<a href=\"".concat(twutils.buildTribeURL(tribe.id), "\">").concat(tribe.tag, "</a>") : '-', ")</a></td>");
}
return '<td>-</td>';
@ -683,7 +687,7 @@ var _default = function _default(e, ennoblements) {
let rowHTML = '<tr>' + "<td>".concat((0, _formatDate.default)(ennoblement.ennobledAt), "</td>");
if (ennoblement.village) {
rowHTML += "<td><a href=\"".concat((0, _tribalwars.formatVillageURL)(ennoblement.village.id), "\">").concat((0, _tribalwars.formatVillageName)(ennoblement.village.name, ennoblement.village.x, ennoblement.village.y), "</a></td>");
rowHTML += "<td><a href=\"".concat(twutils.buildVillageURL(ennoblement.village.id), "\">").concat(twutils.buildVillageName(ennoblement.village.name, ennoblement.village.x, ennoblement.village.y), "</a></td>");
} else {
rowHTML += '<td>-</td>';
}
@ -954,7 +958,11 @@ var _pagination = require("../utils/pagination");
var _formatDate = _interopRequireDefault(require("../utils/formatDate"));
var _tribalwars = require("../utils/tribalwars");
var twutils = _interopRequireWildcard(require("../utils/tribalwars"));
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@ -989,7 +997,7 @@ var _default = function _default(e, history, daily) {
}), "</td>");
if (!tribe && history.tribe) {
rowHTML += "<td><a href=\"".concat((0, _tribalwars.formatTribeURL)(history.tribe.id), "\">").concat(history.tribe.tag, "</a></td>");
rowHTML += "<td><a href=\"".concat(twutils.buildTribeURL(history.tribe.id), "\">").concat(history.tribe.tag, "</a></td>");
} else if (!tribe) {
rowHTML += '<td>-</td>';
}
@ -1164,7 +1172,7 @@ var _getServerVersionCode = _interopRequireDefault(require("./utils/getServerVer
var _formatDate = _interopRequireDefault(require("./utils/formatDate"));
var _tribalwars = require("./utils/tribalwars");
var twutils = _interopRequireWildcard(require("./utils/tribalwars"));
var twhelputils = _interopRequireWildcard(require("./utils/twhelp"));
@ -1415,13 +1423,13 @@ const renderTribeChanges = (e, currentPage, tribeChanges) => {
let rowHTML = '<tr>' + "<td>".concat((0, _formatDate.default)(tribeChange.createdAt), "</td>");
if (tribeChange.newTribe) {
rowHTML += "<td><a href=\"".concat((0, _tribalwars.formatTribeURL)(tribeChange.newTribe.id), "\">").concat(tribeChange.newTribe.tag, "</a></td>");
rowHTML += "<td><a href=\"".concat(twutils.buildTribeURL(tribeChange.newTribe.id), "\">").concat(tribeChange.newTribe.tag, "</a></td>");
} else {
rowHTML += '<td>-</td>';
}
if (tribeChange.oldTribe) {
rowHTML += "<td><a href=\"".concat((0, _tribalwars.formatTribeURL)(tribeChange.oldTribe.id), "\">").concat(tribeChange.oldTribe.tag, "</a></td>");
rowHTML += "<td><a href=\"".concat(twutils.buildTribeURL(tribeChange.oldTribe.id), "\">").concat(tribeChange.oldTribe.tag, "</a></td>");
} else {
rowHTML += '<td>-</td>';
}

View File

@ -117,469 +117,7 @@ parcelRequire = (function (modules, cache, entry, globalName) {
}
return newRequire;
})({"d3m2":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = assertString;
function _typeof(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
_typeof = function _typeof(obj) {
return typeof obj;
};
} else {
_typeof = function _typeof(obj) {
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
};
}
return _typeof(obj);
}
function assertString(input) {
var isString = typeof input === 'string' || input instanceof String;
if (!isString) {
var invalidType;
if (input === null) {
invalidType = 'null';
} else {
invalidType = _typeof(input);
if (invalidType === 'object' && input.constructor && input.constructor.hasOwnProperty('name')) {
invalidType = input.constructor.name;
} else {
invalidType = "a ".concat(invalidType);
}
}
throw new TypeError("Expected string but received ".concat(invalidType, "."));
}
}
module.exports = exports.default;
module.exports.default = exports.default;
},{}],"hxfi":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = merge;
function merge() {
var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var defaults = arguments.length > 1 ? arguments[1] : undefined;
for (var key in defaults) {
if (typeof obj[key] === 'undefined') {
obj[key] = defaults[key];
}
}
return obj;
}
module.exports = exports.default;
module.exports.default = exports.default;
},{}],"KGu6":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = isFQDN;
var _assertString = _interopRequireDefault(require("./util/assertString"));
var _merge = _interopRequireDefault(require("./util/merge"));
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
var default_fqdn_options = {
require_tld: true,
allow_underscores: false,
allow_trailing_dot: false
};
function isFQDN(str, options) {
(0, _assertString.default)(str);
options = (0, _merge.default)(options, default_fqdn_options);
/* Remove the optional trailing dot before checking validity */
if (options.allow_trailing_dot && str[str.length - 1] === '.') {
str = str.substring(0, str.length - 1);
}
var parts = str.split('.');
for (var i = 0; i < parts.length; i++) {
if (parts[i].length > 63) {
return false;
}
}
if (options.require_tld) {
var tld = parts.pop();
if (!parts.length || !/^([a-z\u00a1-\uffff]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {
return false;
} // disallow spaces && special characers
if (/[\s\u2002-\u200B\u202F\u205F\u3000\uFEFF\uDB40\uDC20\u00A9\uFFFD]/.test(tld)) {
return false;
}
}
for (var part, _i = 0; _i < parts.length; _i++) {
part = parts[_i];
if (options.allow_underscores) {
part = part.replace(/_/g, '');
}
if (!/^[a-z\u00a1-\uffff0-9-]+$/i.test(part)) {
return false;
} // disallow full-width chars
if (/[\uff01-\uff5e]/.test(part)) {
return false;
}
if (part[0] === '-' || part[part.length - 1] === '-') {
return false;
}
}
return true;
}
module.exports = exports.default;
module.exports.default = exports.default;
},{"./util/assertString":"d3m2","./util/merge":"hxfi"}],"NHAn":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = isIP;
var _assertString = _interopRequireDefault(require("./util/assertString"));
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
/**
11.3. Examples
The following addresses
fe80::1234 (on the 1st link of the node)
ff02::5678 (on the 5th link of the node)
ff08::9abc (on the 10th organization of the node)
would be represented as follows:
fe80::1234%1
ff02::5678%5
ff08::9abc%10
(Here we assume a natural translation from a zone index to the
<zone_id> part, where the Nth zone of any scope is translated into
"N".)
If we use interface names as <zone_id>, those addresses could also be
represented as follows:
fe80::1234%ne0
ff02::5678%pvc1.3
ff08::9abc%interface10
where the interface "ne0" belongs to the 1st link, "pvc1.3" belongs
to the 5th link, and "interface10" belongs to the 10th organization.
* * */
var ipv4Maybe = /^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/;
var ipv6Block = /^[0-9A-F]{1,4}$/i;
function isIP(str) {
var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
(0, _assertString.default)(str);
version = String(version);
if (!version) {
return isIP(str, 4) || isIP(str, 6);
} else if (version === '4') {
if (!ipv4Maybe.test(str)) {
return false;
}
var parts = str.split('.').sort(function (a, b) {
return a - b;
});
return parts[3] <= 255;
} else if (version === '6') {
var addressAndZone = [str]; // ipv6 addresses could have scoped architecture
// according to https://tools.ietf.org/html/rfc4007#section-11
if (str.includes('%')) {
addressAndZone = str.split('%');
if (addressAndZone.length !== 2) {
// it must be just two parts
return false;
}
if (!addressAndZone[0].includes(':')) {
// the first part must be the address
return false;
}
if (addressAndZone[1] === '') {
// the second part must not be empty
return false;
}
}
var blocks = addressAndZone[0].split(':');
var foundOmissionBlock = false; // marker to indicate ::
// At least some OS accept the last 32 bits of an IPv6 address
// (i.e. 2 of the blocks) in IPv4 notation, and RFC 3493 says
// that '::ffff:a.b.c.d' is valid for IPv4-mapped IPv6 addresses,
// and '::a.b.c.d' is deprecated, but also valid.
var foundIPv4TransitionBlock = isIP(blocks[blocks.length - 1], 4);
var expectedNumberOfBlocks = foundIPv4TransitionBlock ? 7 : 8;
if (blocks.length > expectedNumberOfBlocks) {
return false;
} // initial or final ::
if (str === '::') {
return true;
} else if (str.substr(0, 2) === '::') {
blocks.shift();
blocks.shift();
foundOmissionBlock = true;
} else if (str.substr(str.length - 2) === '::') {
blocks.pop();
blocks.pop();
foundOmissionBlock = true;
}
for (var i = 0; i < blocks.length; ++i) {
// test for a :: which can not be at the string start/end
// since those cases have been handled above
if (blocks[i] === '' && i > 0 && i < blocks.length - 1) {
if (foundOmissionBlock) {
return false; // multiple :: in address
}
foundOmissionBlock = true;
} else if (foundIPv4TransitionBlock && i === blocks.length - 1) {// it has been checked before that the last
// block is a valid IPv4 address
} else if (!ipv6Block.test(blocks[i])) {
return false;
}
}
if (foundOmissionBlock) {
return blocks.length >= 1;
}
return blocks.length === expectedNumberOfBlocks;
}
return false;
}
module.exports = exports.default;
module.exports.default = exports.default;
},{"./util/assertString":"d3m2"}],"XMVV":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = isURL;
var _assertString = _interopRequireDefault(require("./util/assertString"));
var _isFQDN = _interopRequireDefault(require("./isFQDN"));
var _isIP = _interopRequireDefault(require("./isIP"));
var _merge = _interopRequireDefault(require("./util/merge"));
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
/*
options for isURL method
require_protocol - if set as true isURL will return false if protocol is not present in the URL
require_valid_protocol - isURL will check if the URL's protocol is present in the protocols option
protocols - valid protocols can be modified with this option
require_host - if set as false isURL will not check if host is present in the URL
allow_protocol_relative_urls - if set as true protocol relative URLs will be allowed
*/
var default_url_options = {
protocols: ['http', 'https', 'ftp'],
require_tld: true,
require_protocol: false,
require_host: true,
require_valid_protocol: true,
allow_underscores: false,
allow_trailing_dot: false,
allow_protocol_relative_urls: false
};
var wrapped_ipv6 = /^\[([^\]]+)\](?::([0-9]+))?$/;
function isRegExp(obj) {
return Object.prototype.toString.call(obj) === '[object RegExp]';
}
function checkHost(host, matches) {
for (var i = 0; i < matches.length; i++) {
var match = matches[i];
if (host === match || isRegExp(match) && match.test(host)) {
return true;
}
}
return false;
}
function isURL(url, options) {
(0, _assertString.default)(url);
if (!url || url.length >= 2083 || /[\s<>]/.test(url)) {
return false;
}
if (url.indexOf('mailto:') === 0) {
return false;
}
options = (0, _merge.default)(options, default_url_options);
var protocol, auth, host, hostname, port, port_str, split, ipv6;
split = url.split('#');
url = split.shift();
split = url.split('?');
url = split.shift();
split = url.split('://');
if (split.length > 1) {
protocol = split.shift().toLowerCase();
if (options.require_valid_protocol && options.protocols.indexOf(protocol) === -1) {
return false;
}
} else if (options.require_protocol) {
return false;
} else if (url.substr(0, 2) === '//') {
if (!options.allow_protocol_relative_urls) {
return false;
}
split[0] = url.substr(2);
}
url = split.join('://');
if (url === '') {
return false;
}
split = url.split('/');
url = split.shift();
if (url === '' && !options.require_host) {
return true;
}
split = url.split('@');
if (split.length > 1) {
if (options.disallow_auth) {
return false;
}
auth = split.shift();
if (auth.indexOf(':') >= 0 && auth.split(':').length > 2) {
return false;
}
}
hostname = split.join('@');
port_str = null;
ipv6 = null;
var ipv6_match = hostname.match(wrapped_ipv6);
if (ipv6_match) {
host = '';
ipv6 = ipv6_match[1];
port_str = ipv6_match[2] || null;
} else {
split = hostname.split(':');
host = split.shift();
if (split.length) {
port_str = split.join(':');
}
}
if (port_str !== null) {
port = parseInt(port_str, 10);
if (!/^[0-9]+$/.test(port_str) || port <= 0 || port > 65535) {
return false;
}
}
if (!(0, _isIP.default)(host) && !(0, _isFQDN.default)(host, options) && (!ipv6 || !(0, _isIP.default)(ipv6, 6))) {
return false;
}
host = host || ipv6;
if (options.host_whitelist && !checkHost(host, options.host_whitelist)) {
return false;
}
if (options.host_blacklist && checkHost(host, options.host_blacklist)) {
return false;
}
return true;
}
module.exports = exports.default;
module.exports.default = exports.default;
},{"./util/assertString":"d3m2","./isFQDN":"KGu6","./isIP":"NHAn","./util/merge":"hxfi"}],"kK6Q":[function(require,module,exports) {
})({"kK6Q":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
@ -1289,36 +827,36 @@ exports.default = _default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.buildImgURL = exports.calcAttackDuration = exports.formatVillageName = exports.formatVillageURL = exports.formatPlayerURL = exports.formatTribeURL = void 0;
exports.buildImgURL = exports.calcAttackDuration = exports.buildVillageName = exports.buildVillageURL = exports.buildPlayerURL = exports.buildTribeURL = void 0;
const formatTribeURL = id => {
const buildTribeURL = id => {
return window.location.origin + TribalWars.buildURL('', {
screen: 'info_ally',
id
});
};
exports.formatTribeURL = formatTribeURL;
exports.buildTribeURL = buildTribeURL;
const formatPlayerURL = id => {
const buildPlayerURL = id => {
return window.location.origin + TribalWars.buildURL('', {
screen: 'info_player',
id
});
};
exports.formatPlayerURL = formatPlayerURL;
exports.buildPlayerURL = buildPlayerURL;
const formatVillageURL = id => {
const buildVillageURL = id => {
return window.location.origin + TribalWars.buildURL('', {
screen: 'info_village',
id
});
};
exports.formatVillageURL = formatVillageURL;
exports.buildVillageURL = buildVillageURL;
const formatVillageName = function formatVillageName() {
const buildVillageName = function buildVillageName() {
let n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
let x = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;
let y = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 500;
@ -1326,10 +864,10 @@ const formatVillageName = function formatVillageName() {
return "".concat(n, " (").concat(x, "|").concat(y, ") ").concat(continent);
};
exports.formatVillageName = formatVillageName;
exports.buildVillageName = buildVillageName;
const calcAttackDuration = (distance, unitSpeed, baseSpeed) => {
return Math.round(distance * baseSpeed / unitSpeed);
const calcAttackDuration = (distance, baseSpeed) => {
return Math.round(distance * baseSpeed);
};
exports.calcAttackDuration = calcAttackDuration;
@ -1355,7 +893,11 @@ var _showPopup = _interopRequireDefault(require("../utils/showPopup"));
var _formatDate = _interopRequireDefault(require("../utils/formatDate"));
var _tribalwars = require("../utils/tribalwars");
var twutils = _interopRequireWildcard(require("../utils/tribalwars"));
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@ -1364,7 +906,7 @@ const translations = (0, _showEnnoblementsPopup.default)();
const getPlayerTd = (player, tribe) => {
if (player) {
return "<td><a href=\"".concat((0, _tribalwars.formatPlayerURL)(player.id), "\">").concat(player.name, " (").concat(tribe ? "<a href=\"".concat((0, _tribalwars.formatTribeURL)(tribe.id), "\">").concat(tribe.tag, "</a>") : '-', ")</a></td>");
return "<td><a href=\"".concat(twutils.buildPlayerURL(player.id), "\">").concat(player.name, " (").concat(tribe ? "<a href=\"".concat(twutils.buildTribeURL(tribe.id), "\">").concat(tribe.tag, "</a>") : '-', ")</a></td>");
}
return '<td>-</td>';
@ -1385,7 +927,7 @@ var _default = function _default(e, ennoblements) {
let rowHTML = '<tr>' + "<td>".concat((0, _formatDate.default)(ennoblement.ennobledAt), "</td>");
if (ennoblement.village) {
rowHTML += "<td><a href=\"".concat((0, _tribalwars.formatVillageURL)(ennoblement.village.id), "\">").concat((0, _tribalwars.formatVillageName)(ennoblement.village.name, ennoblement.village.x, ennoblement.village.y), "</a></td>");
rowHTML += "<td><a href=\"".concat(twutils.buildVillageURL(ennoblement.village.id), "\">").concat(twutils.buildVillageName(ennoblement.village.name, ennoblement.village.x, ennoblement.village.y), "</a></td>");
} else {
rowHTML += '<td>-</td>';
}
@ -1581,7 +1123,11 @@ var _pagination = require("../utils/pagination");
var _formatDate = _interopRequireDefault(require("../utils/formatDate"));
var _tribalwars = require("../utils/tribalwars");
var twutils = _interopRequireWildcard(require("../utils/tribalwars"));
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@ -1616,7 +1162,7 @@ var _default = function _default(e, history, daily) {
}), "</td>");
if (!tribe && history.tribe) {
rowHTML += "<td><a href=\"".concat((0, _tribalwars.formatTribeURL)(history.tribe.id), "\">").concat(history.tribe.tag, "</a></td>");
rowHTML += "<td><a href=\"".concat(twutils.buildTribeURL(history.tribe.id), "\">").concat(history.tribe.tag, "</a></td>");
} else if (!tribe) {
rowHTML += '<td>-</td>';
}
@ -1705,15 +1251,15 @@ exports.default = _default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.formatPlayerURL = void 0;
exports.buildPlayerURL = void 0;
const formatPlayerURL = function formatPlayerURL() {
const buildPlayerURL = function buildPlayerURL() {
let server = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
let id = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
return "http://www.twstats.com/in/".concat(server, "/player/").concat(id);
};
exports.formatPlayerURL = formatPlayerURL;
exports.buildPlayerURL = buildPlayerURL;
},{}],"gvXE":[function(require,module,exports) {
"use strict";
@ -1771,8 +1317,6 @@ exports.buildVillageURL = buildVillageURL;
},{}],"r4nF":[function(require,module,exports) {
"use strict";
var _isURL = _interopRequireDefault(require("validator/lib/isURL"));
var _differenceInDays = _interopRequireDefault(require("date-fns/differenceInDays"));
var _extendedTribeProfile = _interopRequireDefault(require("./i18n/extendedTribeProfile"));
@ -1799,11 +1343,15 @@ var _formatDate = _interopRequireDefault(require("./utils/formatDate"));
var _getServerVersionCode = _interopRequireDefault(require("./utils/getServerVersionCode"));
var _twstats = require("./utils/twstats");
var twstatsutils = _interopRequireWildcard(require("./utils/twstats"));
var _twhelp = require("./utils/twhelp");
var twhelputils = _interopRequireWildcard(require("./utils/twhelp"));
var _tribalwars = require("./utils/tribalwars");
var twutils = _interopRequireWildcard(require("./utils/tribalwars"));
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@ -1942,10 +1490,10 @@ const extendMembersData = players => {
if (player) {
[[player.scoreAtt, player.rankAtt], [player.scoreDef, player.rankDef], [player.scoreSup, player.rankSup], [player.scoreTotal, player.rankTotal], player.dailyGrowth, [{
link: (0, _twhelp.buildPlayerURL)(VERSION, SERVER, player.id),
link: twhelputils.buildPlayerURL(VERSION, SERVER, player.id),
label: 'TWHelp'
}, {
link: (0, _twstats.formatPlayerURL)(SERVER, player.id),
link: twstatsutils.buildPlayerURL(SERVER, player.id),
label: 'TWStats'
}]].forEach((data, index) => {
let td = tr.children[5 + index];
@ -2140,7 +1688,7 @@ const buildMembersGrowthTBody = stats => {
tds.push("<td style=\"".concat(getMembersGrowthTdStyle(val), "\">").concat(val.toLocaleString(), "</td>"));
}
return "<tr>\n <td>\n ".concat(player ? "<a href=\"".concat((0, _tribalwars.formatPlayerURL)(id), "\">").concat(player.name, "</a>") : '-', "\n </td>\n ").concat(tds.join(''), "\n <td style=\"").concat(getMembersGrowthTdStyle(total), "\"><strong>").concat(total.toLocaleString(), "</strong></td>\n </tr>");
return "<tr>\n <td>\n ".concat(player ? "<a href=\"".concat(twutils.buildPlayerURL(id), "\">").concat(player.name, "</a>") : '-', "\n </td>\n ").concat(tds.join(''), "\n <td style=\"").concat(getMembersGrowthTdStyle(total), "\"><strong>").concat(total.toLocaleString(), "</strong></td>\n </tr>");
}).join(''), "\n </tbody>\n ");
};
@ -2210,7 +1758,7 @@ const renderTribeChanges = (e, currentPage, tribeChanges) => {
let rowHTML = '<tr>' + "<td>".concat((0, _formatDate.default)(tribeChange.createdAt), "</td>");
if (tribeChange.player) {
rowHTML += "<td><a href=\"".concat((0, _tribalwars.formatPlayerURL)(tribeChange.player.id), "\">").concat(tribeChange.player.name, "</a></td>");
rowHTML += "<td><a href=\"".concat(twutils.buildPlayerURL(tribeChange.player.id), "\">").concat(tribeChange.player.name, "</a></td>");
} else {
rowHTML += '<td>-</td>';
}
@ -2361,7 +1909,7 @@ const wrapAction = action => {
const renderActions = () => {
const linkToTWHelp = document.createElement('a');
linkToTWHelp.href = (0, _twhelp.buildTribeURL)(VERSION, SERVER, TRIBE_ID);
linkToTWHelp.href = twhelputils.buildTribeURL(VERSION, SERVER, TRIBE_ID);
linkToTWHelp.innerHTML = translations.action.linkToTWHelp;
actionContainer.appendChild(wrapAction(linkToTWHelp));
const showEnnoblements = document.createElement('a');
@ -2418,4 +1966,4 @@ const renderActions = () => {
console.log('extended tribe profile', error);
}
})();
},{"validator/lib/isURL":"XMVV","date-fns/differenceInDays":"mdVI","./i18n/extendedTribeProfile":"iFDG","./libs/requestCreator":"Ph2E","./utils/pagination":"fCHX","./common/renderTodaysStats":"yrCm","./common/showEnnoblementsPopup":"vNT1","./common/showHistoryPopup":"kEDU","./utils/showPopup":"chDM","./utils/getIDFromURL":"tQUs","./utils/getCurrentServer":"DMkL","./utils/localStorage":"KWxH","./utils/formatDate":"V6Mf","./utils/getServerVersionCode":"J1Ly","./utils/twstats":"Syko","./utils/twhelp":"gvXE","./utils/tribalwars":"fHHP"}]},{},["r4nF"], null)
},{"date-fns/differenceInDays":"mdVI","./i18n/extendedTribeProfile":"iFDG","./libs/requestCreator":"Ph2E","./utils/pagination":"fCHX","./common/renderTodaysStats":"yrCm","./common/showEnnoblementsPopup":"vNT1","./common/showHistoryPopup":"kEDU","./utils/showPopup":"chDM","./utils/getIDFromURL":"tQUs","./utils/getCurrentServer":"DMkL","./utils/localStorage":"KWxH","./utils/formatDate":"V6Mf","./utils/getServerVersionCode":"J1Ly","./utils/twstats":"Syko","./utils/twhelp":"gvXE","./utils/tribalwars":"fHHP"}]},{},["r4nF"], null)

View File

@ -308,36 +308,36 @@ exports.default = _default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.buildImgURL = exports.calcAttackDuration = exports.formatVillageName = exports.formatVillageURL = exports.formatPlayerURL = exports.formatTribeURL = void 0;
exports.buildImgURL = exports.calcAttackDuration = exports.buildVillageName = exports.buildVillageURL = exports.buildPlayerURL = exports.buildTribeURL = void 0;
const formatTribeURL = id => {
const buildTribeURL = id => {
return window.location.origin + TribalWars.buildURL('', {
screen: 'info_ally',
id
});
};
exports.formatTribeURL = formatTribeURL;
exports.buildTribeURL = buildTribeURL;
const formatPlayerURL = id => {
const buildPlayerURL = id => {
return window.location.origin + TribalWars.buildURL('', {
screen: 'info_player',
id
});
};
exports.formatPlayerURL = formatPlayerURL;
exports.buildPlayerURL = buildPlayerURL;
const formatVillageURL = id => {
const buildVillageURL = id => {
return window.location.origin + TribalWars.buildURL('', {
screen: 'info_village',
id
});
};
exports.formatVillageURL = formatVillageURL;
exports.buildVillageURL = buildVillageURL;
const formatVillageName = function formatVillageName() {
const buildVillageName = function buildVillageName() {
let n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
let x = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;
let y = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 500;
@ -345,10 +345,10 @@ const formatVillageName = function formatVillageName() {
return "".concat(n, " (").concat(x, "|").concat(y, ") ").concat(continent);
};
exports.formatVillageName = formatVillageName;
exports.buildVillageName = buildVillageName;
const calcAttackDuration = (distance, unitSpeed, baseSpeed) => {
return Math.round(distance * baseSpeed / unitSpeed);
const calcAttackDuration = (distance, baseSpeed) => {
return Math.round(distance * baseSpeed);
};
exports.calcAttackDuration = calcAttackDuration;
@ -606,7 +606,7 @@ function differenceInMinutes(dirtyDateLeft, dirtyDateRight) {
var diff = (0, _index.default)(dirtyDateLeft, dirtyDateRight) / MILLISECONDS_IN_MINUTE;
return diff > 0 ? Math.floor(diff) : Math.ceil(diff);
}
},{"../differenceInMilliseconds/index.js":"H70G","../_lib/requiredArgs/index.js":"kK6Q"}],"ATOB":[function(require,module,exports) {
},{"../differenceInMilliseconds/index.js":"H70G","../_lib/requiredArgs/index.js":"kK6Q"}],"kcC2":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
@ -618,7 +618,7 @@ var _differenceInMinutes = _interopRequireDefault(require("date-fns/differenceIn
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _default = (ennobledAt, speed) => {
const calcLoyalty = (ennobledAt, speed) => {
let loyalty = 25 + Math.abs((0, _differenceInMinutes.default)(ennobledAt, new Date())) * (speed / 60);
if (loyalty > 100) {
@ -628,6 +628,7 @@ var _default = (ennobledAt, speed) => {
return Math.floor(loyalty);
};
var _default = calcLoyalty;
exports.default = _default;
},{"date-fns/differenceInMinutes":"oGJj"}],"J1Ly":[function(require,module,exports) {
"use strict";
@ -785,7 +786,11 @@ var _showPopup = _interopRequireDefault(require("../utils/showPopup"));
var _formatDate = _interopRequireDefault(require("../utils/formatDate"));
var _tribalwars = require("../utils/tribalwars");
var twutils = _interopRequireWildcard(require("../utils/tribalwars"));
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@ -794,7 +799,7 @@ const translations = (0, _showEnnoblementsPopup.default)();
const getPlayerTd = (player, tribe) => {
if (player) {
return "<td><a href=\"".concat((0, _tribalwars.formatPlayerURL)(player.id), "\">").concat(player.name, " (").concat(tribe ? "<a href=\"".concat((0, _tribalwars.formatTribeURL)(tribe.id), "\">").concat(tribe.tag, "</a>") : '-', ")</a></td>");
return "<td><a href=\"".concat(twutils.buildPlayerURL(player.id), "\">").concat(player.name, " (").concat(tribe ? "<a href=\"".concat(twutils.buildTribeURL(tribe.id), "\">").concat(tribe.tag, "</a>") : '-', ")</a></td>");
}
return '<td>-</td>';
@ -815,7 +820,7 @@ var _default = function _default(e, ennoblements) {
let rowHTML = '<tr>' + "<td>".concat((0, _formatDate.default)(ennoblement.ennobledAt), "</td>");
if (ennoblement.village) {
rowHTML += "<td><a href=\"".concat((0, _tribalwars.formatVillageURL)(ennoblement.village.id), "\">").concat((0, _tribalwars.formatVillageName)(ennoblement.village.name, ennoblement.village.x, ennoblement.village.y), "</a></td>");
rowHTML += "<td><a href=\"".concat(twutils.buildVillageURL(ennoblement.village.id), "\">").concat(twutils.buildVillageName(ennoblement.village.name, ennoblement.village.x, ennoblement.village.y), "</a></td>");
} else {
rowHTML += '<td>-</td>';
}
@ -857,14 +862,18 @@ var _wait = _interopRequireDefault(require("./utils/wait"));
var _localStorage = require("./utils/localStorage");
var _countLoyalty = _interopRequireDefault(require("./utils/countLoyalty"));
var _calcLoyalty = _interopRequireDefault(require("./utils/calcLoyalty"));
var _getServerVersionCode = _interopRequireDefault(require("./utils/getServerVersionCode"));
var _twhelp = require("./utils/twhelp");
var twhelputils = _interopRequireWildcard(require("./utils/twhelp"));
var _showEnnoblementsPopup = _interopRequireDefault(require("./common/showEnnoblementsPopup"));
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
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; }
@ -1079,7 +1088,7 @@ const wrapAction = action => {
const renderActions = () => {
const linkToTWHelp = document.createElement('a');
linkToTWHelp.href = (0, _twhelp.buildVillageURL)((0, _getServerVersionCode.default)(SERVER), SERVER, VILLAGE_ID);
linkToTWHelp.href = twhelputils.buildVillageURL((0, _getServerVersionCode.default)(SERVER), SERVER, VILLAGE_ID);
linkToTWHelp.innerHTML = translations.action.linkToTWHelp;
actionContainer.appendChild(wrapAction(linkToTWHelp));
const showEnnoblementsPopup = document.createElement('a');
@ -1142,7 +1151,7 @@ const renderAdditionalInfo = function renderAdditionalInfo() {
renderTr({
id: 'loyalty',
title: "".concat(translations.possibleLoyalty, ":"),
data: firstEnnoblement ? (0, _countLoyalty.default)(new Date(firstEnnoblement.ennobledAt), config.speed) : 100
data: firstEnnoblement ? (0, _calcLoyalty.default)(new Date(firstEnnoblement.ennobledAt), config.speed) : 100
});
renderTr({
id: 'ennobledAt',
@ -1178,4 +1187,4 @@ const renderAdditionalInfo = function renderAdditionalInfo() {
console.log('extended village profile', error);
}
})();
},{"./libs/requestCreator":"Ph2E","./i18n/extendedVillageProfile":"LNef","./utils/pagination":"fCHX","./utils/getCurrentServer":"DMkL","./utils/getIDFromURL":"tQUs","./utils/buildUnitImgURL":"KX6P","./utils/formatDate":"V6Mf","./utils/wait":"oUdd","./utils/localStorage":"KWxH","./utils/countLoyalty":"ATOB","./utils/getServerVersionCode":"J1Ly","./utils/twhelp":"gvXE","./common/showEnnoblementsPopup":"vNT1"}]},{},["UdfQ"], null)
},{"./libs/requestCreator":"Ph2E","./i18n/extendedVillageProfile":"LNef","./utils/pagination":"fCHX","./utils/getCurrentServer":"DMkL","./utils/getIDFromURL":"tQUs","./utils/buildUnitImgURL":"KX6P","./utils/formatDate":"V6Mf","./utils/wait":"oUdd","./utils/localStorage":"KWxH","./utils/calcLoyalty":"kcC2","./utils/getServerVersionCode":"J1Ly","./utils/twhelp":"gvXE","./common/showEnnoblementsPopup":"vNT1"}]},{},["UdfQ"], null)

View File

@ -240,36 +240,36 @@ exports.default = _default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.buildImgURL = exports.calcAttackDuration = exports.formatVillageName = exports.formatVillageURL = exports.formatPlayerURL = exports.formatTribeURL = void 0;
exports.buildImgURL = exports.calcAttackDuration = exports.buildVillageName = exports.buildVillageURL = exports.buildPlayerURL = exports.buildTribeURL = void 0;
const formatTribeURL = id => {
const buildTribeURL = id => {
return window.location.origin + TribalWars.buildURL('', {
screen: 'info_ally',
id
});
};
exports.formatTribeURL = formatTribeURL;
exports.buildTribeURL = buildTribeURL;
const formatPlayerURL = id => {
const buildPlayerURL = id => {
return window.location.origin + TribalWars.buildURL('', {
screen: 'info_player',
id
});
};
exports.formatPlayerURL = formatPlayerURL;
exports.buildPlayerURL = buildPlayerURL;
const formatVillageURL = id => {
const buildVillageURL = id => {
return window.location.origin + TribalWars.buildURL('', {
screen: 'info_village',
id
});
};
exports.formatVillageURL = formatVillageURL;
exports.buildVillageURL = buildVillageURL;
const formatVillageName = function formatVillageName() {
const buildVillageName = function buildVillageName() {
let n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
let x = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;
let y = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 500;
@ -277,10 +277,10 @@ const formatVillageName = function formatVillageName() {
return "".concat(n, " (").concat(x, "|").concat(y, ") ").concat(continent);
};
exports.formatVillageName = formatVillageName;
exports.buildVillageName = buildVillageName;
const calcAttackDuration = (distance, unitSpeed, baseSpeed) => {
return Math.round(distance * baseSpeed / unitSpeed);
const calcAttackDuration = (distance, baseSpeed) => {
return Math.round(distance * baseSpeed);
};
exports.calcAttackDuration = calcAttackDuration;
@ -435,16 +435,20 @@ var _getCurrentServer = _interopRequireDefault(require("./utils/getCurrentServer
var _formatDate = _interopRequireDefault(require("./utils/formatDate"));
var _tribalwars = require("./utils/tribalwars");
var twutils = _interopRequireWildcard(require("./utils/tribalwars"));
var _localStorage = require("./utils/localStorage");
var _twhelp = require("./utils/twhelp");
var twhelputils = _interopRequireWildcard(require("./utils/twhelp"));
var _getServerVersionCode = _interopRequireDefault(require("./utils/getServerVersionCode"));
var _latestEnnoblements = _interopRequireDefault(require("./i18n/latestEnnoblements"));
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
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; }
@ -557,7 +561,7 @@ const handleFilterFormSubmit = (e, ennoblements) => {
oldOwnerTribe: e.target[3].value
});
document.querySelector("#".concat(TABLE_ID, " tbody")).innerHTML = formatEnnoblementRows(filterEnnoblements(ennoblements, filters)).join('');
document.querySelector("#".concat(TABLE_ID, " tbody")).innerHTML = buildEnnoblementsRows(filterEnnoblements(ennoblements, filters)).join('');
cacheFilters(filters);
};
@ -568,17 +572,17 @@ const addEventListeners = function addEventListeners() {
});
};
const formatPlayerHTML = player => {
return player && player.name ? "<a href=\"".concat((0, _tribalwars.formatPlayerURL)(player.id), "\">").concat(player.name, "</a> (").concat(player.tribe && player.tribe.tag ? "<a href=\"".concat((0, _tribalwars.formatTribeURL)(player.tribe.id), "\">").concat(player.tribe.tag, "</a>") : '-', ")") : '-';
const getPlayerHTML = player => {
return player && player.name ? "<a href=\"".concat(twutils.buildPlayerURL(player.id), "\">").concat(player.name, "</a> (").concat(player.tribe && player.tribe.tag ? "<a href=\"".concat(twutils.buildTribeURL(player.tribe.id), "\">").concat(player.tribe.tag, "</a>") : '-', ")") : '-';
};
const formatVillageHTML = village => {
return "<a href=\"".concat((0, _tribalwars.formatVillageURL)(village.id), "\">").concat((0, _tribalwars.formatVillageName)(village.name, village.x, village.y), "</a>");
const getVillageHTML = village => {
return "<a href=\"".concat(twutils.buildVillageURL(village.id), "\">").concat(twutils.buildVillageName(village.name, village.x, village.y), "</a>");
};
const formatEnnoblementRows = ennoblements => {
const buildEnnoblementsRows = ennoblements => {
return ennoblements.reverse().map(ennoblement => {
return "<tr>\n <td>".concat(formatVillageHTML(ennoblement.village), "</td>\n <td>").concat(formatPlayerHTML(ennoblement.newOwner), "</td>\n <td>").concat(formatPlayerHTML(ennoblement.oldOwner), "</td>\n <td>").concat((0, _formatDate.default)(ennoblement.ennobledAt), "</td>\n </tr>");
return "<tr>\n <td>".concat(getVillageHTML(ennoblement.village), "</td>\n <td>").concat(getPlayerHTML(ennoblement.newOwner), "</td>\n <td>").concat(getPlayerHTML(ennoblement.oldOwner), "</td>\n <td>").concat((0, _formatDate.default)(ennoblement.ennobledAt), "</td>\n </tr>");
});
};
@ -588,7 +592,7 @@ const renderLatestEnnoblements = function renderLatestEnnoblements() {
const prepared = _objectSpread(_objectSpread({}, DEFAULT_FILTER), filters);
const html = "\n <form style=\"margin-bottom: 15px\" id=\"".concat(FILTER_FORM_ID, "\">\n <h1 style=\"margin-bottom: 0px; text-align: center;\"><a href=\"").concat((0, _twhelp.buildURLToServerPage)((0, _getServerVersionCode.default)(SERVER), SERVER), "\">TWHelp</a></h1>\n <h3 style=\"margin-bottom: 10px; margin-top: 0;\">").concat(translations.devNote, "</h3>\n <h3 style=\"margin-bottom: 5px\">").concat(translations.filters, "</h3>\n <input type=\"text\" placeholder=\"").concat(translations.newOwner, "\" value=\"").concat(prepared.newOwner, "\" />\n <input type=\"text\" placeholder=\"").concat(translations.newOwnerTribe, "\" value=\"").concat(prepared.newOwnerTribe, "\" />\n <input type=\"text\" placeholder=\"").concat(translations.oldOwner, "\" value=\"").concat(prepared.oldOwner, "\" />\n <input type=\"text\" placeholder=\"").concat(translations.oldOwnerTribe, "\" value=\"").concat(prepared.oldOwnerTribe, "\" />\n <div>\n <button type=\"submit\">").concat(translations.apply, "</button>\n </div>\n </form>\n <table class=\"vis\" id=\"").concat(TABLE_ID, "\" style=\"width: 100%\">\n <thead>\n <tr>\n <th>").concat(translations.village, "</th>\n <th>").concat(translations.newOwner, "</th>\n <th>").concat(translations.oldOwner, "</th>\n <th>").concat(translations.date, "</th>\n </tr>\n </thead>\n <tbody>\n ").concat(formatEnnoblementRows(filterEnnoblements(ennoblements, prepared)).join(''), "\n </tbody>\n </table>\n ");
const html = "\n <form style=\"margin-bottom: 15px\" id=\"".concat(FILTER_FORM_ID, "\">\n <h1 style=\"margin-bottom: 0px; text-align: center;\"><a href=\"").concat(twhelputils.buildURLToServerPage((0, _getServerVersionCode.default)(SERVER), SERVER), "\">TWHelp</a></h1>\n <h3 style=\"margin-bottom: 10px; margin-top: 0;\">").concat(translations.devNote, "</h3>\n <h3 style=\"margin-bottom: 5px\">").concat(translations.filters, "</h3>\n <input type=\"text\" placeholder=\"").concat(translations.newOwner, "\" value=\"").concat(prepared.newOwner, "\" />\n <input type=\"text\" placeholder=\"").concat(translations.newOwnerTribe, "\" value=\"").concat(prepared.newOwnerTribe, "\" />\n <input type=\"text\" placeholder=\"").concat(translations.oldOwner, "\" value=\"").concat(prepared.oldOwner, "\" />\n <input type=\"text\" placeholder=\"").concat(translations.oldOwnerTribe, "\" value=\"").concat(prepared.oldOwnerTribe, "\" />\n <div>\n <button type=\"submit\">").concat(translations.apply, "</button>\n </div>\n </form>\n <table class=\"vis\" id=\"").concat(TABLE_ID, "\" style=\"width: 100%\">\n <thead>\n <tr>\n <th>").concat(translations.village, "</th>\n <th>").concat(translations.newOwner, "</th>\n <th>").concat(translations.oldOwner, "</th>\n <th>").concat(translations.date, "</th>\n </tr>\n </thead>\n <tbody>\n ").concat(buildEnnoblementsRows(filterEnnoblements(ennoblements, prepared)).join(''), "\n </tbody>\n </table>\n ");
(0, _showPopup.default)({
e: {
clientY: 60

View File

@ -247,10 +247,11 @@ const saveConfig = () => {
};
const villageIDByCoords = (x, y) => {
const village = TWMap.villages[parseInt("".concat(x).concat(y))];
const xy = parseInt("".concat(x).concat(y), 10);
const village = TWMap.villages[xy];
if (village) {
return TWMap.villages[parseInt("".concat(x).concat(y))].id;
return TWMap.villages[xy].id;
}
return NaN;
@ -362,7 +363,7 @@ const renderGroups = () => {
renderForm(formsContainer);
};
const exportVillagesHandler = () => {
const handleExportVillages = () => {
const groups = [];
for (let name in config.groups) {
@ -376,7 +377,7 @@ const exportVillagesHandler = () => {
const renderActions = () => {
const exportVillages = document.createElement('button');
exportVillages.innerHTML = translations.export;
exportVillages.addEventListener('click', exportVillagesHandler);
exportVillages.addEventListener('click', handleExportVillages);
actionsContainer.appendChild(exportVillages);
};

View File

@ -5,9 +5,9 @@ parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcel
},{}],"DMkL":[function(require,module,exports) {
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=()=>window.location.host.split(".")[0];exports.default=e;
},{}],"fHHP":[function(require,module,exports) {
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.buildImgURL=exports.calcAttackDuration=exports.formatVillageName=exports.formatVillageURL=exports.formatPlayerURL=exports.formatTribeURL=void 0;const o=o=>window.location.origin+TribalWars.buildURL("",{screen:"info_ally",id:o});exports.formatTribeURL=o;const t=o=>window.location.origin+TribalWars.buildURL("",{screen:"info_player",id:o});exports.formatPlayerURL=t;const r=o=>window.location.origin+TribalWars.buildURL("",{screen:"info_village",id:o});exports.formatVillageURL=r;const e=function(){let o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:500;const e="K"+String(r)[0]+String(t)[0];return"".concat(o," (").concat(t,"|").concat(r,") ").concat(e)};exports.formatVillageName=e;const i=(o,t,r)=>Math.round(o*r/t);exports.calcAttackDuration=i;const a=o=>image_base+o;exports.buildImgURL=a;
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.buildImgURL=exports.calcAttackDuration=exports.buildVillageName=exports.buildVillageURL=exports.buildPlayerURL=exports.buildTribeURL=void 0;const i=i=>window.location.origin+TribalWars.buildURL("",{screen:"info_ally",id:i});exports.buildTribeURL=i;const o=i=>window.location.origin+TribalWars.buildURL("",{screen:"info_player",id:i});exports.buildPlayerURL=o;const e=i=>window.location.origin+TribalWars.buildURL("",{screen:"info_village",id:i});exports.buildVillageURL=e;const t=function(){let i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:500;const t="K"+String(e)[0]+String(o)[0];return"".concat(i," (").concat(o,"|").concat(e,") ").concat(t)};exports.buildVillageName=t;const l=(i,o)=>Math.round(i*o);exports.calcAttackDuration=l;const r=i=>image_base+i;exports.buildImgURL=r;
},{}],"XOOL":[function(require,module,exports) {
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.calcDistanceBetweenTwoPoints=void 0;const e=(e,t,s,o)=>{const c=e-s,n=t-o;return Math.sqrt(c*c+n*n)};exports.calcDistanceBetweenTwoPoints=e;
},{}],"fvjy":[function(require,module,exports) {
"use strict";var t=o(require("./libs/requestCreator")),e=o(require("./i18n/bonusBarbarianVillageFinder")),n=o(require("./utils/getCurrentServer")),r=require("./utils/tribalwars"),a=require("./utils/math");function o(t){return t&&t.__esModule?t:{default:t}}function c(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}function i(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?c(Object(n),!0).forEach(function(e){s(t,e,n[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}function s(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}const l=(0,n.default)(),u="\n query villages($server: String!, $filter: VillageFilter, $sort: [String!], $offset: Int) {\n villages(server: $server, filter: $filter, offset: $offset, sort: $sort) {\n total\n items {\n id\n name\n bonus\n x\n y\n }\n }\n }\n",d="bonusBarbarianVillageFinderTable",f="actualCoords",b=(0,e.default)();let p=void 0;const y=(t,e)=>({query:u,variables:{server:l,sort:["id DESC"],filter:{bonus:t,playerID:[0]},offset:e}}),m=async e=>{const{villages:n}=await(0,t.default)(y(e,0));for(let r=n.length;r<n.total;r+=1e3){const r=await(0,t.default)(y(e,0));n.items=[...n.items,...r.villages.items]}return n},g=async t=>{t.preventDefault();const e=await m(parseInt(t.target[0].value)),n=TWMap.pos;e.items=e.items.map(t=>i(i({},t),{},{distance:(0,a.calcDistanceBetweenTwoPoints)(n[0],n[1],t.x,t.y)})).sort((t,e)=>t.distance-e.distance),document.querySelector("#"+d).innerHTML=h(e.items)},v=()=>{let t=[];for(let e in TWMap.bonus_data)t.push({value:e,text:TWMap.bonus_data[e].text});return t},h=t=>"\n <tbody>\n <tr>\n <th>\n ".concat(b.village,"\n </th>\n <th>\n ").concat(b.distance,"\n </th>\n <th>\n ").concat(b.action,"\n </th>\n </tr>\n ").concat(Array.isArray(t)?t.map(t=>'<tr>\n <td>\n <a href="'.concat((0,r.formatVillageURL)(t.id),'">\n ').concat((0,r.formatVillageName)(t.name,t.x,t.y),"\n </a>\n </td>\n <td>\n ").concat(t.distance.toFixed(1),'\n </td>\n <td>\n <a href="#" onclick="return TWMap.focusUserSpecified(').concat(t.x,", ").concat(t.y,')">Center</a>\n </td>\n </tr>')).join(""):"","\n </tbody>\n "),O=()=>{document.querySelector("#actualCoords").innerHTML="".concat(b.actualCoords,": <strong>").concat(TWMap.pos.join("|"),"</strong>")},j=()=>{const t='\n <p id="'.concat("actualCoords",'"></p>\n <form>\n <select>\n ').concat(v().map(t=>'<option value="'.concat(t.value,'">').concat(t.text,"</option>")).join(""),'\n </select>\n <button type="submit">').concat(b.searchBonusBarbarianVillages,'</button>\n </form>\n <table class="vis" style="width: 100%;" id="').concat(d,'">\n ').concat(h(),"\n </table>\n ");p||((p=document.createElement("div")).classList.add("containerBorder"),p.style.clear="both",document.querySelector("#map_big").appendChild(p)),p.innerHTML=t,p.querySelector("form").addEventListener("submit",g),O(),setInterval(O,1e3)};j();
"use strict";var e=c(require("./libs/requestCreator")),t=c(require("./i18n/bonusBarbarianVillageFinder")),n=c(require("./utils/getCurrentServer")),r=i(require("./utils/tribalwars")),a=require("./utils/math");function o(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return o=function(){return e},e}function i(e){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=o();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var i=r?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(n,a,i):n[a]=e[a]}return n.default=e,t&&t.set(e,n),n}function c(e){return e&&e.__esModule?e:{default:e}}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach(function(t){u(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const f=(0,n.default)(),d="\n query villages($server: String!, $filter: VillageFilter, $sort: [String!], $offset: Int) {\n villages(server: $server, filter: $filter, offset: $offset, sort: $sort) {\n total\n items {\n id\n name\n bonus\n x\n y\n }\n }\n }\n",p="bonusBarbarianVillageFinderTable",b="actualCoords",y=(0,t.default)();let v=void 0;const g=(e,t)=>({query:d,variables:{server:f,sort:["id DESC"],filter:{bonus:e,playerID:[0]},offset:t}}),m=async t=>{const{villages:n}=await(0,e.default)(g(t,0));for(let r=n.length;r<n.total;r+=1e3){const r=await(0,e.default)(g(t,0));n.items=[...n.items,...r.villages.items]}return n},O=async e=>{e.preventDefault();const t=await m(parseInt(e.target[0].value)),n=TWMap.pos;t.items=t.items.map(e=>l(l({},e),{},{distance:(0,a.calcDistanceBetweenTwoPoints)(n[0],n[1],e.x,e.y)})).sort((e,t)=>e.distance-t.distance),document.querySelector("#"+p).innerHTML=j(t.items)},h=()=>{let e=[];for(let t in TWMap.bonus_data)e.push({value:t,text:TWMap.bonus_data[t].text});return e},j=e=>"\n <tbody>\n <tr>\n <th>\n ".concat(y.village,"\n </th>\n <th>\n ").concat(y.distance,"\n </th>\n <th>\n ").concat(y.action,"\n </th>\n </tr>\n ").concat(Array.isArray(e)?e.map(e=>'<tr>\n <td>\n <a href="'.concat(r.buildVillageURL(e.id),'">\n ').concat(r.buildVillageName(e.name,e.x,e.y),"\n </a>\n </td>\n <td>\n ").concat(e.distance.toFixed(1),'\n </td>\n <td>\n <a href="#" onclick="return TWMap.focusUserSpecified(').concat(e.x,", ").concat(e.y,')">Center</a>\n </td>\n </tr>')).join(""):"","\n </tbody>\n "),w=()=>{document.querySelector("#actualCoords").innerHTML="".concat(y.actualCoords,": <strong>").concat(TWMap.pos.join("|"),"</strong>")},P=()=>{const e='\n <p id="'.concat("actualCoords",'"></p>\n <form>\n <select>\n ').concat(h().map(e=>'<option value="'.concat(e.value,'">').concat(e.text,"</option>")).join(""),'\n </select>\n <button type="submit">').concat(y.searchBonusBarbarianVillages,'</button>\n </form>\n <table class="vis" style="width: 100%;" id="').concat(p,'">\n ').concat(j(),"\n </table>\n ");v||((v=document.createElement("div")).classList.add("containerBorder"),v.style.clear="both",document.querySelector("#map_big").appendChild(v)),v.innerHTML=e,v.querySelector("form").addEventListener("submit",O),w(),setInterval(w,1e3)};P();
},{"./libs/requestCreator":"Ph2E","./i18n/bonusBarbarianVillageFinder":"MRps","./utils/getCurrentServer":"DMkL","./utils/tribalwars":"fHHP","./utils/math":"XOOL"}]},{},["fvjy"], null)

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -338,7 +338,7 @@ var _getCurrentServer = _interopRequireDefault(require("./utils/getCurrentServer
var _getServerVersionCode = _interopRequireDefault(require("./utils/getServerVersionCode"));
var _twhelp = require("./utils/twhelp");
var twhelputils = _interopRequireWildcard(require("./utils/twhelp"));
var _showPopup = _interopRequireWildcard(require("./utils/showPopup"));
@ -472,7 +472,7 @@ const handleFormSubmit = async e => {
};
const showWarStatsForm = e => {
const html = "\n <form>\n <h1 style=\"margin-bottom: 0px; text-align: center;\"><a href=\"".concat((0, _twhelp.buildURLToServerPage)((0, _getServerVersionCode.default)(SERVER), SERVER), "\">TWHelp</a></h1>\n <h3 style=\"margin-bottom: 10px; margin-top: 0;\">").concat(translations.devNote, "</h3>\n <div id=\"").concat(RESULT_CONTAINER_ID, "\">\n </div>\n <div style=\"margin-bottom: 10px;\">\n <div id=\"").concat(FROM_INPUT_ID, "\">\n <label>").concat(translations.from, ": </label>\n <input type=\"date\" required />\n <input type=\"time\" required />\n </div>\n <div id=\"").concat(TO_INPUT_ID, "\">\n <label>").concat(translations.to, ": </label>\n <input type=\"date\" required />\n <input type=\"time\" required />\n </div>\n </div>\n <div style=\"display: flex; justify-content: space-between; margin-bottom: 10px; min-width: 800px;\">\n <div>\n <h3>").concat(translations.sideOne, "</h3>\n <div id=\"").concat(SIDE_ONE_INPUT_CONTAINER_ID, "\">\n </div>\n <button id=\"").concat(SIDE_ONE_BUTTON_ID, "\" class=\"btn\" type=\"button\">").concat(translations.addTribe, "</button>\n </div>\n <div style=\"margin: 0 5px;\"></div>\n <div>\n <h3>").concat(translations.sideTwo, "</h3>\n <div id=\"").concat(SIDE_TWO_INPUT_CONTAINER_ID, "\">\n </div>\n <button id=\"").concat(SIDE_TWO_BUTTON_ID, "\" class=\"btn\" type=\"button\">").concat(translations.addTribe, "</button>\n </div>\n </div>\n <div style=\"text-align: center;\">\n <button class=\"btn\" type=\"submit\">").concat(translations.generateWarStats, "</button>\n </div>\n </form>\n ");
const html = "\n <form>\n <h1 style=\"margin-bottom: 0px; text-align: center;\"><a href=\"".concat(twhelputils.buildURLToServerPage((0, _getServerVersionCode.default)(SERVER), SERVER), "\">TWHelp</a></h1>\n <h3 style=\"margin-bottom: 10px; margin-top: 0;\">").concat(translations.devNote, "</h3>\n <div id=\"").concat(RESULT_CONTAINER_ID, "\">\n </div>\n <div style=\"margin-bottom: 10px;\">\n <div id=\"").concat(FROM_INPUT_ID, "\">\n <label>").concat(translations.from, ": </label>\n <input type=\"date\" required />\n <input type=\"time\" required />\n </div>\n <div id=\"").concat(TO_INPUT_ID, "\">\n <label>").concat(translations.to, ": </label>\n <input type=\"date\" required />\n <input type=\"time\" required />\n </div>\n </div>\n <div style=\"display: flex; justify-content: space-between; margin-bottom: 10px; min-width: 800px;\">\n <div>\n <h3>").concat(translations.sideOne, "</h3>\n <div id=\"").concat(SIDE_ONE_INPUT_CONTAINER_ID, "\">\n </div>\n <button id=\"").concat(SIDE_ONE_BUTTON_ID, "\" class=\"btn\" type=\"button\">").concat(translations.addTribe, "</button>\n </div>\n <div style=\"margin: 0 5px;\"></div>\n <div>\n <h3>").concat(translations.sideTwo, "</h3>\n <div id=\"").concat(SIDE_TWO_INPUT_CONTAINER_ID, "\">\n </div>\n <button id=\"").concat(SIDE_TWO_BUTTON_ID, "\" class=\"btn\" type=\"button\">").concat(translations.addTribe, "</button>\n </div>\n </div>\n <div style=\"text-align: center;\">\n <button class=\"btn\" type=\"submit\">").concat(translations.generateWarStats, "</button>\n </div>\n </form>\n ");
(0, _showPopup.default)({
title: translations.warStatsGenerator,
id: 'warStats',

View File

@ -1,7 +1,7 @@
import requestCreator from './libs/requestCreator';
import getTranslations from './i18n/bonusBarbarianVillageFinder';
import getCurrentServer from './utils/getCurrentServer';
import { formatVillageURL, formatVillageName } from './utils/tribalwars';
import * as twutils from './utils/tribalwars';
import { calcDistanceBetweenTwoPoints } from './utils/math';
// ==UserScript==
@ -116,8 +116,12 @@ const buildTableBodyHTML = (villages) => {
.map(
(village) => `<tr>
<td>
<a href="${formatVillageURL(village.id)}">
${formatVillageName(village.name, village.x, village.y)}
<a href="${twutils.buildVillageURL(village.id)}">
${twutils.buildVillageName(
village.name,
village.x,
village.y
)}
</a>
</td>
<td>

View File

@ -5,22 +5,19 @@ import {
} from '../utils/pagination';
import showPopup from '../utils/showPopup';
import formatDate from '../utils/formatDate';
import {
formatTribeURL,
formatPlayerURL as formatPlayerURLTribalWars,
formatVillageName,
formatVillageURL,
} from '../utils/tribalwars';
import * as twutils from '../utils/tribalwars';
const PAGINATION_CONTAINER_ID = 'ennoblementsPagination';
const translations = getTranslations();
const getPlayerTd = (player, tribe) => {
if (player) {
return `<td><a href="${formatPlayerURLTribalWars(player.id)}">${
return `<td><a href="${twutils.buildPlayerURL(player.id)}">${
player.name
} (${
tribe ? `<a href="${formatTribeURL(tribe.id)}">${tribe.tag}</a>` : '-'
tribe
? `<a href="${twutils.buildTribeURL(tribe.id)}">${tribe.tag}</a>`
: '-'
})</a></td>`;
}
return '<td>-</td>';
@ -61,9 +58,9 @@ export default (
let rowHTML =
'<tr>' + `<td>${formatDate(ennoblement.ennobledAt)}</td>`;
if (ennoblement.village) {
rowHTML += `<td><a href="${formatVillageURL(
rowHTML += `<td><a href="${twutils.buildVillageURL(
ennoblement.village.id
)}">${formatVillageName(
)}">${twutils.buildVillageName(
ennoblement.village.name,
ennoblement.village.x,
ennoblement.village.y

View File

@ -6,7 +6,7 @@ import {
getContainerStyles,
} from '../utils/pagination';
import formatDate from '../utils/formatDate';
import { formatTribeURL } from '../utils/tribalwars';
import * as twutils from '../utils/tribalwars';
const PAGINATION_CONTAINER_ID = 'historyPagination';
const translations = getTranslations();
@ -73,9 +73,9 @@ export default (
day: '2-digit',
})}</td>`;
if (!tribe && history.tribe) {
rowHTML += `<td><a href="${formatTribeURL(history.tribe.id)}">${
history.tribe.tag
}</a></td>`;
rowHTML += `<td><a href="${twutils.buildTribeURL(
history.tribe.id
)}">${history.tribe.tag}</a></td>`;
} else if (!tribe) {
rowHTML += '<td>-</td>';
}

View File

@ -2,7 +2,7 @@ import format from 'date-fns/format';
import requestCreator from './libs/requestCreator';
import getTranslations from './i18n/dailyAchievments';
import { setItem, getItem } from './utils/localStorage';
import { formatPlayerURL } from './utils/tribalwars';
import * as twutils from './utils/tribalwars';
import getCurrentServer from './utils/getCurrentServer';
import getServerVersionCode from './utils/getServerVersionCode';
import { inTZ } from './utils/date';
@ -134,7 +134,7 @@ const render = ({
${dailyPlayerStatsOrderedByScoreAtt.items
.map(
(item, index) =>
`<span>${index + 1}. <a href="${formatPlayerURL(
`<span>${index + 1}. <a href="${twutils.buildPlayerURL(
item.player.id
)}">${
item.player.name
@ -148,7 +148,7 @@ const render = ({
${dailyPlayerStatsOrderedByScoreDef.items
.map(
(item, index) =>
`<span>${index + 1}. <a href="${formatPlayerURL(
`<span>${index + 1}. <a href="${twutils.buildPlayerURL(
item.player.id
)}">${
item.player.name
@ -162,7 +162,7 @@ const render = ({
${dailyPlayerStatsOrderedByScoreSup.items
.map(
(item, index) =>
`<span>${index + 1}. <a href="${formatPlayerURL(
`<span>${index + 1}. <a href="${twutils.buildPlayerURL(
item.player.id
)}">${
item.player.name
@ -176,7 +176,7 @@ const render = ({
${dailyPlayerStatsOrderedByVillages.items
.map(
(item, index) =>
`<span>${index + 1}. <a href="${formatPlayerURL(
`<span>${index + 1}. <a href="${twutils.buildPlayerURL(
item.player.id
)}">${
item.player.name

View File

@ -7,14 +7,14 @@ import { calcDistanceBetweenTwoPoints } from './utils/math';
import buildUnitImgURL from './utils/buildUnitImgURL';
import { setItem, getItem } from './utils/localStorage';
import { calcAttackDuration } from './utils/tribalwars';
import countLoyalty from './utils/countLoyalty';
import calcLoyalty from './utils/calcLoyalty';
// ==UserScript==
// @name Extended map popup
// @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.6.4
// @version 0.6.5
// @description Extended map popup
// @author Kichiyaki https://dawid-wysokinski.pl/
// @match *://*/game.php*screen=map*
@ -226,11 +226,7 @@ const renderAdditionalInfo = (id, data, { config, unitConfig }) => {
${units
.map((unit, index) => {
return buildUnitArrivalInfo(
calcAttackDuration(
distance,
config.unitSpeed * config.speed,
unit.speed
),
calcAttackDuration(distance, unit.speed),
index
);
})
@ -273,7 +269,7 @@ const renderAdditionalInfo = (id, data, { config, unitConfig }) => {
<td>
${
ennoblement
? countLoyalty(new Date(ennoblement.ennobledAt), config.speed)
? calcLoyalty(new Date(ennoblement.ennobledAt), config.speed)
: 100
}
</td>

View File

@ -16,7 +16,7 @@ import getIDFromURL from './utils/getIDFromURL';
import getCurrentServer from './utils/getCurrentServer';
import getServerVersionCode from './utils/getServerVersionCode';
import formatDate from './utils/formatDate';
import { formatTribeURL } from './utils/tribalwars';
import * as twutils from './utils/tribalwars';
import * as twhelputils from './utils/twhelp';
import { setItem, getItem } from './utils/localStorage';
@ -530,14 +530,14 @@ const renderTribeChanges = (e, currentPage, tribeChanges) => {
let rowHTML =
'<tr>' + `<td>${formatDate(tribeChange.createdAt)}</td>`;
if (tribeChange.newTribe) {
rowHTML += `<td><a href="${formatTribeURL(
rowHTML += `<td><a href="${twutils.buildTribeURL(
tribeChange.newTribe.id
)}">${tribeChange.newTribe.tag}</a></td>`;
} else {
rowHTML += '<td>-</td>';
}
if (tribeChange.oldTribe) {
rowHTML += `<td><a href="${formatTribeURL(
rowHTML += `<td><a href="${twutils.buildTribeURL(
tribeChange.oldTribe.id
)}">${tribeChange.oldTribe.tag}</a></td>`;
} else {

View File

@ -1,4 +1,3 @@
import isURL from 'validator/lib/isURL';
import differenceInDays from 'date-fns/differenceInDays';
import getTranslations from './i18n/extendedTribeProfile';
import requestCreator from './libs/requestCreator';
@ -17,9 +16,9 @@ import getCurrentServer from './utils/getCurrentServer';
import { setItem, getItem } from './utils/localStorage';
import formatDate from './utils/formatDate';
import getServerVersionCode from './utils/getServerVersionCode';
import { formatPlayerURL } from './utils/twstats';
import { buildPlayerURL, buildTribeURL } from './utils/twhelp';
import { formatPlayerURL as formatPlayerURLTribalWars } from './utils/tribalwars';
import * as twstatsutils from './utils/twstats';
import * as twhelputils from './utils/twhelp';
import * as twutils from './utils/tribalwars';
// ==UserScript==
// @name Extended tribe profile
@ -304,8 +303,14 @@ const extendMembersData = (players) => {
[player.scoreTotal, player.rankTotal],
player.dailyGrowth,
[
{ link: buildPlayerURL(VERSION, SERVER, player.id), label: 'TWHelp' },
{ link: formatPlayerURL(SERVER, player.id), label: 'TWStats' },
{
link: twhelputils.buildPlayerURL(VERSION, SERVER, player.id),
label: 'TWHelp',
},
{
link: twstatsutils.buildPlayerURL(SERVER, player.id),
label: 'TWStats',
},
],
].forEach((data, index) => {
let td = tr.children[5 + index];
@ -514,9 +519,7 @@ const buildMembersGrowthTBody = (stats) => {
<td>
${
player
? `<a href="${formatPlayerURLTribalWars(id)}">${
player.name
}</a>`
? `<a href="${twutils.buildPlayerURL(id)}">${player.name}</a>`
: '-'
}
</td>
@ -641,7 +644,7 @@ const renderTribeChanges = (e, currentPage, tribeChanges) => {
let rowHTML =
'<tr>' + `<td>${formatDate(tribeChange.createdAt)}</td>`;
if (tribeChange.player) {
rowHTML += `<td><a href="${formatPlayerURLTribalWars(
rowHTML += `<td><a href="${twutils.buildPlayerURL(
tribeChange.player.id
)}">${tribeChange.player.name}</a></td>`;
} else {
@ -851,7 +854,7 @@ const wrapAction = (action) => {
const renderActions = () => {
const linkToTWHelp = document.createElement('a');
linkToTWHelp.href = buildTribeURL(VERSION, SERVER, TRIBE_ID);
linkToTWHelp.href = twhelputils.buildTribeURL(VERSION, SERVER, TRIBE_ID);
linkToTWHelp.innerHTML = translations.action.linkToTWHelp;
actionContainer.appendChild(wrapAction(linkToTWHelp));

View File

@ -7,9 +7,9 @@ import buildUnitImgURL from './utils/buildUnitImgURL';
import formatDate from './utils/formatDate';
import wait from './utils/wait';
import { setItem, getItem } from './utils/localStorage';
import countLoyalty from './utils/countLoyalty';
import calcLoyalty from './utils/calcLoyalty';
import getServerVersionCode from './utils/getServerVersionCode';
import { buildVillageURL } from './utils/twhelp';
import * as twhelputils from './utils/twhelp';
import showEnnoblementsPopup from './common/showEnnoblementsPopup';
// ==UserScript==
@ -339,7 +339,7 @@ const wrapAction = (action) => {
const renderActions = () => {
const linkToTWHelp = document.createElement('a');
linkToTWHelp.href = buildVillageURL(
linkToTWHelp.href = twhelputils.buildVillageURL(
getServerVersionCode(SERVER),
SERVER,
VILLAGE_ID
@ -406,7 +406,7 @@ const renderAdditionalInfo = ({ config, ennoblements } = {}) => {
id: 'loyalty',
title: `${translations.possibleLoyalty}:`,
data: firstEnnoblement
? countLoyalty(new Date(firstEnnoblement.ennobledAt), config.speed)
? calcLoyalty(new Date(firstEnnoblement.ennobledAt), config.speed)
: 100,
});
renderTr({

View File

@ -2,14 +2,9 @@ import requestCreator from './libs/requestCreator';
import showPopup from './utils/showPopup';
import getCurrentServer from './utils/getCurrentServer';
import formatDate from './utils/formatDate';
import {
formatTribeURL,
formatPlayerURL,
formatVillageURL,
formatVillageName,
} from './utils/tribalwars';
import * as twutils from './utils/tribalwars';
import { setItem, getItem } from './utils/localStorage';
import { buildURLToServerPage } from './utils/twhelp';
import * as twhelputils from './utils/twhelp';
import getServerVersionCode from './utils/getServerVersionCode';
import loadTranslations from './i18n/latestEnnoblements';
@ -150,7 +145,7 @@ const handleFilterFormSubmit = (e, ennoblements) => {
};
document.querySelector(
`#${TABLE_ID} tbody`
).innerHTML = formatEnnoblementRows(
).innerHTML = buildEnnoblementsRows(
filterEnnoblements(ennoblements, filters)
).join('');
cacheFilters(filters);
@ -164,11 +159,11 @@ const addEventListeners = (ennoblements = []) => {
});
};
const formatPlayerHTML = (player) => {
const getPlayerHTML = (player) => {
return player && player.name
? `<a href="${formatPlayerURL(player.id)}">${player.name}</a> (${
? `<a href="${twutils.buildPlayerURL(player.id)}">${player.name}</a> (${
player.tribe && player.tribe.tag
? `<a href="${formatTribeURL(player.tribe.id)}">${
? `<a href="${twutils.buildTribeURL(player.tribe.id)}">${
player.tribe.tag
}</a>`
: '-'
@ -176,20 +171,18 @@ const formatPlayerHTML = (player) => {
: '-';
};
const formatVillageHTML = (village) => {
return `<a href="${formatVillageURL(village.id)}">${formatVillageName(
village.name,
village.x,
village.y
)}</a>`;
const getVillageHTML = (village) => {
return `<a href="${twutils.buildVillageURL(
village.id
)}">${twutils.buildVillageName(village.name, village.x, village.y)}</a>`;
};
const formatEnnoblementRows = (ennoblements) => {
const buildEnnoblementsRows = (ennoblements) => {
return ennoblements.reverse().map((ennoblement) => {
return `<tr>
<td>${formatVillageHTML(ennoblement.village)}</td>
<td>${formatPlayerHTML(ennoblement.newOwner)}</td>
<td>${formatPlayerHTML(ennoblement.oldOwner)}</td>
<td>${getVillageHTML(ennoblement.village)}</td>
<td>${getPlayerHTML(ennoblement.newOwner)}</td>
<td>${getPlayerHTML(ennoblement.oldOwner)}</td>
<td>${formatDate(ennoblement.ennobledAt)}</td>
</tr>`;
});
@ -202,7 +195,7 @@ const renderLatestEnnoblements = (ennoblements = [], filters = {}) => {
};
const html = `
<form style="margin-bottom: 15px" id="${FILTER_FORM_ID}">
<h1 style="margin-bottom: 0px; text-align: center;"><a href="${buildURLToServerPage(
<h1 style="margin-bottom: 0px; text-align: center;"><a href="${twhelputils.buildURLToServerPage(
getServerVersionCode(SERVER),
SERVER
)}">TWHelp</a></h1>
@ -236,7 +229,7 @@ const renderLatestEnnoblements = (ennoblements = [], filters = {}) => {
</tr>
</thead>
<tbody>
${formatEnnoblementRows(
${buildEnnoblementsRows(
filterEnnoblements(ennoblements, prepared)
).join('')}
</tbody>

View File

@ -37,9 +37,10 @@ const saveConfig = () => {
};
const villageIDByCoords = (x, y) => {
const village = TWMap.villages[parseInt(`${x}${y}`)];
const xy = parseInt(`${x}${y}`, 10);
const village = TWMap.villages[xy];
if (village) {
return TWMap.villages[parseInt(`${x}${y}`)].id;
return TWMap.villages[xy].id;
}
return NaN;
};
@ -178,7 +179,7 @@ const renderGroups = () => {
renderForm(formsContainer);
};
const exportVillagesHandler = () => {
const handleExportVillages = () => {
const groups = [];
for (let name in config.groups) {
@ -201,7 +202,7 @@ const exportVillagesHandler = () => {
const renderActions = () => {
const exportVillages = document.createElement('button');
exportVillages.innerHTML = translations.export;
exportVillages.addEventListener('click', exportVillagesHandler);
exportVillages.addEventListener('click', handleExportVillages);
actionsContainer.appendChild(exportVillages);
};

View File

@ -1,6 +1,6 @@
import differenceInMinutes from 'date-fns/differenceInMinutes';
export default (ennobledAt, speed) => {
const calcLoyalty = (ennobledAt, speed) => {
let loyalty =
25 + Math.abs(differenceInMinutes(ennobledAt, new Date())) * (speed / 60);
if (loyalty > 100) {
@ -8,3 +8,5 @@ export default (ennobledAt, speed) => {
}
return Math.floor(loyalty);
};
export default calcLoyalty;

View File

@ -1,4 +1,4 @@
export const formatTribeURL = (id) => {
export const buildTribeURL = (id) => {
return (
window.location.origin +
TribalWars.buildURL('', {
@ -8,7 +8,7 @@ export const formatTribeURL = (id) => {
);
};
export const formatPlayerURL = (id) => {
export const buildPlayerURL = (id) => {
return (
window.location.origin +
TribalWars.buildURL('', {
@ -18,7 +18,7 @@ export const formatPlayerURL = (id) => {
);
};
export const formatVillageURL = (id) => {
export const buildVillageURL = (id) => {
return (
window.location.origin +
TribalWars.buildURL('', {
@ -28,13 +28,13 @@ export const formatVillageURL = (id) => {
);
};
export const formatVillageName = (n = '', x = 500, y = 500) => {
export const buildVillageName = (n = '', x = 500, y = 500) => {
const continent = 'K' + String(y)[0] + String(x)[0];
return `${n} (${x}|${y}) ${continent}`;
};
export const calcAttackDuration = (distance, unitSpeed, baseSpeed) => {
return Math.round((distance * baseSpeed) / unitSpeed);
export const calcAttackDuration = (distance, baseSpeed) => {
return Math.round(distance * baseSpeed);
};
export const buildImgURL = (img) => {

View File

@ -1,3 +1,3 @@
export const formatPlayerURL = (server = '', id = 0) => {
export const buildPlayerURL = (server = '', id = 0) => {
return `http://www.twstats.com/in/${server}/player/${id}`;
};

View File

@ -2,7 +2,7 @@ import requestCreator from './libs/requestCreator';
import getTranslations from './i18n/warStatsGenerator';
import getServer from './utils/getCurrentServer';
import getServerVersionCode from './utils/getServerVersionCode';
import { buildURLToServerPage } from './utils/twhelp';
import * as twhelputils from './utils/twhelp';
import showPopup, { POPUP_SELECTOR } from './utils/showPopup';
// ==UserScript==
@ -182,7 +182,7 @@ const handleFormSubmit = async (e) => {
const showWarStatsForm = (e) => {
const html = `
<form>
<h1 style="margin-bottom: 0px; text-align: center;"><a href="${buildURLToServerPage(
<h1 style="margin-bottom: 0px; text-align: center;"><a href="${twhelputils.buildURLToServerPage(
getServerVersionCode(SERVER),
SERVER
)}">TWHelp</a></h1>