Racing Upgrades

desc

  1. // ==UserScript==
  2. // @name Racing Upgrades
  3. // @namespace somenamespace
  4. // @version 0.1
  5. // @description desc
  6. // @author tos
  7. // @match *.torn.com/loader.php?sid=racing
  8. // @grant none
  9. // ==/UserScript==
  10.  
  11. var barWrap, barValues;
  12. barWrap = document.getElementsByClassName('bar-wrap');
  13. for(i=0; i < barWrap.length; i++){
  14. barValues = getBarValues(barWrap[i]);
  15. barWrap[i].setAttribute('title', barValues.grey +'% ('+ barValues.sign + (barValues.color - barValues.grey) +'%)');
  16. }
  17.  
  18. const observer = new MutationObserver((mutations) => {
  19. for (const mutation of mutations) {
  20. for (const node of mutation.addedNodes) {
  21. if(node.className){
  22. var barWrap, barValues;
  23. if(node.className == 'pm-items-wrap'){
  24. barWrap = node.getElementsByClassName('bar-wrap');
  25. for(i=0; i < barWrap.length; i++){
  26. barValues = getBarValues(barWrap[i]);
  27. var modValue = barValues.color - barValues.grey;
  28. modValue = +modValue.toFixed(2);
  29. barWrap[i].setAttribute('title', barValues.sign + modValue +'%');
  30. }
  31. }
  32. if(node.className.includes('enlist-wrap') || node.className.includes('car-selected')){
  33. barWrap = node.getElementsByClassName('bar-wrap');
  34. for(i=0; i < barWrap.length; i++){
  35. barValues = getBarValues(barWrap[i]);
  36. barWrap[i].setAttribute('title', barValues.grey +'% ('+ barValues.sign + (barValues.color - barValues.grey) +'%)');
  37. }
  38. }
  39. }
  40. }
  41. }
  42. });
  43.  
  44. const wrapper = document.querySelector('#racingAdditionalContainer');
  45. observer.observe(wrapper, { subtree: true, childList: true });
  46.  
  47. function getBarValues(bar){
  48. var barValues = {};
  49. barValues.color = parseFloat(bar.querySelector('.bar-color-wrap-d').style.width.split('%')[0]);
  50. barValues.color = +barValues.color.toFixed(2);
  51. barValues.grey = parseFloat(bar.querySelector('.bar-gray-light-wrap-d').style.width.split('%')[0]);
  52. barValues.grey = +barValues.grey.toFixed(2);
  53. if(barValues.color === 0){
  54. barValues.color = barValues.grey;
  55. }
  56. barValues.sign = '+';
  57. if(bar.parentElement.parentElement.parentElement.className.includes('negative')) {
  58. barValues.sign = '-';
  59. }
  60. return barValues;
  61. }