Advertisement
Guest User

Untitled

a guest
Apr 27th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.33 KB | None | 0 0
  1. function onEdit(e){
  2. //List of Variables
  3. //Sheet Variables
  4. var ws = SpreadsheetApp.getActiveSpreadsheet();
  5. var ref = ws.getSheets()[0];
  6. var build = ws.getSheets()[1];
  7. var mech = ws.getSheets()[2];
  8. var avg = ws.getSheets()[3];
  9. var user = ws.getSheets()[4];
  10. //Column Variables
  11. var buildList = ref.getRange("A:A");
  12. var bossList = ref.getRange("D:D");
  13. //Storage Variables
  14. var correctBuild = 0;
  15. var correctBoss = 0;
  16. var buildCount = 0;
  17. var bossCount = 0;
  18. var maxMech = 0;
  19. var weightMech = 0;
  20. var valueToChange = 0;
  21. //Comparison Variables
  22. var dpsCompare = 0;
  23. var critCompare = 0;
  24. var movCompare = 0;
  25. var schCompare = 0;
  26. var downCompare = 0;
  27.  
  28. //Determining the max amount of Builds there are
  29. for(var i=1; i<=1000; i++){
  30. if(ref.getRange(i, 1).isBlank() != true){
  31. buildCount++;
  32. }else{
  33. break;
  34. }
  35. }
  36.  
  37. //Determining the max amount of Bosses there are
  38. for(var i=1; i<=1000; i++){
  39. if(ref.getRange(i, 4).isBlank() != true){
  40. bossCount++;
  41. }else{
  42. break;
  43. }
  44. }
  45.  
  46. //Finding the Correct Build
  47. for(var i=1; i<=buildCount; i++){
  48. var currentBuild = ref.getRange(i, 1).getValue();
  49. if(currentBuild == user.getRange(3, 3).getValue()){
  50. correctBuild = i;
  51. break;
  52. }
  53. }
  54.  
  55. //Finding the Correct Boss
  56. for(var i=1; i<=bossCount; i++){
  57. var currentBoss = ref.getRange(i, 4).getValue();
  58. if(currentBoss == user.getRange(12, 3).getValue()){
  59. correctBoss = i;
  60. break;
  61. }
  62. }
  63.  
  64. //Finding the maximum amount of mechanics a boss has.
  65. for(var i=1; i<=30; i++){
  66. if(ref.getRange(i, 5+correctBoss).isBlank() != true){
  67. maxMech++;
  68. }else{
  69. break;
  70. }
  71. }
  72.  
  73. //Displaying Build Data
  74. for(var i=4; i<=9; i++){
  75. if(i < 8){
  76. build.getRange(correctBuild+4, i-1).copyTo(user.getRange(i, 3), {contentsOnly:true});
  77. }else if(i == 9){
  78. build.getRange(correctBuild+4, i-2).copyTo(user.getRange(i, 3), {contentsOnly:true});
  79. }
  80. }
  81.  
  82. //Clearing Boss Data
  83. for(var i=13; i<29; i++){
  84. if(i >= 18){
  85. user.getRange(i, 2).clear({contentsOnly:true});
  86. }
  87. user.getRange(i, 3).clear({contentsOnly:true});
  88. user.getRange(i, 4).clear({contentsOnly:true});
  89. }
  90.  
  91. //Displaying Boss Data
  92. for(var i=13; i<(18+maxMech); i++){
  93. //Build Average Data
  94. if(i < 18){
  95. if(correctBoss <= 5){
  96. if(i == 13){
  97. dpsCompare = avg.getRange(3+correctBuild, (correctBoss*35)-32).getValue();
  98. critCompare = avg.getRange(3+correctBuild, (correctBoss*35)-25).getValue();
  99. movCompare = avg.getRange(3+correctBuild, (correctBoss*35)-18).getValue();
  100. schCompare = avg.getRange(3+correctBuild, (correctBoss*35)-11).getValue();
  101. downCompare = avg.getRange(3+correctBuild, (correctBoss*35)-4).getValue();
  102. }
  103. avg.getRange(3+correctBuild, (correctBoss*35)-39+((i-12)*7)).copyTo(user.getRange(i, 3), {contentsOnly:true});
  104. }
  105. if(correctBoss > 5 && correctBoss <= 10){
  106. if(i == 13){
  107. dpsCompare = avg.getRange(3+correctBuild, ((correctBoss-5)*35)-32).getValue();
  108. critCompare = avg.getRange(3+correctBuild, ((correctBoss-5)*35)-25).getValue();
  109. movCompare = avg.getRange(3+correctBuild, ((correctBoss-5)*35)-18).getValue();
  110. schCompare = avg.getRange(3+correctBuild, ((correctBoss-5)*35)-11).getValue();
  111. downCompare = avg.getRange(3+correctBuild, ((correctBoss-5)*35)-4).getValue();
  112. }
  113. avg.getRange(49+correctBuild, ((correctBoss-5)*35)-39+((i-12)*7)).copyTo(user.getRange(i, 3), {contentsOnly:true});
  114. }
  115. if(correctBoss > 10 && correctBoss <= 13){
  116. if(i == 13){
  117. dpsCompare = avg.getRange(3+correctBuild, ((correctBoss-10)*35)-32).getValue();
  118. critCompare = avg.getRange(3+correctBuild, ((correctBoss-10)*35)-25).getValue();
  119. movCompare = avg.getRange(3+correctBuild, ((correctBoss-10)*35)-18).getValue();
  120. schCompare = avg.getRange(3+correctBuild, ((correctBoss-10)*35)-11).getValue();
  121. downCompare = avg.getRange(3+correctBuild, ((correctBoss-10)*35)-4).getValue();
  122. }
  123. avg.getRange(95+correctBuild, ((correctBoss-10)*35)-39+((i-12)*7)).copyTo(user.getRange(i, 3), {contentsOnly:true});
  124. }
  125. //Weighted Build Average Data
  126. if(i == 17){
  127. dpsCompare = (dpsCompare / ref.getRange(correctBuild, 3).getValue())*100;
  128. switch(correctBoss){
  129.  
  130. //All Bosses
  131. default:
  132. //Crit Comparison
  133. if(critCompare >= 92){
  134. critCompare = (critCompare - 92) * ref.getRange(maxMech+2, 35+correctBoss).getValue();
  135. user.getRange(14, 4).setValue(critCompare);
  136. }else{
  137. user.getRange(14, 4).setValue(0);
  138. }
  139. //Moving Rate Comparison
  140. if(movCompare >= 85){
  141. movCompare = (movCompare - 85) * ref.getRange(maxMech+3, 35+correctBoss).getValue();
  142. user.getRange(15, 4).setValue(movCompare);
  143. }else{
  144. user.getRange(15, 4).setValue(0);
  145. }
  146. //Scholar Rate Comparison
  147. if(schCompare > 70 && schCompare < 92){
  148. user.getRange(16, 4).setValue(0);
  149. }
  150. if(schCompare >= 92){
  151. schCompare = (schCompare - 92) * ref.getRange(maxMech+4, 35+correctBoss).getValue();
  152. user.getRange(16, 4).setValue(schCompare);
  153. }
  154. if(schCompare <= 70){
  155. schCompare = (schCompare - 70) * ref.getRange(maxMech+4, 35+correctBoss).getValue();
  156. user.getRange(16, 4).setValue(schCompare);
  157. }
  158. //Down Comparison
  159. if(downCompare > 0){
  160. downCompare = downCompare * ref.getRange(maxMech+5, 35+correctBoss).getValue();
  161. user.getRange(17, 4).setValue(downCompare);
  162. }else{
  163. user.getRange(17, 4).setValue(0);
  164. }
  165.  
  166. //Vale Guardian
  167. case 1:
  168. //Dps Comparison
  169. if(dpsCompare >= 40 && dpsCompare <= 65){
  170. user.getRange(13, 4).setValue(0);
  171. }
  172. if(dpsCompare < 40){
  173. dpsCompare = (dpsCompare - 40) * ref.getRange(maxMech+1, 35+correctBoss).getValue();
  174. user.getRange(13, 4).setValue(dpsCompare);
  175. }
  176. if(dpsCompare > 65){
  177. dpsCompare = (dpsCompare - 65) * ref.getRange(maxMech+1, 35+correctBoss).getValue();
  178. user.getRange(13, 4).setValue(dpsCompare);
  179. }
  180. break;
  181.  
  182. //Gorseval
  183. case 2:
  184. //Dps Comparison
  185. if(dpsCompare >= 50 && dpsCompare <= 70){
  186. user.getRange(13, 4).setValue(0);
  187. }
  188. if(dpsCompare < 50){
  189. dpsCompare = (dpsCompare - 50) * ref.getRange(maxMech+1, 35+correctBoss).getValue();
  190. user.getRange(13, 4).setValue(dpsCompare);
  191. }
  192. if(dpsCompare > 70){
  193. dpsCompare = (dpsCompare - 70) * ref.getRange(maxMech+1, 35+correctBoss).getValue();
  194. user.getRange(13, 4).setValue(dpsCompare);
  195. }
  196. break;
  197.  
  198. //Sabetha
  199. case 3:
  200. //Dps Comparison
  201. if(dpsCompare >= 40 && dpsCompare <= 70){
  202. user.getRange(13, 4).setValue(0);
  203. }
  204. if(dpsCompare < 40){
  205. dpsCompare = (dpsCompare - 40) * ref.getRange(maxMech+1, 35+correctBoss).getValue();
  206. user.getRange(13, 4).setValue(dpsCompare);
  207. }
  208. if(dpsCompare > 70){
  209. dpsCompare = (dpsCompare - 70) * ref.getRange(maxMech+1, 35+correctBoss).getValue();
  210. user.getRange(13, 4).setValue(dpsCompare);
  211. }
  212. break;
  213.  
  214. //Slothasor
  215. case 4:
  216. //Dps Comparison
  217. if(dpsCompare >= 40 && dpsCompare <= 60){
  218. user.getRange(13, 4).setValue(0);
  219. }
  220. if(dpsCompare < 40){
  221. dpsCompare = (dpsCompare - 40) * ref.getRange(maxMech+1, 35+correctBoss).getValue();
  222. user.getRange(13, 4).setValue(dpsCompare);
  223. }
  224. if(dpsCompare > 60){
  225. dpsCompare = (dpsCompare - 60) * ref.getRange(maxMech+1, 35+correctBoss).getValue();
  226. user.getRange(13, 4).setValue(dpsCompare);
  227. }
  228. break;
  229.  
  230. //Matthias
  231. case 6:
  232. //Dps Comparison
  233. if(dpsCompare >= 35 && dpsCompare <= 55){
  234. user.getRange(13, 4).setValue(0);
  235. }
  236. if(dpsCompare < 35){
  237. dpsCompare = (dpsCompare - 35) * ref.getRange(maxMech+1, 35+correctBoss).getValue();
  238. user.getRange(13, 4).setValue(dpsCompare);
  239. }
  240. if(dpsCompare > 55){
  241. dpsCompare = (dpsCompare - 55) * ref.getRange(maxMech+1, 35+correctBoss).getValue();
  242. user.getRange(13, 4).setValue(dpsCompare);
  243. }
  244. break;
  245.  
  246. //Keep's Construct
  247. case 8:
  248. //Dps Comparison
  249. if(dpsCompare >= 55 && dpsCompare <= 75){
  250. user.getRange(13, 4).setValue(0);
  251. }
  252. if(dpsCompare < 55){
  253. dpsCompare = (dpsCompare - 55) * ref.getRange(maxMech+1, 35+correctBoss).getValue();
  254. user.getRange(13, 4).setValue(dpsCompare);
  255. }
  256. if(dpsCompare > 75){
  257. dpsCompare = (dpsCompare - 75) * ref.getRange(maxMech+1, 35+correctBoss).getValue();
  258. user.getRange(13, 4).setValue(dpsCompare);
  259. }
  260. break;
  261.  
  262. //Xera
  263. case 9:
  264. //Dps Comparison
  265. if(dpsCompare >= 45 && dpsCompare <= 70){
  266. user.getRange(13, 4).setValue(0);
  267. }
  268. if(dpsCompare < 45){
  269. dpsCompare = (dpsCompare - 45) * ref.getRange(maxMech+1, 35+correctBoss).getValue();
  270. user.getRange(13, 4).setValue(dpsCompare);
  271. }
  272. if(dpsCompare > 70){
  273. dpsCompare = (dpsCompare - 70) * ref.getRange(maxMech+1, 35+correctBoss).getValue();
  274. user.getRange(13, 4).setValue(dpsCompare);
  275. }
  276. break;
  277.  
  278. //Cairn
  279. case 10:
  280. //Dps Comparison
  281. if(dpsCompare >= 45 && dpsCompare <= 70){
  282. user.getRange(13, 4).setValue(0);
  283. }
  284. if(dpsCompare < 45){
  285. dpsCompare = (dpsCompare - 45) * ref.getRange(maxMech+1, 35+correctBoss).getValue();
  286. user.getRange(13, 4).setValue(dpsCompare);
  287. }
  288. if(dpsCompare > 65){
  289. dpsCompare = (dpsCompare - 65) * ref.getRange(maxMech+1, 35+correctBoss).getValue();
  290. user.getRange(13, 4).setValue(dpsCompare);
  291. }
  292. break;
  293.  
  294. //Mursaat Overseer
  295. case 11:
  296. //Dps Comparison
  297. if(dpsCompare >= 65 && dpsCompare <= 85){
  298. user.getRange(13, 4).setValue(0);
  299. }
  300. if(dpsCompare < 65){
  301. dpsCompare = (dpsCompare - 65) * ref.getRange(maxMech+1, 35+correctBoss).getValue();
  302. user.getRange(13, 4).setValue(dpsCompare);
  303. }
  304. if(dpsCompare > 85){
  305. dpsCompare = (dpsCompare - 85) * ref.getRange(maxMech+1, 35+correctBoss).getValue();
  306. user.getRange(13, 4).setValue(dpsCompare);
  307. }
  308. break;
  309.  
  310. //Samarog
  311. case 12:
  312. //Dps Comparison
  313. if(dpsCompare >= 35 && dpsCompare <= 60){
  314. user.getRange(13, 4).setValue(0);
  315. }
  316. if(dpsCompare < 35){
  317. dpsCompare = (dpsCompare - 35) * ref.getRange(maxMech+1, 35+correctBoss).getValue();
  318. user.getRange(13, 4).setValue(dpsCompare);
  319. }
  320. if(dpsCompare > 60){
  321. dpsCompare = (dpsCompare - 60) * ref.getRange(maxMech+1, 35+correctBoss).getValue();
  322. user.getRange(13, 4).setValue(dpsCompare);
  323. }
  324. break;
  325.  
  326. //Deimos
  327. case 13:
  328. //Dps Comparison
  329. if(dpsCompare >= 50 && dpsCompare <= 75){
  330. user.getRange(13, 4).setValue(0);
  331. }
  332. if(dpsCompare < 50){
  333. dpsCompare = (dpsCompare - 50) * ref.getRange(maxMech+1, 35+correctBoss).getValue();
  334. user.getRange(13, 4).setValue(dpsCompare);
  335. }
  336. if(dpsCompare > 75){
  337. dpsCompare = (dpsCompare - 75) * ref.getRange(maxMech+1, 35+correctBoss).getValue();
  338. user.getRange(13, 4).setValue(dpsCompare);
  339. }
  340. break;
  341.  
  342. }
  343. }
  344. }
  345.  
  346. //Mechanic and Weighted Mechanic Data
  347. if(i >= 18){
  348. mech.getRange(i-15, (correctBoss*8)-6).copyTo(user.getRange(i, 2), {contentsOnly:true});
  349. mech.getRange(i-15, (correctBoss*8)-5).copyTo(user.getRange(i, 3), {contentsOnly:true});
  350. weightMech = ref.getRange(i-17, 35+correctBoss).getValue();
  351. valueToChange = user.getRange(i, 3).getValue();
  352. user.getRange(i, 4).setValue(weightMech*valueToChange);
  353. }
  354. }
  355.  
  356. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement