Disposal J.A.R.V.I.S.

color disposal options based on safety

  1. // ==UserScript==
  2. // @name Disposal J.A.R.V.I.S.
  3. // @namespace disposal-guide.nao.zero
  4. // @version 1.05
  5. // @description color disposal options based on safety
  6. // @author Terekhov, nao
  7. // @match https://www.torn.com/loader.php?sid=crimes*
  8. // @icon https://www.google.com/s2/favicons?sz=64&domain=torn.com
  9. // @grant none
  10. // ==/UserScript==
  11. let url = window.location.href;
  12. const colors = {
  13. safe: "#40Ab24",
  14. moderatelySafe: "#A4D497",
  15. caution: "#D6BBA2",
  16. unsafe: "#B51B1B",
  17. };
  18. const JOB_METHOD_DIFFICULTIES_MAP = {
  19. "Biological Waste": {
  20. safe: ["Sink"],
  21. moderatelySafe: [],
  22. caution: ["Burn"],
  23. unsafe: ["Bury"],
  24. },
  25. "Body Part": {
  26. safe: ["Dissolve"],
  27. moderatelySafe: [],
  28. caution: [],
  29. unsafe: [],
  30. },
  31. "Broken Appliance": {
  32. safe: ["Sink"],
  33. moderatelySafe: [],
  34. caution: ["Abandon", "Bury"],
  35. unsafe: ["Dissolve"],
  36. },
  37. "Building Debris": {
  38. safe: ["Sink"],
  39. moderatelySafe: [],
  40. caution: ["Abandon", "Bury"],
  41. unsafe: [],
  42. },
  43. "Dead Body": {
  44. safe: ["Dissolve"],
  45. moderatelySafe: [],
  46. caution: [],
  47. unsafe: [],
  48. },
  49. Documents: {
  50. safe: ["Burn"],
  51. moderatelySafe: [],
  52. caution: ["Abandon", "Bury"],
  53. unsafe: ["Dissolve", "Sink"],
  54. },
  55. Firearm: {
  56. safe: ["Sink"],
  57. moderatelySafe: ["Bury"],
  58. caution: [],
  59. unsafe: ["Dissolve"],
  60. },
  61. "General Waste": {
  62. safe: ["Burn"],
  63. moderatelySafe: ["Bury"],
  64. caution: ["Abandon", "Sink"],
  65. unsafe: ["Dissolve"],
  66. },
  67. "Industrial Waste": {
  68. safe: ["Sink"],
  69. moderatelySafe: [],
  70. caution: ["Abandon", "Bury"],
  71. unsafe: [],
  72. },
  73. "Murder Weapon": {
  74. safe: ["Sink"],
  75. moderatelySafe: [],
  76. caution: [],
  77. unsafe: ["Dissolve"],
  78. },
  79. "Old Furniture": {
  80. safe: ["Burn"],
  81. moderatelySafe: [],
  82. caution: ["Abandon", "Bury", "Sink"],
  83. unsafe: ["Dissolve"],
  84. },
  85. Vehicle: {
  86. safe: ["Sink"],
  87. moderatelySafe: ["Burn"],
  88. caution: ["Abandon"],
  89. unsafe: [],
  90. },
  91. };
  92. const NERVE_COST_BY_METHOD = {
  93. Abandon: 6,
  94. Bury: 8,
  95. Burn: 10,
  96. Sink: 12,
  97. Dissolve: 14,
  98. };
  99.  
  100. function insert() {
  101. url = window.location.href;
  102.  
  103. if (!url.includes("disposal")){
  104. return;
  105. }
  106.  
  107. $(".crime-option:not([processed])").each(function () {
  108. const crimeName = $(
  109. $("div[class^='crimeOptionSection']", $(this))[0],
  110. ).text();
  111. if (JOB_METHOD_DIFFICULTIES_MAP[crimeName]) {
  112. for (let crimeDifficulty in JOB_METHOD_DIFFICULTIES_MAP[crimeName]) {
  113. let crimeColor = colors[crimeDifficulty];
  114. for (let method of JOB_METHOD_DIFFICULTIES_MAP[crimeName][
  115. crimeDifficulty
  116. ]) {
  117. $(`button[aria-label='${method}']`, $(this)).css(
  118. "border",
  119. `3px solid ${crimeColor}`,
  120. );
  121. }
  122. }
  123. }
  124. $(this).attr("processed", "true");
  125. });
  126. }
  127.  
  128.  
  129. setInterval(insert, 1000);
  130.