HWM_Resource_Retabler

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

当前为 2022-07-06 提交的版本,查看 最新版本

此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.cn-greasyfork.org/scripts/447488/1067678/HWM_Resource_Retabler.js

// ==UserScript==
// @name         HWM_Resource_Retabler
// @namespace    http://tampermonkey.net/
// @version      0.2
// @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>`,

        });;
    if(parts.length>0){
        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);
    }
})();