Firestarter/Thundercloud and Split/Slug shot Procs pretty much state that there are at least 2 rolls made, the fact that we can get multiple individual item drops from kills implies that they are not using tables over multi rolls for drops, and the method that Shelltron operates on in respect to Crits as mentioned would not happen the way it does if it was a table.
Enemies (of different levels at the least) have different accuracies (which can be proven by letting yourself be attack and tracking the amount of misses) and can be individually blinded. You would need to have individual table for each mob and each mob would need to have and maintain an individual table for each target it was attacking or catching in its AoEs. That is a lot of data and table management that would need to be programed in. A stat based multi roll If:Then:Else tree is much simpler to program and far less data intensive.This is also very simple to program and actually makes the end result match actual probabilities of each of the events.
I'm not quiet certain of what you are trying to say here. Yes, single-roll resolution makes for prettier statistics, but pretty statistics are not really that important to a computer. I would not be surprised if the RNG roll used a whole number between 0 and 255.In single-roll resolution, suppose a miss rate of 15%, crit 5%, block 20% and Parry 10%, then 50% of all attacks should be regular hits. But with multiple rolls, it means that all regular hits are actually the event "not miss && not crit && not block && not parry", giving you the end probability of 0.85*0.95*0.8*0.9=0.5814, i.e. 58%.
No, at the most we need to find the number of crits in the hit total (as the misses will not be hits and will already be factored out of the attack total to create the hit total) and remove them to find out the number of attacks that can be blocked/parried.If the game is using a multi-roll system, we would have to find the miss and crit rates before we can find the actual parry rate used in the calculation, because our data would only give us the rate at which the attack "wasn't a miss and wasn't a crit and was a parry" (assuming we remove the shield in our tests).