Trimps tools

Trimps tools (visual)

当前为 2017-03-16 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Trimps tools
  3. // @namespace trimps.github.io
  4. // @version 1.017
  5. // @description Trimps tools (visual)
  6. // @author Anton
  7. // @match https://trimps.github.io
  8. // @require http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
  9. // ==/UserScript==
  10.  
  11. (function() {
  12. 'use strict';
  13.  
  14. var tMain, tAutoBuy, $ = jQuery;
  15.  
  16. var _getBarWidthPercent = function(barSelector) {
  17. return jQuery(barSelector).width() / jQuery(barSelector).parent().width() * 100;
  18. }
  19.  
  20. var _checkProgress = function() {
  21. var maxProgress = 0, maxResource = '';
  22. var food = _getBarWidthPercent('#foodBar');
  23. var wood = _getBarWidthPercent('#woodBar');
  24. var metal = _getBarWidthPercent('#metalBar');
  25. if (food > maxProgress) {maxProgress = food; maxResource = 'food';}
  26. if (wood > maxProgress) {maxProgress = wood; maxResource = 'wood';}
  27. if (metal > maxProgress) {maxProgress = metal; maxResource = 'metal';}
  28. document.title = '' + Math.floor(maxProgress) + '% ' + maxResource;
  29. };
  30.  
  31. var _styleUpdate = function() {
  32. // remove counts
  33. $('head').append('<style type="text/css">.queueItem,.btn{padding:0}.thingColorCanNotAfford.upgradeThing{background-color:#530053;}</style>');
  34. // remove tabs
  35. $('#buyTabs').hide();
  36. filterTabs('all');
  37. // remove captions
  38. $('#buildingsTitleDiv,#upgradesTitleDiv,#equipmentTitleDiv').hide();
  39. // fix height
  40. $('#topRow,#queueContainer').css('margin-bottom', '0');
  41. $('#jobsTitleDiv').css('padding', '0').css('font-size', 'smaller');
  42. $('#buyHere').css('margin', '0').css('padding', '0').css('overflow-x', 'hidden');
  43. $('#queueContainer').css('height', '70px');
  44. $('#numTabs').css('margin', '0');
  45. $('#buyContainer').css('height', 'calc(99vh - 20vw - 96px)');
  46. // fix amount
  47. $('.buyBox').find('.thing').find('br').remove();
  48. $('.buyBox').find('.thing').find('.thingOwned').css('margin-left','4px');
  49. }
  50.  
  51. var _autoUpgrade = function() {
  52. var $item = $('#upgradesHere').find('.thingColorCanAfford').first();
  53. if ($item.length > 0) {
  54. $item.trigger( "click" );
  55. return 1;
  56. } else {
  57. return 0;
  58. }
  59. }
  60.  
  61. var _autoBuy = function() {
  62. var $item = $('#buildingsHere').find('.thingColorCanAfford').last();
  63. if ($item.length > 0 && $item.attr('id') != 'Trap') {
  64. $item.trigger("click");
  65. return 1;
  66. } else {
  67. return 0;
  68. }
  69. }
  70.  
  71. var _autoJobs = function() {
  72. var cnt = 0;
  73. var $trainer = $('#jobsHere').find('.thingColorCanAfford[id=Trainer]');
  74. if ($trainer.length > 0) {
  75. $trainer.trigger("click");
  76. cnt++;
  77. }
  78. var $explorer = $('#jobsHere').find('.thingColorCanAfford[id=Explorer]');
  79. if ($explorer.length > 0) {
  80. $explorer.trigger("click");
  81. cnt++;
  82. }
  83. var farmer = parseInt($('#jobsHere').find('#FarmerOwned').text());
  84. var lumber = parseInt($('#jobsHere').find('#LumberjackOwned').text());
  85. var miner = parseInt($('#jobsHere').find('#MinerOwned').text());
  86. var science = parseInt($('#jobsHere').find('#ScientistOwned').text());
  87. var jobsTotal = farmer + lumber + miner + science;
  88. if (science < (jobsTotal / 31)) {
  89. var $science = $('#jobsHere').find('.thingColorCanAfford[id=Scientist]');
  90. if ($science.length > 0) {
  91. $science.trigger("click");
  92. cnt++;
  93. }
  94. }
  95. if (miner < (jobsTotal / 3.1)) {
  96. var $miner = $('#jobsHere').find('.thingColorCanAfford[id=Miner]');
  97. if ($miner.length > 0) {
  98. $miner.trigger("click");
  99. cnt++;
  100. }
  101. }
  102. if (lumber < (jobsTotal / 3.1)) {
  103. var $lumber = $('#jobsHere').find('.thingColorCanAfford[id=Lumberjack]');
  104. if ($lumber.length > 0) {
  105. $lumber.trigger("click");
  106. cnt++;
  107. }
  108. }
  109. if (farmer < (jobsTotal / 3.1)) {
  110. var $farmer = $('#jobsHere').find('.thingColorCanAfford[id=Farmer]');
  111. if ($farmer.length > 0) {
  112. $farmer.trigger("click");
  113. cnt++
  114. }
  115. }
  116. var unemployed = parseInt($('#jobsTitleUnemployed').text());
  117. if (unemployed > 0 && cnt === 0) {
  118. $farmer = $('#jobsHere').find('.thingColorCanAfford[id=Farmer]');
  119. if ($farmer.length > 0) {
  120. $farmer.trigger("click");
  121. cnt++
  122. }
  123. }
  124.  
  125. return cnt;
  126. }
  127.  
  128. setTimeout(function() {
  129. tMain = setInterval(_checkProgress, 500);
  130. tAutoBuy = setInterval(function() {
  131. var cnt = _autoUpgrade() + _autoBuy() + _autoJobs();
  132. if (cnt > 0) {
  133. tooltip('hide');
  134. }
  135. }, 1000);
  136. _styleUpdate();
  137. }, 1000);
  138.  
  139. })();