Damage

Armour
Most damage is subject to armour mechanics. Unless stated otherwise, damage is multiplied by

$$a = \min \left(\frac{\text{AP}}{\text{AC}}, 1 \right)$$

where AP is the shell AP, and AC is the combined armour of the blocks being hit. For a single block, the AC corresponds to its armour. Thus, for a single block, full damage is reached when APis equal to the armour of the block.

Layered Armour
Against explosive or kinetic damage, "structural" blocks (namely wood, stone, metal, heavy armour, and alloy) behind a block being damaged will contribute 20% of its armour to the AC of the block being hit.

Kinetic Damage
Kinetic damage is dealt by fragmentation warheads, CRAM cannons, and advanced cannons. The amount of damage dealt depends on the impact angle.

The kinetic damage is computed by multiplying the total kinetic damage of the shell by the standard multiplier $$a$$ above. If the damage is sufficient to destroy the block hit, the damage used to destroy the block (i.e. net damage divided by $$a$$) is subtracted from the projectile's damage potential and the projectile continues on its path.

When striking from outside (i.e. not just having destroyed the previous block in its path), kinetic damage is reduced to a factor $$\cos \theta$$. If the projectile fails to destroy the initial block, it has a chance of ricocheting of

$$\left( 1 - \cos \theta \right)^{\text{AP} / \text{AC}}$$

in which case the remaining damage potential is reduced by the net damage dealt divided by $$a$$. If the projectile does not ricochet, the remaining damage potential is reduced by the net damage dealt divided by $$a \cos \theta$$.

For the various slopes:

Thump Damage
Unlike kinetic damage, thump damage spreads the remaining damage to adjacent blocks whenever destroying a block. This prevents overkill (piercing an entire enemy craft, and still having damage left). Thump damage ignores armour-layering.

Thump damage is dealt by:
 * Squash head shells (AP 10)
 * Hollow point shells
 * Impact particle cannons (AP 15)
 * All missiles, increased using bodies, thumper heads, and using empty space for reinforcement (AP 20)
 * Collisions (AP 1)
 * Rams (AP 15)

Laser Damage
Laser damage is dealt by lasers.

Damage is reduced by range (especially in water), AP is reduced by smoke and laser shields.

Explosive Damage
Explosive damage is dealt by CRAMs with HE-pellets, Advanced Cannons or Missiles with HE-, or flak-warheads, by explosive PACs and by exploding blocks.

Explosions cannot affect anything more than 30 metres from their origin, even if their rated radius is larger. However, if a vehicle is outside the 30m radius, but still inside the listed radius, the explosion will "snap" to the vehicle, damaging blocks within 30m from the closest point. This matters little for HE, but is quite noticeable on flak-shells.

The exact calculations for explosions are quite complex. If an explosion propagates through air, it will lose power. If it lacks power to deal meaningful damage to a block, it may do no damage, getting part of its power refunded. In effect, this means that explosions deal more damage in closed rooms (strengthening APHE), and will seek out weak spots in armour (making exposed vitals quite vulnerable).

Propagation
Explosions take subobjects (turrets, spinners, pistons) and the main construct (hull) into account. Blocks will block explosions as follows, regardless of whether they're placed on the hull or a subobject:



EMP Damage
EMP damage is dealt by advanced cannons and missiles with EMP Warheads.

EMP damage is not subject to reduction from armour.

When a construct is hit by EMP damage, a charge is created with damage potential equal to the rated damage. The charge propagates from block to block. Upon visiting a block:


 * The EMP charge deals damage equal to the EMP susceptibility of the block times the damage potential, but not more than is needed to destroy the block. The dealt damage is subtracted from the damage potential.
 * The protective drainage of the block is subtracted from the damage potential.

The pathfinding algorithm operates similarly to Dijikstra's algorithm, but instead of choosing the node (block) with the shortest total path at each iteration, it chooses the node which maximizes the amount of total damage dealt minus the amount of total damage lost to protective drainage on the path to that node. The search terminates after 1000 nodes have been visited, the charge used (damage dealt + protective drainage) reaches 1.2 times the original damage potential, or no more nodes are reachable. At this point the visited node with the highest damage dealt on the path to that node is chosen. Surge Protectors count as taking full damage for purposes of the propagation decision.