update/revolt: Change security unit bonus to fix body count

Both ordinary ground combat and guerrilla combat basically kill
combatants one by one randomly until one side is eliminated.  The odds
of each side taking a hit are computed from combat strengths.

Ordinary combat factors bonuses into the odds.  It doesn't mess with
the number of men.

Guerrilla combat does the same for the bonus due to relative
happiness.  It doesn't for land units with security capability: these
fight as if they had twice as many military.  Changes both odds and
number of men.  This inflates the body count reported to the sector
owner.  Visible in tests/update/journal.log, where rebels kill 110 out
of 70 military.  It also complicates take_casualties().  Has been that
way since security land units were added in Chainsaw 3.

To fix the body count and simplify take_casualties(), make capability
security affect only the odds, not the number of men.  Without further
adjustments, this would reduce guerrilla losses: fewer men mean fewer
combat rounds mean fewer chances for rebels to die.  To compensate,
increase the multiplier from two to four.  This should make security
units a bit tougher.  Document the bonus in "info Guerrilla".

More body count bugs remain.

Reusing ordinary combat rules and code for guerrilla combat would be
nice, but isn't feasible for me right now.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
This commit is contained in:
Markus Armbruster 2016-09-17 11:24:55 +02:00
parent 3e59bf1d6a
commit 849af9e06c
5 changed files with 18 additions and 18 deletions

View file

@ -66,7 +66,8 @@ or a sector lost to guerrilla activities!
.s1
Land units present in a sector help to fight them, fighting without
any multiplier, either offensive or defensive and without any
fortification bonus. Any units with the
\*Qsecurity\*U ability will also kill some che before anything else is
fortification bonus, except units units with the
\*Qsecurity\*U ability fight with a multiplier of four. They
will also kill some che before anything else is
done (commando raids).
.SA "Populace, Occupation, Updates"