This is intended as a tool for your use as well as a request for feedback. Like I said, this is my very first application with a graphical frontend that I'm comfortable enough to release, so if you find any glaring problems, please let me know.
This is just the very first version of this thing I made. I already know plenty of ways I can expand this thing to be more than this simplistic little thing, such as adding support for multiple attacks, saving and comparing user-generated profiles, throwing in more statistical information, etc. I may very well do some or all of these things if I get around to it, and promise nothing.
And for those of you wondering what the hell use this serves...
When I'm creating a character with a decent number of levels and I want to compare the effectiveness of his physical attacks, the figure I rely on to get a good idea of the tradeoffs of various combat styles is a number I call the "expected damage." I've never seen anyone else use this metric for evaluating a character's prowess in combat; this is a benchmark that I came up with, and the existence of any similar benchmark is completely coincidental as far as I'm concerned.
Expected damage factors in number of attacks, accuracy, damage, and critical hit potential to give you a good estimate of how much damage you can expect to deal each round against a given opponent.
Its calculation is pretty straight-forward. You need to know the attacker's attack bonus, the critical hit information for his weapon, and his average damage, as well as the defender's AC.
- Take the number of values on a d20 that would land you a normal hit (not including the critical threat range) and divide by 20 to get the probability of landing a regular hit. This is the starting value for the expected number of hits from this attack.
- Take the number of rolls on a d20 that would threaten a critical hit and divide by 20 to get the probability of threatening a critical.
- Take the number of rolls on a d20 that would confirm a critical hit threat, divide by 20, and multiply by the critical hit multiplier to get the number of expected hits from a critical hit (basically, consider a critical hit to be multiple hits). Multiply it again by the probability of threatening a critical hit and add to the number of expected hits for the round overall.
- Take the number of rolls on a d20 that would miss, divide by 20, multiply by the probability of threatening a critical hit, and add this number to the number of expected hits this round.
- Multiply the total number of expected hits this round by the average damage, and you have your expected damage from that attack.
- Repeat this process for every attack the attacker has in the round.
Here's an example:
Bob is using his rapier to attack an enemy with AC 18. Bob's attack bonus with the rapier is +10 and his damage is d6+3. The critical threat range on a rapier is 18-20, and the critical hit multiplier is 2.
The average value on a d6 is 3.5, and Bob's damage bonus gives us an average damage of 6.5 for this attack.
- If Bob were to roll a d20 and get a number from 1 to 7, he would miss. There is a 7 in 20 chance that he would deal no damage with this attack. The sum of the expected number of hits Bob would make is so far zero.
- If Bob were to get a number from 8 to 17, it would be a normal hit. The range 8 to 17 includes 10 numbers, so there is a 10 in 20 chance that Bob will land a normal hit. The sum of the expected number of hits Bob would make is now (10/20), or 0.5.
- If Bob were to roll a number from 18 to 20, that would be a critical hit threat. There is a 3 in 20 chance that Bob will threaten a critical hit.
If Bob threatens a critical hit, he can confirm the critical hit with a roll from 8 to 20, which is 13 numbers. So the probability that Bob gets a critical hit is (3/20) x (13/20). Since the critical hit multiplier is x2, we can consider a critical hit from Bob to be the equivalent of two normal hits. The sum of the expected number of hits Bob would make is now 0.5 (from the previous figure) + (3/20) x (13/20) x 2 = 0.695.
- If Bob threatens a critical hit, he can achieve a normal hit by rolling a number from 1 to 7. The probability that Bob will deal normal damage from an unconfirmed critical hit threat is (3/20) x (7/20). This puts the final number of expected hits to 0.695 (from the previous figure) + (3/20) x (7/20) = 0.7475.
- On average, Bob will land 0.7475 hits per round on his opponent. Since each hit deals an average of 6.5 damage, we can expect Bob to deal 6.5 x 0.7475 = about 4.86 damage per round.
Or to be more succinct, here's what's usually on scratch paper I use to figure this out:
"Miss" is there to make sure my numerators add up to 20.
I multiply everything that isn't "miss," and then multiply by the average damage. Bam.
But anyway, point is, this thingy I've attached does this for you (for one attack).
PS: For those interested, I can throw in the source for a console-based calculator I use that calculates expected damage against a range of AC's and plots them for you (requires gnuplot).