Also those formula are troncated at low pdif. From mob data it appears that around r=0.5 the minimum damage is capped. In this case the damage is not uniform on [a,b] and has a lower spike : therefore it appears that the damage numbers are still generated uniformly on [a,b] from the above formula but that d rather than a is truncated (at ~0.22 of the DMG value). Also just I realised that those formula implies that b-a=5/6 @ r=0.5 exactly so that would be where a caps out (a=1/6).
Attempt for a global formula
a:=1+L*( max(max(r,0.5)-1.5,0) - max(1.25-max(r,0.5),0) );
b:=1+L*( max(r-0.75,0) - max(0.5-r,0) );
Here is the representation of those functions
The final model will not account for the lower cap on a for generating numbers but instead cap the generated value :
a*:=1+L*( max(r-1.5,0) - max(1.25-r,0) );
b*:=1+L*( max(r-0.75,0) - max(0.5-r,0) );
d=eta*((1-U)*max(V,DMG/6)+DMGxU)
with
DMG= damage value including fstr
eta= uniform on [1,1.05]
V=uniform on [a* x DMG,b* x DMG]
U= bernouilli of parameter q=P(U=1)=5/6 - (b*-a*)
U,V,eta are independantly generated.
wiki updated.



Reply With Quote