1 Commits

Author SHA1 Message Date
9a3c9c1401 Send resources by thousands
Some checks failed
Continuous Deployment / lint (push) Successful in 27s
Continuous Deployment / deploy-chrome (push) Failing after 17s
Continuous Deployment / deploy-firefox (push) Successful in 1m42s
2025-11-20 02:07:53 +01:00
4 changed files with 68 additions and 7 deletions

View File

@@ -1,5 +1,9 @@
# Changelog # Changelog
## 1.10.1 (2026-11-20)
- envoi des ressources par milliers sur le marché
## 1.9.2 (2025-11-18) ## 1.9.2 (2025-11-18)
- simplification du code - simplification du code

View File

@@ -1,7 +1,7 @@
{ {
"manifest_version": 3, "manifest_version": 3,
"name": "KAplus", "name": "KAplus",
"version": "1.9.2", "version": "1.10.1",
"developer": { "developer": {
"name": "Samuel Campos", "name": "Samuel Campos",

View File

@@ -5,8 +5,8 @@
"firefox" "firefox"
], ],
"release_notes": { "release_notes": {
"fr": "- simplification du code", "fr": "- envoi des ressources par milliers sur le marché",
"en-US": "- code simplification" "en-US": "- send resources by thousands in market"
} }
} }
} }

View File

@@ -119,15 +119,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");
@@ -298,7 +310,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 +328,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 +345,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 */