HWM_Resource_Retabler

Меняет разметку вкладки ресурсов под нужды других скриптов

La data de 06-07-2022. Vezi ultima versiune.

Acest script nu ar trebui instalat direct. Aceasta este o bibliotecă pentru alte scripturi care este inclusă prin directiva meta a // @require https://update.greasyfork.org/scripts/447488/1067674/HWM_Resource_Retabler.js

// ==UserScript==
// @name         HWM_Resource_Retabler
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Меняет разметку вкладки ресурсов под нужды других скриптов
// @author       Tags
// @include      /^https{0,1}:\/\/(www\.heroeswm\.ru|178\.248\.235\.15|my\.lordswm\.com)\/(pl_info.php*)/
// @icon         https://www.google.com/s2/favicons?sz=64&domain=heroeswm.ru
// @grant        none
// ==/UserScript==

const MercenaryElements = ["абразив","змеиный яд","клык тигра","ледяной кристалл","лунный камень","огненный кристалл","осколок метеорита","цветок ведьм","цветок ветров","цветок папоротника","ядовитый гриб"];

(function() {
    'use strict';

     const tables = Array.from(document.getElementsByClassName('wb'));
     const resourceTable = tables[tables.indexOf(tables.filter(e=>e.innerText=="Ресурсы")[0])+3]

    //Вытаскиваем все доступные элементы и превращаем в объекты.
    const items = resourceTable.innerHTML.split(/&nbsp;/).filter(e => e !== "").map(s => s.replaceAll("<b>", "").replaceAll("<br>", "").replaceAll("</b>", "")).map(e => ({
        name: e.split(':')[0],
        value: e.split(':')[1],
        isMercenary: MercenaryElements.includes(e.split(':')[0]),
    }));

    const parts = items.filter(e=>!e.isMercenary);
    const mercenary = items.filter(e=>e.isMercenary);
    //Чистим табличку
    resourceTable.innerHTML = "";

    //Записываем новую разметку
        for (let item of parts) {
            const div = Object.assign(
                document.createElement('div'), {
                    innerHTML: `<div>&nbsp;&nbsp;&nbsp;&nbsp;<b>${item.name}</b>:&nbsp;${item.value}</div>`,

                });;
            div.setAttribute('ismercenary', item.isMercenary);
              div.setAttribute('name', item.name);
            resourceTable.appendChild(div);
        }
     const splitter = Object.assign(
                document.createElement('div'), {
                    innerHTML: `<div name="splitter"><br></div>`,

                });;
      resourceTable.appendChild(splitter);
    for (let item of mercenary) {
            const div = Object.assign(
                document.createElement('div'), {
                    innerHTML: `<div">&nbsp;&nbsp;&nbsp;&nbsp;<b>${item.name}</b>:&nbsp;${item.value}</div>`,

                });;
          div.setAttribute('ismercenary', item.isMercenary);
          div.setAttribute('name', item.name);
            resourceTable.appendChild(div);
        }
})();