Re: Average calcule and TSO
First, I establish the following assumptions and nomenclature:
1. Let A represent the lower end of the damage range, and B the upper end of the damage range, of a spell
2. Let C represent the percent chance of a crit, and, for purposes of this discussion, I will assume that C will be unmodified (i.e., the level of the mob will not be considered). For example, C=84 means there's an 84% chance of a crit.
3. Let D represent the spell crit bonus, indicated as an integer (i.e., a percent without the percent sign)
4. Let AvgDmg(scenario) represent the average damage in a scenario.
5. Let [x,y] denote the range from x to y.
6. Let max(x,y) be the greater value of x and y.
7. All other factors, including debuffs, buffs, spell damage modifiers, etc. will be ignored for the purposes of these calculations, as this is what was asked
I'll divide your question into two scenarios: (a) no crit, and (b) crit.
(a) No crit
In the event of no crit, the spell damage will be ~ U[A, B], meaning the values will be randomly uniformly distributed between A and B. In this case:
AvgDmg(no crit) = (B-A)/2
(b) Crit
In the event of a crit, the damage is forced to fall in the range [B+1 , B x (1.3 + D/100)]. if the damage "spread" of a spell is sufficiently large, the damage value after application of the crit bonus (i.e., 30% plus D%) is bumped up to (B+1) to meet the minimum value permitted on a crit. Thus, a portion of the original damage range [A,B] may receive more than a (30% + D%) increase.
For ease of understanding, I will look at the case where some values in the damage range [A,B] are sufficiently low to be set to (B+1) after application of the crit. The portion of values in the original damage range [A,B] that will be bumped up to B+1 after application of the crit is:
Prob(B+1|crit) = max[ ( (B+1)/(1.3+D/100) - A ) / (B-A) , 0]
The remainder of the time, the damage values, after application of the crit, will be uniformly distributed over the range [B+1,Bx(1.3+D/100)] and will thus have an average value of:
= ( B+1 + Bx(1.3+D/100) ) / 2
Thus, when a crit happens, the average damage is:
AvgDmg(crit) = Prob(B+1|crit) x (B+1) + (1-Prob(B+1|crit)) x (B+1 + Bx(1.3+D/100))/2
Total
Thus, the average damage overall is therefore:
AvgDmg(all) = AvgDmg(crit) x C/100 + AvgDmg(no crit) x (1 - C/100)
I'm too lazy to expand this all out, but you can work through it above.
Last edited by claimabstract; 12-23-2008 at 05:45 PM.
|