Player Value On Skill Point Page

Calculates the player value from the skill point page.

  1. // ==UserScript==
  2. // @name Player Value On Skill Point Page
  3. // @namespace pbr/pvsp
  4. // @include http://goallineblitz.com/game/skill_points.pl?player_id=*
  5. // @include http://glb.warriorgeneral.com/game/skill_points.pl?player_id=*
  6. // @copyright 2011, pabst
  7. // @license (CC) Attribution Share Alike; http://creativecommons.org/licenses/by-sa/3.0/
  8. // @version 14.02.25
  9. // @description Calculates the player value from the skill point page.
  10. // ==/UserScript==
  11.  
  12. window.setTimeout(
  13. function() {
  14. var att = document.getElementById("attribute_list");
  15. att.getElementsByClassName("medium_head")[0].addEventListener("click",main,true);
  16.  
  17. main();
  18. }
  19. , 100);
  20.  
  21. function getAbilitiesCost(level,min) {
  22. var cost = 0;
  23. for (var i=0; i<level; i++) {
  24. cost += min + (Math.round((i-1)/2.0));
  25. }
  26. //console.log(level+" : "+min+" = "+cost);
  27. return cost;
  28. }
  29.  
  30. function getSkillsCost(score) {
  31. var caps = [0,48.06,60.51,67.97,73.24,77.28,80.53,83.25,85.58,87.60,89.40,
  32. 91.01,92.46,93.79,95.00,96.13,97.18,98.15,99.06,99.92,100.73,
  33. 101.50,102.23,102.92,103.58,104.21,104.81,105.39,105.94,106.47,106.98];
  34.  
  35. var cost = 0;
  36. var cap = 1;
  37. for (var cap=1; cap<caps.length; cap++) {
  38. if (score < caps[cap]) {
  39. cost += (score - caps[cap-1]) * cap;
  40. //console.log(score+"-----> "+cost);
  41. break;
  42. }
  43. else {
  44. cost += (caps[cap] - caps[cap-1]) * cap;
  45. //console.log(score+"=====> "+cost);
  46. }
  47. }
  48.  
  49. var cost2 = 0;
  50. var cap = 1;
  51. for (var s=0; s<score; s++) {
  52. // console.log(score+": bycaps="+cost+" ? bypoints="+cost2);
  53. if (s > caps[cap]) cap++;
  54. if ((score - s) >= 1) {
  55. cost2 += cap;
  56. }
  57. else {
  58. cost2 += (score-s)*cap;
  59. break;
  60. }
  61. }
  62. console.log(score+": bycaps="+cost+" ? bypoints="+cost2);
  63. return cost2;
  64. }
  65.  
  66. function main() {
  67. var costA = 0;
  68. var stats = document.getElementsByClassName("attribute_value");
  69. for (var i=0; i<stats.length; i++) {
  70. costA +=getSkillsCost(stats[i].innerHTML);
  71. }
  72.  
  73. var costS = 0;
  74. var skills = document.getElementsByClassName("skill_level");
  75. for (var i=0; i<skills.length; i++) {
  76. var v = 1;
  77. if ((i+1)%5 == 0) v++;
  78. costS += getAbilitiesCost(skills[i].innerHTML, v);
  79. }
  80.  
  81. var costSP = parseFloat(document.getElementById("skill_points").innerHTML);
  82.  
  83. var att = document.getElementById("attribute_list");
  84. var cost = costA.toFixed(2) + " + " + costS.toFixed(2) + " + " + costSP.toFixed(2) + " = " + (costA+costS+costSP).toFixed(2);
  85. att.getElementsByClassName("medium_head")[0].innerHTML = "Attributes : "+cost;
  86. console.log(cost);
  87. }
  88.