diff --git a/CHANGELOG.md b/CHANGELOG.md index bb4bc16..9bb1dd1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## 1.4.0 (2025-08-31) + +- intégration des drapeaux d'attaque dans la barre de menu principale +- suppression des tours gauche et droite sur les petits écrans + +## 1.3.3 (2025-08-30) + +- suppression du rouleau de notification dans l'onglet messages du menu + ## 1.3.2 (2025-08-29) - correction du calcul du pourcentage des points troupes diff --git a/manifest.json b/manifest.json index 2beb7af..ef77d0c 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 3, "name": "KAplus", - "version": "1.3.2", + "version": "1.4.0", "author": "Samuel Campos - netoik.io", "description": "Extension développée pour améliorer l'expérience de jeu KingsAge (fonctionne avec ou sans premium)", diff --git a/src/kaplus.css b/src/kaplus.css index 72fdaab..80d8cac 100644 --- a/src/kaplus.css +++ b/src/kaplus.css @@ -1,3 +1,18 @@ +@keyframes blinking { + 0%, 100% { + opacity: 1; + } + 50% { + opacity: 0; + } +} + +@media (max-width:1000px) { + #display_left, #display_right { + display: none; + } +} + #banner_container { display: none; } @@ -10,17 +25,33 @@ .shortcut-element { top: 148px !important; text-align: center !important; + padding: 0 10px 0 12px !important; + } + .flag { + position: absolute; + top: 5px; + width: 50px; + opacity: 0.7; } .shortcut_container { float: none; - display: } - .shortcut_container:first-child { + .shortcut_container_left { text-align: right; } - .shortcut_container:last-child { + .shortcut_container_right { text-align: left; } + .shortcut_container_flag { + position: absolute; + top: 0; + } + .shortcut_container_flag_left { + left: 10px; + } + .shortcut_container_flag_right { + right: 15px; + } .shortcut_element { margin: 0 !important; padding: 0 !important; @@ -28,13 +59,16 @@ width: 70px !important; text-align: center; } + .shortcut_container_flag .shortcut_element { + width: auto !important; + } .shortcut_element_left, .shortcut_element_right, .shortcut_element_left_premium, .shortcut_element_right_premium { display: none; } .shortcut_element_center, .shortcut_element_center_premium { background: none; float: none; - diplay: inline-block; + display: inline-block; } .shortcut_element_marker, .shortcut_element_marker_premium { background-image: none !important; @@ -46,15 +80,26 @@ position: relative; opacity: 0.7; } + a.no_attack { + visibility: hidden; + } + a.has_attack { + .shortcut_element_image { + animation: blinking 2s infinite; + } + .shortcut_element_desc { + color: #FFFFFF; + } + } a:hover, a.has_notif { opacity: 1; } - a.has_notif .shortcut_element_image::after { + a.has_notif::after { background-image: url("moz-extension://__MSG_@@extension_id__/images/notif.svg"), url("chrome-extension://__MSG_@@extension_id__/images/notif.svg"); background-size: 13px 13px; position: absolute; top: -13px; - right: 3px; + right: -3px; width: 13px; height: 13px; content: ""; diff --git a/src/kaplus.js b/src/kaplus.js index cbdf3d8..6db8b65 100644 --- a/src/kaplus.js +++ b/src/kaplus.js @@ -30,6 +30,17 @@ function createRow(key, value) { } function shortcutElementReplace(elt, img, text) { + hyperlinkElements = elt.getElementsByTagName("a"); + if (hyperlinkElements.length == 2) { + hyperlinkElements[0].remove(); + elt.getElementsByTagName("a")[0].classList.add("has_notif"); + } + imageElements = elt.getElementsByTagName("img"); + if (imageElements.length == 1 && imageElements[0].getAttribute("src").endsWith("new_report.png")) { + imageElements[0].remove(); + elt.getElementsByTagName("a")[0].classList.add("has_notif"); + } + spanImageElement = document.createElement("span"); spanImageElement.classList.add("shortcut_element_image"); @@ -37,12 +48,6 @@ function shortcutElementReplace(elt, img, text) { imgElement.setAttribute("src", chrome.runtime.getURL("images/"+img+".svg")); spanImageElement.appendChild(imgElement); - hyperlinkElements = elt.getElementsByTagName("a"); - if (hyperlinkElements.length == 2) { - hyperlinkElements[0].remove(); - elt.getElementsByTagName("a")[0].classList.add("has_notif"); - } - hyperlinkElement = elt.getElementsByTagName("a")[0]; hyperlinkElement.textContent = ""; hyperlinkElement.appendChild(spanImageElement); @@ -55,6 +60,46 @@ function shortcutElementReplace(elt, img, text) { } } +function shortcutElementAddFlag(elt, side) { + shortcutContainer = document.createElement("div"); + shortcutContainer.classList.add("shortcut_container", "shortcut_container_flag", "shortcut_container_flag_"+side); + shortcutElement = document.createElement("div"); + shortcutElement.classList.add("shortcut_element"); + shortcutElementCenter = document.createElement("span"); + shortcutElementCenter.classList.add("shortcut_element_center"); + shortcutElementMarker = document.createElement("span"); + shortcutElementMarker.classList.add("shortcut_element_marker"); + + hyperlink = document.createElement("a"); + hyperlink.classList.add("no_attack"); + + spanImage = document.createElement("span"); + spanImage.classList.add("shortcut_element_image"); + image = document.createElement("img"); + image.setAttribute("src", chrome.runtime.getURL("images/flag.svg")); + + spanDesc = document.createElement("span"); + spanDesc.classList.add("shortcut_element_desc"); + + layTowerAttacks = document.getElementsByClassName("lay_tower_"+side+"_top_attack"); + if (layTowerAttacks.length == 1) { + hyperlink.setAttribute("href", layTowerAttacks[0].getElementsByTagName("a")[0].getAttribute("href")); + spanDesc.textContent = layTowerAttacks[0].textContent; + hyperlink.classList.add("has_attack"); + hyperlink.classList.remove("no_attack"); + } + + spanImage.appendChild(image); + hyperlink.appendChild(spanImage); + hyperlink.appendChild(spanDesc); + shortcutElementMarker.appendChild(hyperlink); + shortcutElementCenter.appendChild(shortcutElementMarker); + shortcutElement.appendChild(shortcutElementCenter); + shortcutContainer.appendChild(shortcutElement); + elt.appendChild(shortcutContainer); +} + +/* Improve main menu display */ layCastleTopElements = document.getElementsByClassName("lay_castle_top"); if (layCastleTopElements.length == 1) { shortcutElements = layCastleTopElements[0].getElementsByClassName("shortcut_element"); @@ -65,8 +110,17 @@ if (layCastleTopElements.length == 1) { shortcutElementReplace(shortcutElements[4], "messages", ""); shortcutElementReplace(shortcutElements[5], "tools", ""); shortcutElementReplace(shortcutElements[6], "favorites", ""); + + shortcutBar = layCastleTopElements[0].getElementsByClassName("shortcut-element")[0]; + shortcutElementAddFlag(shortcutBar, "left"); + shortcutElementAddFlag(shortcutBar, "right"); + + shortcutContainers = layCastleTopElements[0].getElementsByClassName("shortcut_container"); + shortcutContainers[0].classList.add("shortcut_container_left"); + shortcutContainers[2].classList.add("shortcut_container_right"); } +/* Display unit-points on user profile */ if (document.body.id === "info_player") { mainContentPane = document.getElementsByClassName("contentpane")[1]; borderLists = mainContentPane.getElementsByClassName("borderlist"); @@ -95,6 +149,7 @@ if (document.body.id === "info_player") { playerPropertiesTable.appendChild(createRow("% points troupes:", armyPercent)); } +/* Display unit-points on village overview */ if (document.body.id === "overview") { settlements = document.getElementById("settlement").textContent.split("|"); noborderRows = document.getElementsByClassName("noborder");