JSFiddle - React, Tailwind, and code Playground
HTML
<input id=avgbolt />
<input id=isbuptime />
JavaScript
var total = 0;
var isb = 0;
var simulations = 10000000;
var isbuptime = 0;
var crit = 0.15;
var hit = 0.83;
var bolt = 1054.74;
var casttime = 2.5;
for(var i = 0; i <= simulations; i++){
if (isb > 0) isbuptime += casttime;
if (Math.random() > hit) continue;
if (Math.random() <= crit){
total += isb > 0 ? bolt * 2 * 1.2 : bolt * 2;
isb = 4;
}
else {
total += isb > 0 ? bolt * 1.2 : bolt;
if (isb > 0) isb--;
}
}
$("#avgbolt").val(total / simulations);
$("#isbuptime").val(isbuptime / (simulations*casttime));