Short answer : pecentual reduction (or exponential reduction depending on skill)
Long anwser :
First, you must know, how skill rolls work. First, a raw value is computed:
* stat roll : the stat
* skill roll : take half the asociated stat, cap it at skill+3, then add the skill.
Now, you get a 6 sided dice for every three points, and for the remainder a 3 sided or 5 sided dice. All theese dices are wolled, and the 3 best roll are added to a number between 1 and 18
There is further another roll, the damage roll, this is a flat number plus a random number, both defined in the XML of the weapon.
Now, how it works :
* Make the attack roll, of the weapon skill, and the defense roll of the dodge skill
* reduce them if the user is badly wounded or crippled
* get the flat to-hit bonus of the weapon
* if attack+bonus > defense, the shot hits, get the damage of the weapon
* The bodypart is computed. Depending on attack-defense, the probability is affected. Backstabbing gives a bonus here
* For full-automatic weapon, each shot further gets a to-hit penalty. When multiple shots hit, the damage is stacked. If it hits multiple times, a crtitical hit bonus may be aplied. Backstabbing gives 100 bonus here.
* the variable mod is computed : attack+bonus-defense-healthroll. If it is below 0, it is set to 0. Melee attacks give a bonus from strength here.
* Now, the function damagemod is called with mod and damage
** The armour value is computed this depends on armour-type and bodypart. (Police bodyarmour, for example 7 for mody, 0 for other bodyparts)
** The quality of the armour is subracted from it, and if it is damaged, it is further reduced by 1
** if armour is below 0 it is now set to 0
** The variable mod2 id computed by : armour+random(armour+1)-armour_penetration
** If this is above 0, it is subtracted twice from mod (armour_penetration is effective against good armour but doesn't further increase damage)
** mod can now be negative or positive depending on armour and roll
** mod is capped between -8 and +10
** If mod is positive, damage is increased by 20% for each point of mod
** If mod is negative, damage is cut a half for each point of mod
** If the damage is fire damage, and the defender wears bunker gear, the damage is quartered
* If the car in a chase is hit damage is reduced to 0
* The wound is set on the target (this may or may not cause bleeding)
* If the damage is above a certain value, the bodypart is blowen off
* If the damage hits a limb, it is reduced to a nonlethal amount (the limb may still be gone).
* Now, the damage is subtracted from the defenders hitpoints
* If the damage is high, has a certain damage type, there is a random chance, that a special wound (loosing an eye, or rupturing the spleen...) is set. Then, the hitpoints are set to a maximum value for that wound
Everybody has 100 hitpoints. If somebody has bleeding wounds, the hitpoints are further reduced, by 1 point per bleeding bodypart, and an amount for special wounds.
Tanks get a special handling. They get 15 armour for every bodypart (10 if the damage is fire), and do 5000+random(5000) damage. Some monsters get special attacks, that are persistant, so evern if a recruited Flaming Rabbit becomes a Genetic Monster, it keeps its fire attack.