HWM_Resource_Retabler

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

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

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

  1. // ==UserScript==
  2. // @name HWM_Resource_Retabler
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.2
  5. // @description Меняет разметку вкладки ресурсов под нужды других скриптов
  6. // @author Tags
  7. // @include /^https{0,1}:\/\/(www\.heroeswm\.ru|178\.248\.235\.15|my\.lordswm\.com)\/(pl_info.php*)/
  8. // @icon https://www.google.com/s2/favicons?sz=64&domain=heroeswm.ru
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12. const MercenaryElements = ["абразив","змеиный яд","клык тигра","ледяной кристалл","лунный камень","огненный кристалл","осколок метеорита","цветок ведьм","цветок ветров","цветок папоротника","ядовитый гриб"];
  13.  
  14. (function() {
  15. 'use strict';
  16.  
  17. const tables = Array.from(document.getElementsByClassName('wb'));
  18. const resourceTable = tables[tables.indexOf(tables.filter(e=>e.innerText=="Ресурсы")[0])+3]
  19.  
  20. //Вытаскиваем все доступные элементы и превращаем в объекты.
  21. const items = resourceTable.innerHTML.split(/&nbsp;/).filter(e => e !== "").map(s => s.replaceAll("<b>", "").replaceAll("<br>", "").replaceAll("</b>", "")).map(e => ({
  22. name: e.split(':')[0],
  23. value: e.split(':')[1],
  24. isMercenary: MercenaryElements.includes(e.split(':')[0]),
  25. }));
  26.  
  27. const parts = items.filter(e=>!e.isMercenary);
  28. const mercenary = items.filter(e=>e.isMercenary);
  29. //Чистим табличку
  30. resourceTable.innerHTML = "";
  31.  
  32. //Записываем новую разметку
  33. for (let item of parts) {
  34. const div = Object.assign(
  35. document.createElement('div'), {
  36. innerHTML: `<div>&nbsp;&nbsp;&nbsp;&nbsp;<b>${item.name}</b>:&nbsp;${item.value}</div>`,
  37.  
  38. });;
  39. div.setAttribute('ismercenary', item.isMercenary);
  40. div.setAttribute('name', item.name);
  41. resourceTable.appendChild(div);
  42. }
  43. const splitter = Object.assign(
  44. document.createElement('div'), {
  45. innerHTML: `<div name="splitter"><br></div>`,
  46.  
  47. });;
  48. if(parts.length>0){
  49. resourceTable.appendChild(splitter);
  50. }
  51. for (let item of mercenary) {
  52. const div = Object.assign(
  53. document.createElement('div'), {
  54. innerHTML: `<div">&nbsp;&nbsp;&nbsp;&nbsp;<b>${item.name}</b>:&nbsp;${item.value}</div>`,
  55.  
  56. });;
  57. div.setAttribute('ismercenary', item.isMercenary);
  58. div.setAttribute('name', item.name);
  59. resourceTable.appendChild(div);
  60. }
  61. })();
  62.