So I tinkered around some more. The next part of the equation, according to Squash, is
if(RAND() % int(100 + WeaponToHitValue / Block Value / (1 << BlocksSinceLastTurn) * (100 + Success)) < 100)
then (block)
Which means that ideally for the defender, BlockValue is drastically larger than WeaponToHitValue, there have been no blocks since his last turn, and Success is 0. This will lead to, again ideally, a random number between 0 and (at least) 100; the closer the max number is to 100, the more likely the defender blocks.
I wasn't sure what WeaponToHitValue was so I just assumed it was the THV for the attacker. For the sake of not doing more math (and at Chao's suggestion) I assumed Guss was being attacked by Guss, which leads to a 50% chance for a successful block with each arm (so two 50% chances = 75% block chance).
HOOoooooly shit, now this is bizzare: I just got a bit of help from my coding friend and discovered something. I was unsure about " (1 << BlocksSinceLastTurn) " and how to handle it. Turns out "<<" is a bitshift operator in C. (If you don't understand that, look it up, it's complicated) Long story short, the first time you block, this value is 1. The second time, it becomes 2. The third time it's 4, then 8, 16, 32, and so on. I assume the intention is that it becomes exponentially more difficult to block multiple attacks in a turn. However, the surrounding code (as parsed by Squash, anyways) would imply that this number actually INCREASES the chance to block as it grows.
Double crap, I just realized I used the wrong number in WeaponToHitValue (I used Guss's block value instead of his THV). With his actual THV it becomes a 17% chance to block (but he still gets two chances at it). This seems... wrong.
I hate to ask you guys to go code-diving for me again... but can somebody dig up the code responsible for this? And ideally for determining some of these variables? I should be in bed already truth be told, and I certainly won't have time tomorrow...
EDIT: Also thought I'd mention, IVANcode is absolutely riddled with those bitshift operators. I remember when I was compiling the code in college, C++ compilers couldn't handle the C code because C++ uses a different operator for bitshifts. I didn't know what they were back then, I just remember seeing a royal goddamn shit-fuck-ton of the things.