Advertisement
nzisaacnz

Min Max v 0.3

Apr 26th, 2014
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 5 5.61 KB | None | 0 0
  1. <body>
  2. Equip All <select onchange="equipAll(this.value)"><option value="0">none</option><option value="1">berzerker</option><option value="2">soldier</option><option value="3">valkyrie</option><option value="4">zealot</option><option value="5">assasin</option><option value="6">rampager</option><option value="7">cavalier</option><option value="8">knight</option><option value="9">sentinel</option><option value="10">carrion</option><option value="11">dire</option><option value="12">rabid</option><option value="13">cleric</option><option value="14">magi</option><option value="15">celestial</option></select><br>
  3. <span id="armor"></span>
  4. Armor class
  5. <select id="armorType" onchange="calculate()">(P + M * 35) * 100 * SC / (T + D)
  6. <option value="1804">Light</option>
  7. <option value="1945">Medium</option>
  8. <option value="2083">Heavy</option>
  9. </select><br>
  10. Armor = { Ferocity : <span id="armorFOut">0</span>,
  11. Precision : <span id="armorCOut">0</span>,
  12. Power : <span id="armorPOut">0</span>,
  13. Armor Rating : <span id="armorTOut">0</span>}<br>
  14. Ferocity<input type="number" id="ferocity" value=0 oninput="calculate()" min="0"/><span id="fOut"></span><br>
  15. <span title="915 base">Precision</span><input type="number" id="precision" value=0 oninput="calculate()" min="0"/><span id="cOut"></span><br>
  16. Fury Uptime <input type="range" id="fury" value=0 onchange="calculate()" min="0" max="100"/><span id="furyUOut"></span>%<br>
  17. Power <input type="text" id="power" value=0 oninput="calculate()" min="0"/><br>
  18. Armor <input type="text" id="armorRating" value=0 oninput="calculate()" min="0"/><br>
  19. Average Damage = <span id="damage"></span><br>
  20. Average Damage With Fury = <span id="damageWithFury"></span><br>
  21. Average Damage Combined = <span id="damageCombined"></span><br>
  22. <br>
  23. Damage Reduction = <span id="damageReduction"></span><br>
  24. <script>
  25. var gear=[
  26. {name:"2 handed",prim:179,sec:128,celest:84},
  27. {name:"main hand",prim:90,sec:64,celest:42},
  28. {name:"off hand",prim:90,sec:64,celest:42},
  29. {name:"helm",prim:45,sec:32,celest:21},
  30. {name:"shoulders",prim:34,sec:24,celest:16},
  31. {name:"coat",prim:101,sec:72,celest:47},
  32. {name:"gloves",prim:34,sec:24,celest:16},
  33. {name:"leggings",prim:67,sec:48,celest:32},
  34. {name:"boots",prim:34,sec:24,celest:16},
  35. {name:"amulet",prim:90,sec:64,celest:42},
  36. {name:"jewel",prim:25,sec:15,celest:12},
  37. {name:"ring",prim:67,sec:48,celest:32},
  38. {name:"jewel",prim:25,sec:15,celest:12},
  39. {name:"ring",prim:67,sec:48,celest:32},
  40. {name:"jewel",prim:25,sec:15,celest:12},
  41. {name:"earring",prim:56,sec:40,celest:26},
  42. {name:"jewel",prim:25,sec:15,celest:12},
  43. {name:"earring",prim:56,sec:40,celest:26},
  44. {name:"jewel",prim:25,sec:15,celest:12},
  45. {name:"backpiece",prim:22,sec:16,celest:0},
  46. {name:"jewel",prim:25,sec:15,celest:12}
  47. ];
  48. var stat = [
  49. {name:"none",prim:'',sec:''},
  50. {name:"berzerker",prim:'p',sec:'fc'},
  51. {name:"soldier",prim:'p',sec:'t'},
  52. {name:"valkyrie",prim:'p',sec:'f'},
  53. {name:"zealot",prim:'p',sec:'c'},
  54. {name:"assasin",prim:'c',sec:'fp'},
  55. {name:"rampager",prim:'c',sec:'p'},
  56. {name:"cavalier",prim:'t',sec:'fp'},
  57. {name:"knight",prim:'t',sec:'cp'},
  58. {name:"sentinel",prim:'',sec:'pv'},
  59. {name:"carrion",prim:'',sec:'p'},
  60. {name:"dire",prim:'',sec:'t'},
  61. {name:"rabid",prim:'',sec:'ct'},
  62. {name:"cleric",prim:'',sec:'pt'},
  63. {name:"magi",prim:'',sec:'c'},
  64. {name:"celestial",prim:'',sec:''}
  65. ];
  66. var selectHtml = "";
  67. var s = document.createElement("select");
  68. s.setAttribute("onchange","calculate()");
  69.  s.className = "stat";
  70. for(var b=0; b<stat.length; b++)
  71. {
  72. var o = document.createElement("option");
  73. o.value=b;
  74. o.innerHTML = stat[b].name;
  75. s.appendChild(o);
  76. }
  77. selectHtml = s.outerHTML;
  78. for(var a=0; a<gear.length; a++)
  79. {
  80. var label = document.createElement("span");
  81. label.innerHTML = gear[a].name;
  82. var cb = document.createElement("input");
  83. cb.type="checkbox";
  84. cb.setAttribute("checked","");
  85. cb.className="checked";
  86. cb.name=a;
  87. cb.setAttribute("onclick","this.className=this.checked?'checked':'';calculate()");
  88. armor.appendChild(cb);
  89. armor.appendChild(label);
  90. armor.innerHTML+=selectHtml+(a<8||a%2==0?"<br>":"");
  91. }
  92.  
  93. function equipAll(index)
  94. {
  95.  var statSelects = document.getElementsByClassName('stat');
  96.  for(var a=0; a<statSelects.length; a++)
  97. {
  98.  statSelects[a].value=index;
  99. }
  100. calculate()
  101. }
  102.  
  103. function calculate()
  104. {
  105.  var cbs = document.querySelectorAll('input[class="checked"]');
  106.  var set = {c:916,f:0,p:916,t:armorRating.value- -armorType.value};
  107.  for(var a=0; a<cbs.length; a++)
  108.  {
  109.   var piece = gear[cbs[a].name];
  110.   var stats = stat[cbs[a].nextSibling.nextSibling.selectedIndex];
  111.   if(stats.name!="none")
  112.   {
  113.    if(stats.name=="celestial")
  114.    {
  115.     set.c+=piece.celest;
  116.     set.f+=piece.celest;
  117.     set.p+=piece.celest;
  118.     set.t+=piece.celest;
  119.    }
  120.    else
  121.    {
  122.     for(var b=0; b<stats.prim.length; b++)
  123.     {
  124.      set[stats.prim[b]]+=piece.prim;
  125.     }
  126.     for(var b=0; b<stats.sec.length; b++)
  127.     {
  128.      set[stats.sec[b]]+=piece.sec;
  129.     }
  130.    }
  131.   }
  132.  }
  133.  furyUOut.innerHTML= fury.value;
  134.  armorFOut.innerHTML = set.f;
  135.  armorPOut.innerHTML = set.c;
  136.  armorTOut.innerHTML = set.t;
  137.  armorPOut.innerHTML = set.p;
  138.  var f = parseInt((ferocity.value- -set.f)/15,10)/100+1.5;fOut.innerHTML = f;
  139.  var c = parseInt(((+precision.value- -set.c)-822) / 21)/100;cOut.innerHTML = c;
  140.  var base = power.value- -set.p;
  141.  damage.innerHTML=parseInt(base * ( 1 + c * ( f - 1 ) ),10);
  142.  damageWithFury.innerHTML=parseInt(base * ( 1 + (c+0.2) * ( f - 1 ) ),10);
  143.  damageCombined.innerHTML=parseInt(base * ( 1 + (c+0.2*fury.value/100) * ( f - 1 ) ),10);
  144.  damageReduction.innerHTML = parseInt((1-(armorType.value)/(+set.t))*100,10)+"%";
  145. }
  146. calculate();
  147. </script>
  148. </body>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement