Some testing.
Using Soboro
100 Str and 437 att as sam/dnc w/Hasso
I want a target that can take a lot of hits (make it easier to sample), but that I can cap fStr and cRatio on. Calculated that fStr and cRatio should always be capped vs Savanna Dhalmels (Lvl 34-37).
fStr should be +12
Weapon base is 40
Total weapon damage = 52
Code:
Melee Damage
Player Melee Dmg Melee % Hit/Miss M.Acc % M.Low/Hi M.Avg #Crit C.Low/Hi C.Avg Crit%
Motenten 120584 100.00 % 939/55 94.47 % 96/141 119.23 218 149/163 158.80 23.22 %
Known max crit: 52 * 3.15 = 163.8 >> 163. Match.
Melee range: 96-141, 46 point spread on 790 non-crit samples. Typical frequency if equally distributed ~= 17, which fairly well matches most sample points (generally 15-20 per point) except for values below 99 and above 138, as well as a few local minimums.
Min melee is 96 == pDiff of 1.846153846154 - 1.865365384615
Masamune's test ended up with a min pDiff ranged to 1.869-1.869. 97 is reachable with that range, and after 500 hits I was expecting that to be the minimum. 96 is slightly below that, and likely a factor of insufficient samples in Masamune's test.
However when we work on trying to predict pDiff ranges from cRatio, we usually assume an even distribution of values. That is not the case with what I saw:
Code:
Melee
96: 1
97: 2
98: 5 -- 1.90, low edge frequency tail
99: 20
100: 16
101: 20
102: 21
103: 13
104: 10 -- 2.0, second lowest outside of edges, distinct minimum
105: 12
106: 21
107: 20
108: 17
109: 19
110: 15
111: 20
112: 18
113: 14
114: 12 -- 2.20, local minimum
115: 19
116: 17
117: 17
118: 21
^ 119: 13 -- median & mean, 2.3, local minimum
120: 14
121: 20
122: 17
123: 9 -- 2.37, lowest frequency outside of edges
124: 16
125: 21
126: 15
127: 17
128: 17
129: 22
130: 20
131: 18
132: 14
133: 16
134: 25
+ 135: 30 -- 2.60, maximum
136: 14
137: 12
138: 22
139: 8 -- 2.68, high edge frequency tail
140: 9 -- 2.70
141: 2
We have a few values at each end that have extremely low frequencies compared to the main set. If we consider that the tail edges are an artifact of the alleged 'bonus' factor, then we actually want to look primarily at the main frequency limits of 99-138.
99 pDiff range: 1.903846153846 - 1.923057692308
138 pDiff range: 2.653846153846 - 2.673057692308
Possible full range pDiff spread: 0.7307884615385 - 0.7692115384615
Expected full spread value: 0.75, or +/- 0.375
Center point at that spread would then need to be between 2.278846153846 - 2.298057692308
That doesn't include any of our typically expected limits, with the upper limit on the spread being just a smidge below the 2.30 value.
However, if we consider the possible limit as expressed in fractions of 1024, as so many other things in game are...
Possible cRatio limit value: 2 + 300/1024 == 2.29296875 -- That's within our possible center range.
And we can then express our outer pDiff limits with:
0.375 == 384/1024
Outer limits of 1+940/1024 - 2+684/1024
Applied to base damage of 52, results are: 99.734375 - 138.734375
That's sufficient to match our observed results.
Next, the tails.
There are 3 values in each tail edge, which suggests a symmetric addititional factor.
First estimate: +/- 50/1024, given the supposed 5% bonus.
1+890/1024 = 97.1953125
2+734/1024 = 141.2734375
That's sufficient for the upper limit, but not the lower one.
Second estimate: +/- 60/1024.
1+880/1024 = 96.6875
2+744/1024 = 141.78125
And that matches, giving us a first guess at the outer tail limits.
Given that the frequency declines for the outermost damage values (96 and 141), it's probably not just another flat random amount added in, but some sort of mini bell curve or similar. The non-tail limits are right in line with the other nearby distribution values, though, so the range is probably not higher than +/-60 and then capped inside the normal limits.
Personal speculation (just a gut feeling based on the distribution patterns): There are two +/- 30 extra values added in that give a potential to reach +/-60, but cancel out to give a net 0 much of the time. That would give a very small chance of reaching numbers at the far ends of the tails. Note that after running the numbers I don't think this is the exact distribution pattern, but something similar is likely (+/- 40 is another possible pattern).
Comparing with Masamune's Numbers, and using the above values for pDiff min/bonus min:
Relic Bhuj: 17/16, 16 observed
Jupiter Staff: 88/85, 85 observed
Orc Piercer: 116/113, 114 observed
Iron Ram Lance: 163/158, 158 observed
Erlking's Kheten: 209/202, 203 observed
Observed are all within range of predicted. Need to see an actual distribution curve to see whether the base pDiff min is notably distinct, and matches predicted.
And pDiff max/bonus max:
Relic Bhuj: 24/24, 24 observed
Jupiter Staff: 122/125, 126 observed
Orc Piercer: 162/166, 168 observed
Iron Ram Lance: 226/231, 233 observed
Erlking's Kheten: 290/297, 299 observed
The maximums, however, do not quite work out. All but the lowest of the observed values are outside the predicted range. The main outlier is the Orc Piercer, as it hits a peak that's significantly above the requirements for the other weapons:
(in order)
2+744/1024
2+757/1024
2+773/1024
2+759/1024
2+761/1024
All of the others can be reached with a +80 on the bonus portion of the value. Orc Piercer needs +90. With +80, even, I would expect to see a 142 result on the Soboro test, which didn't occur, though I could accept it as an extremely rare result. If the bonus pDiff could reach +90 then the Soboro should be able to hit 143, and that just doesn't seem realistic given the test values. Perhaps only if +80 was at a 0.1% chance and +90 was a 0.01% chance, or similarly unlikely. Perhaps 10 +/-10 bonus totals? Definitely bell curve-like.
At the very least, though, I would like to see whether the normal max pDiffs correspond to the predicted values on the distribution charts (if Masamune still has the parses for these tests). If they do, then we can consider the main portion of the pDiff range worked out.
Next, the crit distributions.
Code:
Melee Crits
149: 1
150: 2
151: 3
153: 2
154: 3
155: 3
156: 32 -- 3.0
157: 23
+ 158: 34
^ 159: 19
160: 31
161: 22
162: 24
163: 19
Here we see another artifact-laden distribution. It's clear that the values below 3.0 are an entirely different class of results from the values at 3.0 and up. We can also see that the 3.0-3.15 cannot really be described as the result of a 'possible' random dispersion effect of multiplying by up to 1.05. If it were only a possible addition we would see a much higher spike at 3.0, and reduced frequencies above that. Instead we have 3 points out of 8 on the curve that are at ~32 count, and an overall dispersion that implies a fairly flat constant distribution.
149 is at lowest, 2+887/1024, and at most 2+905/1024. The most likely subtracted values in there are -120/1024 and -128/1024.
Our lowest non-crit value was set at a limit of 1+940/1024, which is reasonably close to what we're seeing here, if given a +1. It's also interesting to note that that's within range of the secondary random dispersion method if it were set to +/-40.
6.4% of all crits are below 3.0. If we use our estimated general pDiff range, 10.8% of non-crits should be below 2.0. That's close enough at these sampling numbers that it could reasonably be considered the results of crits whose pre-crit pDiff was below 2.0.
The remaining ~90% of crits are all distributed within the range of 3.0 to 3.15. It's clear that once the crit cRatio crosses 3.0, pDiff randomness can't reduce it below that point. However it seems impractical at this point to make any guesses as to how the distribution works within that range.
While there's a slight prejudice towards the lower end of the 3.0+ range, overall it looks like you could just consider it a flat random domain between 3.0 and 3.15 once you cross 3.0.