Resource bar helper

Display targets and offsets for warchests

目前为 2022-09-01 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Resource bar helper
  3. // @namespace http://knightsradiant.pw/
  4. // @version 0.32
  5. // @description Display targets and offsets for warchests
  6. // @require https://code.jquery.com/jquery-3.6.0.min.js
  7. // @license GPL-3.0-or-later
  8. // @author Talus
  9. // @match https://politicsandwar.com/*
  10. // @grant none
  11. // ==/UserScript==
  12.  
  13. (function() {
  14. var $ = window.jQuery;
  15.  
  16. // ADD YOUR NATION'S REQUIREMENTS BELOW (INTEGERS ONLY, NO SEPARATORS)
  17. var CREDITS_REQUIRED = 0;
  18. var URANIUM_REQUIRED = 0;
  19. var FOOD_REQUIRED = 0;
  20. var DAYS_OF_RAWS_REQUIRED = 0;
  21. var GASOLINE_REQUIRED = 0;
  22. var MUNITIONS_REQUIRED = 0;
  23. var STEEL_REQUIRED = 0;
  24. var ALUMINUM_REQUIRED = 0;
  25. var MONEY_REQUIRED = 0;
  26.  
  27. var DAILY_COAL_REQUIRED = 0;
  28. var DAILY_OIL_REQUIRED = 0;
  29. var DAILY_LEAD_REQUIRED = 0;
  30. var DAILY_IRON_REQUIRED = 0;
  31. var DAILY_BAUXITE_REQUIRED = 0;
  32.  
  33. var PROJECT_URANIUM = 0;
  34. var PROJECT_FOOD = 0;
  35. var PROJECT_COAL = 0;
  36. var PROJECT_OIL = 0;
  37. var PROJECT_LEAD = 0;
  38. var PROJECT_IRON = 0;
  39. var PROJECT_BAUXITE = 0;
  40. var PROJECT_GASOLINE = 0;
  41. var PROJECT_MUNITIONS = 0;
  42. var PROJECT_STEEL = 0;
  43. var PROJECT_ALUMINUM = 0;
  44. var PROJECT_MONEY = 0;
  45.  
  46. var TARGET_PERCENTAGE = 100;
  47. // DO NOT EDIT BELOW THIS LINE
  48.  
  49. var MARKET_URL = 'https://politicsandwar.com/index.php?id=90&display=world&resource1=RESOURCE1&buysell=&ob=price&od=DEF&maximum=100&minimum=0&search=Go'
  50.  
  51. var wc = [
  52. {
  53. "target": MARKET_URL.replace('RESOURCE1','credits'),
  54. "icon": '<img src="https://politicsandwar.com/img/icons/16/point_gold.png" alt="credits">',
  55. "required": Number(CREDITS_REQUIRED * TARGET_PERCENTAGE / 100)
  56. },
  57. {
  58. "target": MARKET_URL.replace('RESOURCE1','coal'),
  59. "icon": '<img src="https://politicsandwar.com/img/resources/coal.png" alt="coal">',
  60. "required": Number(DAYS_OF_RAWS_REQUIRED * DAILY_COAL_REQUIRED * TARGET_PERCENTAGE / 100)
  61. },
  62. {
  63. "target": MARKET_URL.replace('RESOURCE1','oil'),
  64. "icon": '<img src="https://politicsandwar.com/img/resources/oil.png" alt="oil">',
  65. "required": Number(DAYS_OF_RAWS_REQUIRED * DAILY_OIL_REQUIRED * TARGET_PERCENTAGE / 100 + PROJECT_OIL)
  66. },
  67. {
  68. "target": MARKET_URL.replace('RESOURCE1','uranium'),
  69. "icon": '<img src="https://politicsandwar.com/img/resources/uranium.png" alt="uranium">',
  70. "required": Number(URANIUM_REQUIRED * TARGET_PERCENTAGE / 100 + PROJECT_URANIUM)
  71. },
  72. {
  73. "target": MARKET_URL.replace('RESOURCE1','lead'),
  74. "icon": '<img src="https://politicsandwar.com/img/resources/lead.png" alt="lead">',
  75. "required": Number(DAYS_OF_RAWS_REQUIRED * DAILY_LEAD_REQUIRED * TARGET_PERCENTAGE / 100 + PROJECT_LEAD)
  76. },
  77. {
  78. "target": MARKET_URL.replace('RESOURCE1','iron'),
  79. "icon": '<img src="https://politicsandwar.com/img/resources/iron.png" alt="iron">',
  80. "required": Number(DAYS_OF_RAWS_REQUIRED * DAILY_IRON_REQUIRED * TARGET_PERCENTAGE / 100 + PROJECT_IRON)
  81. },
  82. {
  83. "target": MARKET_URL.replace('RESOURCE1','bauxite'),
  84. "icon": '<img src="https://politicsandwar.com/img/resources/bauxite.png" alt="bauxite">',
  85. "required": Number(DAYS_OF_RAWS_REQUIRED * DAILY_BAUXITE_REQUIRED * TARGET_PERCENTAGE / 100 + PROJECT_BAUXITE)
  86. },
  87. {
  88. "target": MARKET_URL.replace('RESOURCE1','gasoline'),
  89. "icon": '<img src="https://politicsandwar.com/img/resources/gasoline.png" alt="gasoline">',
  90. "required": Number(GASOLINE_REQUIRED * TARGET_PERCENTAGE / 100 + PROJECT_GASOLINE)
  91. },
  92. {
  93. "target": MARKET_URL.replace('RESOURCE1','munitions'),
  94. "icon": '<img src="https://politicsandwar.com/img/resources/munitions.png" alt="munitions">',
  95. "required": Number(MUNITIONS_REQUIRED * TARGET_PERCENTAGE / 100 + PROJECT_MUNITIONS)
  96. },
  97. {
  98. "target": MARKET_URL.replace('RESOURCE1','steel'),
  99. "icon": '<img src="https://politicsandwar.com/img/resources/steel.png" alt="steel">',
  100. "required": Number(STEEL_REQUIRED * TARGET_PERCENTAGE / 100 + PROJECT_STEEL)
  101. },
  102. {
  103. "target": MARKET_URL.replace('RESOURCE1','aluminum'),
  104. "icon": '<img src="https://politicsandwar.com/img/resources/aluminum.png" alt="aluminum">',
  105. "required": Number(ALUMINUM_REQUIRED * TARGET_PERCENTAGE / 100 + PROJECT_ALUMINUM)
  106. },
  107. {
  108. "target": MARKET_URL.replace('RESOURCE1','food'),
  109. "icon": '<img src="https://politicsandwar.com/img/icons/16/steak_meat.png" alt="food">',
  110. "required": Number(FOOD_REQUIRED * TARGET_PERCENTAGE / 100 + PROJECT_FOOD)
  111. },
  112. {
  113. "target": 'https://politicsandwar.com/nation/revenue/',
  114. "icon": '<b style="color: #28d020;" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="Money">$</b>',
  115. "required": Number(MONEY_REQUIRED * TARGET_PERCENTAGE / 100 + PROJECT_MONEY)
  116. }
  117. ]
  118.  
  119. var rssCount = document.querySelector("#rssBar > div > div > span").textContent
  120. .trim().split(/\s+/).filter(function(val){return val != '$'})
  121. .map(function(x){return Number(x.replace(/,/g,''))});
  122.  
  123. var html='<table class="col-xs-12"><tr><td><table><tr><td>Actual:</td></tr><tr><td>Target:</td></tr><tr><td>Difference:</td></tr></table></td>';
  124. for (var i=0; i<wc.length; i++) {
  125. var difference = rssCount[i] - wc[i].required;
  126. var color = difference >= 0 ? '#FFF' : '#000';
  127. html += '<td><table><tr><td rowspan="3" style="vertical-align:text-top"><a href="'+wc[i].target+'">'+wc[i].icon+'</a></td><td style="text-align:right">'+rssCount[i].toLocaleString()+'</td></tr><tr><td style="text-align:right">'+wc[i].required.toLocaleString()+'</td></tr><tr><td style="text-align:right;color:'+color+'">'+difference.toLocaleString()+'</td></tr></table></td>'
  128. }
  129. html += '</tr></table>'
  130.  
  131. $("#rssBar > div > div > span").replaceWith(html);
  132. })();