che killed was 100 times too small, thus zero for all practical cases.
4.2.7 attempted to fix it, but left it broken for efficiency < 100.
It also increased deadliness of 100% units by a factor of 2.5.
Restore pre-4.0.0 behavior.
lcp = &lchr[(int)lp->lnd_type];
mil += lnd_getmil(lp);
- r = (((float)(lp->lnd_effic / 100) * (float)(lnd_getmil(lp))) /
- 2);
- if (r < 2)
- r = 2;
- che_kill = (roll(r) - 1);
+ r = (lnd_getmil(lp) * lp->lnd_effic) / 500;
+ if (r < 1)
+ r = 1;
+ che_kill = roll(r);
if (che_kill > che)
che_kill = che;
if (che_kill) {