Full Attack doesn't work, but you can input weapon damage, critical information, Strength, BAB, attack/damage bonuses, one/two handed, and finally select a monster CR. It uses the Optimization by Numbers information and crunches out how many successful attacks it'll take on average to kill the monster at your highest BAB.
<HTML><HEAD>
<title>DPR Calculator by SorO_Lost</title>
<script>
function ValidateRadio( clicked )
{
document.getElementById("singleattack").checked = false;
document.getElementById("fullattack").checked = false;
document.getElementById("fobattack").checked = false;
if ( clicked == 0 )
document.getElementById("singleattack").checked = true;
else if ( clicked == 1 )
document.getElementById("fullattack").checked = true;
else if ( clicked == 2 )
document.getElementById("fobattack").checked = true;
}
function GetDPR( debug )
{
var dmg = 0.0;
var text = "";
// Repeat the found values back to manual confirmation
if (debug )
{
text += "<i><b>Found Values - </b>";
text += "ndice: " + document.getElementById("ndice").value + " ";
text += "nsides: " + document.getElementById("nsides").value + " ";
text += "crange: " + document.getElementById("crange").value + " ";
text += "cmulti: " + document.getElementById("cmulti").value + " ";
text += "str: " + document.getElementById("str").value + " ";
text += "bonus damage: " + document.getElementById("bonusdmg").value + " ";
text += "THF: " + document.getElementById("thf").checked + " ";
text += "BAB: " + document.getElementById("bab").value + " ";
text += "bonus attack: " + document.getElementById("bonusatt").value + " ";
text += "</i><br>";
}
// Weapon Damage
dmg += ((document.getElementById("ndice").value * document.getElementById("nsides").value)/2);
dmg += 0.5 * document.getElementById("ndice").value;
text += "Weapon Average: " + dmg + " ";
// Strength Modifier for damage
var str = 0.0;
str = ((document.getElementById("str").value-10)/2);
if ( document.getElementById("thf").checked )
str = str + Math.floor(str/2);
text += "Strength Modifier: " + str + " ";
// Misc Bonus
var bonusdmg = 0.0;
bonusdmg = parseInt(document.getElementById("bonusdmg").value);
text += "Misc Bonus: " + bonusdmg + " ";
dmg += str;
dmg += bonusdmg;
text += "Sub-Total: " + dmg + " ";
// Critical Weighted Information
var weighted = 0.0;
var weighteddetails = "<i>Automiss {1}: 0.0 ";
text += "<b>Weighted: ";
for ( var i = 2; i < 21; i++ )
{
if ( i < document.getElementById("crange").value )
{
weighted += dmg;
weighteddetails += "Noncrit {" + i + "}: " + dmg + " ";
}
else
{
weighted += (dmg * document.getElementById("cmulti").value);
weighteddetails += "Crit {" + i + "}: " + (dmg * document.getElementById("cmulti").value) + " ";
}
if ( (i%5) == 0 )
weighteddetails += "<br>";
}
dmg = weighted / 20;
text += dmg + "</b><br>";
// If debugging, print each out put for manual confirmation
if ( debug )
text += weighteddetails + "</i>";
// vs Optimize by Numbers
var monsters = new Array();
// AC, HP.
monsters[0] = 15.28; monsters[1] = 12.24; // CR 1
monsters[2] = 15.76; monsters[3] = 20.55; // CR 2
monsters[4] = 16.14; monsters[5] = 27.26; // CR 3
monsters[6] = 16.00; monsters[7] = 48.23; // CR 4
monsters[8] = 17.16; monsters[9] = 56.33; // CR 5
monsters[10] = 18.88; monsters[11] = 69.12; // CR 6
monsters[12] = 18.7; monsters[13] = 86.95; // CR 7
monsters[14] = 20.00; monsters[15] = 96.48; // CR 8
monsters[16] = 21.74; monsters[17] = 130.65; // CR 9
monsters[18] = 22.58; monsters[19] = 136.53; // CR 10
monsters[20] = 23.71; monsters[21] = 163.83; // CR 11
monsters[22] = 21.75; monsters[23] = 196.33; // CR 12
monsters[24] = 27.33; monsters[25] = 167.00; // CR 13
monsters[26] = 27.00; monsters[27] = 180.33; // CR 14
monsters[28] = 29.75; monsters[29] = 224.63; // CR 15
monsters[30] = 31.91; monsters[31] = 239.09; // CR 16
monsters[32] = 28.00; monsters[33] = 244.86; // CR 17
monsters[34] = 32.75; monsters[35] = 302.80; // CR 18
monsters[36] = 36.00; monsters[37] = 355.80; // CR 19
monsters[38] = 36.44; monsters[39] = 409.33; // CR 20
var ac = monsters[document.getElementById("CreatureCR").selectedIndex*2];
var hp = monsters[(document.getElementById("CreatureCR").selectedIndex*2)+1];
text += "<br> <b>Monster Information</b> (CR: " + (document.getElementById("CreatureCR").selectedIndex+1) + ") <i>";
text += "AC: " + ac + " ";
text += "HP: " + hp + "</i><br>";
// Attack Bonus
var hit = parseInt(document.getElementById("bab").value);
hit += ((document.getElementById("str").value-10)/2);
hit += parseInt(document.getElementById("bonusatt").value);
text += "Attack Bonus: " + hit + " ";
// Chance to hit
var chancetohit = 100-((ac-hit)*5);
if ( chancetohit > 100 )
chancetohit = 95;
else if ( chancetohit < 5 )
chancetohit = 5;
var dmgperrnd = (dmg*100) / (100+(100-chancetohit));
text += "Chance To Hit: " + chancetohit.toFixed(2) + "% ";
text += "Average Damage Per Roll vs AC: " + dmgperrnd.toFixed(2) + "<br>";
text += "<BR>~It will take <u>" + (hp/dmgperrnd).toFixed(2) + " successful attacks</u> to kill a creature of this CR.";
/*
FOB Math
Chance of both hitting = chance_to_hit*chance_to_hit
Chance of both missing = chance_to_miss*chance_to_miss
Chance of one hitting but not the other = remainder
Example
+28/+28 vs AC 36, 60%/60%.
both hit (0.60*0.60=0.36)
both miss (0.40*0.40=0.16)
one hit (1.0-0.36-0.16=0.48)
Aka: 84% chance at least one attack is successful
(36% both, 48% one, 16% miss)
*/
document.getElementById("output").innerHTML = text;
}
</script>
</HEAD><BODY bgcolor="#000000" text="#FFFFFF">
<b>Character Information</b><br>
<table border="1" bordercolor="#000000" style="border-width:2pt">
<tr>
<td style="border-width:3pt">
Base Weapon Damage <input type="number" id="ndice" style="width: 40;"> <b>d</b> <input type="number" id="nsides" style="width: 40;">
</td>
<td style="border-width:3pt">
Critical: <input type="number" id="crange" style="width: 40;"><b>~20/x</b><input type="number" id="cmulti" style="width: 40;">
</td>
<td style="border-width:3pt">
Two-Handed-Fighting? <input type="checkbox" id="thf">
</td>
</tr>
<tr>
<td style="border-width:3pt">
Strength <input type="number" id="str" style="width: 40;"> Damage Bonuses: <input type="number" id="bonusdmg" style="width: 40;">
</td>
<td style="border-width:3pt">
BAB <input type="number" id="bab" style="width: 40;"> Attack Bonuses: <input type="number" id="bonusatt" style="width: 40;">
</td>
<td style="border-width:3pt">
Single Attack <input type="radio" id="singleattack" onclick="ValidateRadio(0)">
Full Attack <input type="radio" id="fullattack" onclick="ValidateRadio(1)">
or Furry of Blows <input type="radio" id="fobattack" onclick="ValidateRadio(2)">
</td>
</tr>
</table>
<br>
<b>Creature CR</b><br>
<select id="CreatureCR">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
<option>10</option>
<option>11</option>
<option>12</option>
<option>13</option>
<option>14</option>
<option>15</option>
<option>16</option>
<option>17</option>
<option>18</option>
<option>19</option>
<option>20</option>
<select><br>
<br>
<button onclick="GetDPR(false)">Calculate</button><br>
<br>
<b>Your Damage</b><br>
<a id="output"></a>
</BODY></HTML>