Step aside, one abuser of overly complex mechanics coming through.
Okay, so if your hit rate generates a certain number of impacts, you want your second calculation to generate a percentage. A 0 would indicate that every shot was damaging, and a 1 would indicate that every shot was disabling. Ideally, we want to strike between a 0.25 and 0.75 for most rolls.
We know we have a term that looks like (ACC-EVA). However, if we're multiply, there is the potential for this term to go negative, which would produce... odd results. However, this flaw is present in the original equation, so we'll leave it in for the moment and a present an alternative rework at the end.
(ACC-EVA)*(1d6)*(#Remaining soldiers) Is the core of the original equation. To turn this into a number between 0 and 1 we can alter the equation to,
[(ACC-EVA)*(1d6-1)*(#Remaining soldiers)]/[(ACC-EVA)*(5)*(#Remaining soldiers)] Cancel worthless terms to yield...
[(ACC-EVA)*(1d6-1)*(#Remaining soldiers)]/[(ACC-EVA)*(5)
This generates an equation that is 1 if the attacker rolls a 5, and 0 if the roll a 1. If you want to think of it as the defender rolling, subtract the result from 1.
However, the above methods have significant flaws, some of which are present in the original hit equation. Notably, the above equation is undefined whenever ACC = EVA, it will generate bizarre values when EVA exceeds ACC, and it doesn't take into account the difference between damaged and healthy soldiers. We can patch the equation with this new form,
[(ADJ_ACC/ADJ_EVA)*(1d6-1)]/[(ACC/{0.5*EVA})*(5)]
Where ADJ_EVA = {EVA*(#HealthyDefSoldiers/#RemainingDefSoldiers) + 0.5*EVA*(#DamagedDefSoldiers/#RemainingDefSoldiers)}
ADJ_ACC = {ACC*(#HealthyAttSoldiers/#RemainingAttSoldiers) + 0.5*ACC*(#DamagedAttSoldiers/#RemainingAtSoldiers)}
This equation allows use to simulate damaged soldiers having worse evasion than healthy soldiers, and likewise with accuracy.
This new equation is only undefined when ACC = 0 or EVA = 0. (Or when there are no remaining soldiers, but that's irrelevant). This can easily be patched by starting the base value of all stats to be 1. However, the form of this new equation is different enough from the original that we should probably rework that one too. However, that one is relatively easy to massage...
A toon has 40 soldiers, and (unless you're draggin') 4 toons of 10 soldiers... So...
[(ADJ_FIR/ADJ_PRO)*(1d6-1)]/[(FIR/{0.5*PRO})*(5)]*(10/#RemainingAttSoldiers)
Where ADJ_FIR = {FIR*(#HealthyAttSoldiers/#RemainingAttSoldiers) + 0.5*FIR*(#DamagedAttSoldiers/#RemainingAttSoldiers)}
ADJ_PRO = {PRO*(#HealthyAttSoldiers/#RemainingAttSoldiers) + 0.5*PRO*(#DamagedAttSoldiers/#RemainingAttSoldiers)}
This is essentially the same equation as above, except we're now saying that we want a number between 0 and 10. (0% and 100% hit rate). The additional #RemainingAttSoldiers avoids the conservation of Ninjitsu problems where the attacker could still get 10 hits off with a single soldier.
So, need to test these equations, but they look decent. Have to go or I would run through them further myself.
PPE: Parentheses might be a little off. I noticed and fixed one error before it hit, but there may be others.