Highlight RW Effects

Highlight RW effects in the attack loader

  1. // ==UserScript==
  2. // @name Highlight RW Effects
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.4
  5. // @description Highlight RW effects in the attack loader
  6. // @author Weav3r
  7. // @match https://www.torn.com/loader.php?sid=attack*
  8. // ==/UserScript==
  9.  
  10. (function() {
  11. 'use strict';
  12.  
  13. const specifiedClasses = [
  14. 'attacking-events-dune',
  15. 'attacking-events-critical-hit',
  16. 'attacking-events-standart-damage',
  17. 'attacking-events-mug',
  18. 'attacking-events-attack-win',
  19. 'attacking-events-miss',
  20. 'attacking-events-leave',
  21. 'attacking-events-attack-join',
  22. 'attacking-events-booster-use',
  23. 'attacking-events-ziro-damage',
  24. 'attacking-events-grenade-use',
  25. 'attacking-events-reloading',
  26. 'attacking-events-attack-lose',
  27. 'attacking-events-riot',
  28. 'attacking-events-quicken',
  29. "attacking-events-assault"
  30. ];
  31.  
  32. function highlightNonMatchingEvents() {
  33.  
  34. const messages = document.querySelectorAll('.message___Z4JCk');
  35.  
  36. messages.forEach(message => {
  37. const parent = message.closest('.col1____LGQW');
  38. if (parent) {
  39. const iconWrap = parent.querySelector('.iconWrap___aIfWj span');
  40. if (iconWrap) {
  41. const classes = iconWrap.classList;
  42. const matches = specifiedClasses.some(specifiedClass => classes.contains(specifiedClass));
  43. if (!matches) {
  44. parent.style.backgroundColor = 'rgba(255, 255, 204, 0.3)';
  45. }
  46. }
  47. }
  48. });
  49. }
  50.  
  51. highlightNonMatchingEvents();
  52.  
  53. const observer = new MutationObserver(() => {
  54. highlightNonMatchingEvents();
  55. });
  56.  
  57. observer.observe(document.body, {
  58. childList: true,
  59. subtree: true
  60. });
  61. })();