|
|
|
@@ -27,7 +27,9 @@ function createCustomElement(tag, attrs, text, style) {
|
|
|
|
let elt = document.createElement(tag);
|
|
|
|
let elt = document.createElement(tag);
|
|
|
|
if (attrs) {
|
|
|
|
if (attrs) {
|
|
|
|
for (let [key, value] of Object.entries(attrs)) {
|
|
|
|
for (let [key, value] of Object.entries(attrs)) {
|
|
|
|
elt.setAttribute(key, value.toString());
|
|
|
|
if (value !== null) {
|
|
|
|
|
|
|
|
elt.setAttribute(key, value.toString());
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (text) {
|
|
|
|
if (text) {
|
|
|
|
@@ -119,15 +121,27 @@ function countUpMs() {
|
|
|
|
+ Math.floor(arrivalDate.getMilliseconds() / 100);
|
|
|
|
+ Math.floor(arrivalDate.getMilliseconds() / 100);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function handleDomContentLoaded() {
|
|
|
|
|
|
|
|
/* Remove iframe banner */
|
|
|
|
|
|
|
|
document.getElementById("banner_skyscraper").remove();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function main() {
|
|
|
|
function main() {
|
|
|
|
|
|
|
|
/* Exit immediately if extension has already been loaded */
|
|
|
|
|
|
|
|
let kaplus = document.getElementById("kaplus-marker");
|
|
|
|
|
|
|
|
if (kaplus) {
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Exit immediately if not on game page */
|
|
|
|
/* Exit immediately if not on game page */
|
|
|
|
let layCastleTopElements = document.getElementsByClassName("lay_castle_top");
|
|
|
|
let layCastleTopElements = document.getElementsByClassName("lay_castle_top");
|
|
|
|
if (layCastleTopElements.length === 0) {
|
|
|
|
if (layCastleTopElements.length === 0) {
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
window.addEventListener("DOMContentLoaded", handleDomContentLoaded);
|
|
|
|
|
|
|
|
|
|
|
|
/* Remove iframe banner */
|
|
|
|
/* Add extension marker */
|
|
|
|
document.getElementById("banner_skyscraper").remove();
|
|
|
|
document.body.appendChild(createCustomElement("div", {"id": "kaplus-marker"}, null, {"display": "none"}));
|
|
|
|
|
|
|
|
|
|
|
|
/* Improve navbar icons */
|
|
|
|
/* Improve navbar icons */
|
|
|
|
let shortcutElements = layCastleTopElements[0].getElementsByClassName("shortcut_element");
|
|
|
|
let shortcutElements = layCastleTopElements[0].getElementsByClassName("shortcut_element");
|
|
|
|
@@ -151,6 +165,25 @@ function main() {
|
|
|
|
let sub = urlParams.get("sub");
|
|
|
|
let sub = urlParams.get("sub");
|
|
|
|
let sendCommandForm = document.getElementById("sendCommandForm");
|
|
|
|
let sendCommandForm = document.getElementById("sendCommandForm");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Add player id on ranking */
|
|
|
|
|
|
|
|
if (section === "ranking" || (section === "ally" && module === "members")) {
|
|
|
|
|
|
|
|
let mainContentPane = document.getElementsByClassName("contentpane")[1];
|
|
|
|
|
|
|
|
let borderListTable = mainContentPane.getElementsByClassName("borderlist")[0];
|
|
|
|
|
|
|
|
let playerRows = borderListTable.getElementsByTagName("tr");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let headerCells = playerRows[0].getElementsByTagName("th");
|
|
|
|
|
|
|
|
let idHeaderCell = createCustomElement("th", {"class": headerCells[0].getAttribute("class")}, "Id");
|
|
|
|
|
|
|
|
playerRows[0].insertBefore(idHeaderCell, headerCells[1]);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (let i = 1; i < playerRows.length; i ++) {
|
|
|
|
|
|
|
|
let playerCells = playerRows[i].getElementsByTagName("td");
|
|
|
|
|
|
|
|
let playerProfileLink = playerCells[1].getElementsByTagName("a")[0].getAttribute("href");
|
|
|
|
|
|
|
|
let idValue = playerProfileLink.replace(/^.*id=(\d+)$/, "$1");
|
|
|
|
|
|
|
|
let idCell = createCustomElement("td", {"class": playerCells[0].getAttribute("class")}, idValue);
|
|
|
|
|
|
|
|
playerRows[i].insertBefore(idCell, playerCells[1]);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Display unit-points on user profile */
|
|
|
|
/* Display unit-points on user profile */
|
|
|
|
if (section === "info_player" && (module === "profile" || module === null)) {
|
|
|
|
if (section === "info_player" && (module === "profile" || module === null)) {
|
|
|
|
let mainContentPane = document.getElementsByClassName("contentpane")[1];
|
|
|
|
let mainContentPane = document.getElementsByClassName("contentpane")[1];
|
|
|
|
@@ -298,7 +331,6 @@ function main() {
|
|
|
|
let firstInput = form.getElementsByTagName("input")[0];
|
|
|
|
let firstInput = form.getElementsByTagName("input")[0];
|
|
|
|
form.insertBefore(table, firstInput);
|
|
|
|
form.insertBefore(table, firstInput);
|
|
|
|
form.addEventListener("submit", function (event) {
|
|
|
|
form.addEventListener("submit", function (event) {
|
|
|
|
event.preventDefault();
|
|
|
|
|
|
|
|
let formData = new FormData(this);
|
|
|
|
let formData = new FormData(this);
|
|
|
|
let attackCount = parseInt(formData.get("occurrences").toString());
|
|
|
|
let attackCount = parseInt(formData.get("occurrences").toString());
|
|
|
|
formData.delete("occurrences");
|
|
|
|
formData.delete("occurrences");
|
|
|
|
@@ -317,8 +349,9 @@ function main() {
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Fix select bug in market */
|
|
|
|
/* Market sending page */
|
|
|
|
if (section === "build_market" && (module === "send" || module === null)) {
|
|
|
|
if (section === "build_market" && (module === "send" || module === null)) {
|
|
|
|
|
|
|
|
/* Fix select bug in target village select */
|
|
|
|
let select = document.getElementsByName("village_name")[0];
|
|
|
|
let select = document.getElementsByName("village_name")[0];
|
|
|
|
select.removeAttribute("onchange");
|
|
|
|
select.removeAttribute("onchange");
|
|
|
|
select.addEventListener("change", function () {
|
|
|
|
select.addEventListener("change", function () {
|
|
|
|
@@ -333,6 +366,51 @@ function main() {
|
|
|
|
sendY.value = xy[1];
|
|
|
|
sendY.value = xy[1];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Add form to send resources by thousands */
|
|
|
|
|
|
|
|
let sendForm = document.getElementsByTagName("form")[0]
|
|
|
|
|
|
|
|
sendForm.addEventListener("submit", function () {
|
|
|
|
|
|
|
|
let inputs = this.getElementsByTagName("input");
|
|
|
|
|
|
|
|
for (let i = 0; i < inputs.length; i ++) {
|
|
|
|
|
|
|
|
if (inputs[i].getAttribute("name").endsWith("_k")) {
|
|
|
|
|
|
|
|
inputs[i].setAttribute("name", "");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
let sendFormTables = sendForm.getElementsByTagName("table");
|
|
|
|
|
|
|
|
let newTable = sendFormTables[0].cloneNode(true);
|
|
|
|
|
|
|
|
newTable.getElementsByTagName("th")[0].textContent = "Ressources par milliers";
|
|
|
|
|
|
|
|
let resCells = newTable.getElementsByTagName("td");
|
|
|
|
|
|
|
|
for (let i = 0; i < resCells.length; i ++) {
|
|
|
|
|
|
|
|
let resInput = resCells[i].getElementsByTagName("input")[0];
|
|
|
|
|
|
|
|
let resName = resInput.getAttribute("name");
|
|
|
|
|
|
|
|
let resNameK = resInput.getAttribute("name") + "_k";
|
|
|
|
|
|
|
|
resInput.setAttribute("name", resNameK);
|
|
|
|
|
|
|
|
resInput.addEventListener("change", function () {
|
|
|
|
|
|
|
|
document.getElementsByName(resName)[0].value = 1000 * parseInt(this.value);
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
let spanInput = resCells[i].getElementsByTagName("span")[0];
|
|
|
|
|
|
|
|
let resMax = spanInput.textContent.replace(/\(/, "").replace("\)", "").replace(/\./, "");
|
|
|
|
|
|
|
|
let rMax = Math.floor(parseInt(resMax) / 1000);
|
|
|
|
|
|
|
|
spanInput.setAttribute(
|
|
|
|
|
|
|
|
"onclick",
|
|
|
|
|
|
|
|
"insertNum('kingsage', '" + resNameK + "', '" + rMax.toString() + "'); " +
|
|
|
|
|
|
|
|
"insertNum('kingsage', '" + resName + "', '" + (1000 * rMax).toString() + "');"
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
spanInput.textContent = "(" + rMax.toString() + "K)";
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
sendForm.insertBefore(newTable, sendFormTables[0]);
|
|
|
|
|
|
|
|
sendForm.insertBefore(createCustomElement("br"), sendFormTables[1]);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Set inputs type=number */
|
|
|
|
|
|
|
|
let sendInputs = sendForm.getElementsByTagName("input");
|
|
|
|
|
|
|
|
for (let i = 0; i < sendInputs.length; i ++) {
|
|
|
|
|
|
|
|
if (sendInputs[i].name.startsWith("send_")) {
|
|
|
|
|
|
|
|
sendInputs[i].setAttribute("type", "number");
|
|
|
|
|
|
|
|
sendInputs[i].value = "";
|
|
|
|
|
|
|
|
sendInputs[i].style.width = "65px";
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Improve attacks display */
|
|
|
|
/* Improve attacks display */
|
|
|
|
|