Or: How I learned to stop worrying and love using a variable twicea buncha' times.
Thread and concepts within, as well as some new concepts I formulated, rolled up as of 1/14/2012
Making my own thread so as to not hijack Moten's, if as much to keep our systems distinct. I've crammed all of my commentary and elaboration into spoilers to try and keep the post initially concise, but definitely read them before raising questions, contraditctions, or rebuttals. Besides comment titles, raw edits will be in italics.
Ratio = (Player Attack)/(Mob Defense)
2-hander Ratio caps at 2.25 (not 2.2, explanation below)
1-hander Ratio caps at 2.0
Apply level correction as previously known, cRatio=Ratio-(0.05*dLvl) only for Mob level > Player level else cRatio=Ratio, but in the future it may be found that raw Ratio might be used in place of cRatio in the formula below.
pDif has two randomizers, Primary and Secondary.
Primary works upon cRatio and is given as:
(11/10)*cRatio-0.65+rand*0.85
How this Primary randomizer was determined
Spoiler: show
In the case of a critical hit the Primary randomizer changes to:
((11/10)*x+0.45+rand*0.75)
This is effectively a 1.0 bonus inside Primary with some narrowing of Primary's range that looks like a 1.0 bonus at common cRatios as classically reported.
If Intermediate pDif is now greater than 3.0, it is capped at 3.0.
There are special rules for particularly low Intermediate pDif, applying to extremely low cRatio (<0.3) crits as well:
If Intermediate pDif falls below 1.0, it is set to 1.0.
If Intermediate pDif falls below 0.75, instead add 0.25 to it.
This predicts the following artifacts in pDif:
Spoiler: show
This intermediate pDif value is them multiplied by Secondary multiplier, which is randomized between 1.00 and 1.05, averaging 1.025.
Final pDif is then multiplied by Base Damage for Final Damage which is floored to an integer.
Mob Weaknesses such as Piercing and certain percentage bonuses like Critical Attack Bonus are applied after flooring of final damage and then re-floored.
Under this system:
2.80875 is 2-hander's absolute max pDif at capped 2.25 Ratio.
2.52 is 1-hander's absolute max pDif at capped 2.0 Ratio.
However, these value are widely subject to Secondary's ranging.
2.74185 is the nominal maximum for 2-handers at average Secondary at capped 2.25 Ratio for a small to sane parse size.
2.46 is the nominal maximum for 1-handers at average Secondary at capped 2.00 Ratio for a small to sane parse size.
Any value between this 'Average Secondary' and the 'Abolute Maximum' is a valid maximum, which may vary by up to fifteen damage at the upper end for 2-handers depending on parse size and still come up short for large 1-hander parses due to flooring. Put simply: The Absolute Maximum pDif is insanely hard to hit.
BRACE FOR IMPACT!
Base Damage calculated as previously known.
Unsimplified form retained in case a slope needs changing:
Spoiler: show
Final Damage = Floor([Base Damage] * [(11/10)*cRatio-0.65+rand*0.85] * [1+rand(0.05)])
And for critical hits:
Final Damage = Floor([Base Damage] * [(11/10)*cRatio+0.45+rand*0.75] * [1+rand(0.05)])
Here's a nice handy graph of a random dispersion of my distribution as it stands now with Masa's tendency lines overlaid in Red. Orange is crits with the now modified +1.0 method, while blue is normal hits. The intermediate range where pDif can be above 1.0 and below 0.75 is tricky, and beyond Graph.exe's capability with conditionals (particularly, it rerolls the rand value at every step, making the 'if' function irrelevant), so I instead gave the Secondary-affected max and mins at about the same dispersion as the rest of the graph.
Where this stands part deux? It needs to be thrown at real data, particularly sub-1.0 cRatio data which needs to be brought forth by certain persons who profess to have it.
Giant semi-irrelevant comment block
Spoiler: show
Deprecated comments
Spoiler: show