Originally Posted by
Ascent
One important thing to add, as it was a huge revelation for me (or should I say disappointment) when CCM responded to a question posed by McDoc at their meet in San Francisco.
If I understood correctly, the reduction is not applied to your actual casualties suffered in a battle, but to the casualty rates of the units. So, based on how CCM explained it, you should not expect a 20%, 30% or 70% reduction of units lost, but a 20%, 30% or 70% reduction of the "casualty rate" (or is it called consumption rate) parameter of the units themselves. I.E.: if the B52 Bomber has a consumption rate of 0.0064, then you apply the casualty rate reduction to that number.
You will still lose units, just these consumption rate numbers will be somewhat smaller. However, these numbers make up only part of a formula determining your unit losses and it seems that whatever other factors determine your casualties play a much bigger role than the consumption rate than these, even if they are reduced by 70%.
I think that the wording "casualty reduction" is very misleading in this sense...
If my theory is correct, that consumption rate (CR) is the central number everything is based around!
At it's simplest I believe it's a probability that a unit will die each "use".
0.0064 would be 0.64% chance to die or 1-0.0064=0.9936 or 99.36% to not die each use.
The casualty reductions (R) should all be multiplied onto this number.
Then there's the PvP rank modifier (RM) of casualty rate, which at it's simplest could be just another factor, but one that can be more than 1, say for example 25, when you're rank4 attacking a rank6...
or 1/10 for rank7 vs rank6.
If I were to program it in the simplest way, that's how I'd do it:
(pseudocode)
Code:
u=[number of units you bring to the battle]
c=[CR]*[R1]*[R2]*...*[Rn]*[RM(pr,or)] //c becomes a small number below 1
for j=1:u //j is an index that goes over your units, one at a time.
i=rand(0,1) //i gets a random value between 0 and 1, different for each unit.
if i<c //logical operation
<code for unit j dies> //if i>c nothing happens i.e. unit j lives on
end
end
Where RM(pr,or) is the rank modifier as a function of player rank and opponent rank.
Without comments:
Code:
u=[number of units you bring to the battle]
c=[CR]*[R1]*[R2]*...*[Rn]*[RM(pr,or)]
for j=1:u
i=rand(0,1)
if i<c
<code for unit j dies>
end
end