'Defensive Fire' is a fire drawn as a reaction on enemy ship movements by the inactive player’s ships. In classic game it commonly happens during retreat attempts.
This is a special ability of normal mount beams, intended to give an inactive player some defensive means during the active player’s move. Every ship equipped with such beam is performing checks every time an enemy ship moves using a pre-calculated value, the "Defensive Fire Range", that is the closest distance some enemy ship can move to that ship. The closer the moving ship position to that value - the greater chance the Defensive Fire will occur, and if that ship will reach DFR - the chance becomes 100% (as its "most optimal time" to use the guns, no other ship can move closer from now). The following table summarizes chances for defensive fire to occur:
Due to the bugs in 1.31 (and 1.40) this mechanic appeared inconsistent and incomprehensible especially when ship inititive enabled:
-
As DF wasn’t adapted to ship initiative mode at all, the DFR value controlling its behavior was calculated only once per turn, at the end of it. It was suitable for non-initiative combat, as a player cannot move his own ships during the opponent’s turn, so even calculated only once, this value was correct. But when both players share the same turn, the DFR had to be updated after every ship’s move (as it’s about relative distance between ships).
-
As the DFR value originally had meaning only during the opponent’s turn, when the non-active player cannot move own ships, the DFR value itself was corrupted during AI-controlled move for that ship (assumed that when it will be actually needed - it will be already recalculated by that time). So in a shared combat turn, AI-controlled ships had lost their DFR values after they performed any move action and used some wrong values for the rest of that turn.
-
A bug in the range calculation prevented DF from happening in case when a moving ship’s start position was out of Normal beams range, or its destination position was too close to a DF ship.
-
Ship retreat procedure was incompatible with DF when Ship Initiative was on. Retreats could cause DF, but some ships were able to retreat prior to other ships getting their weapons recharged. Example: ship A is attacked by ships B and C and chooses to retreat on the first turn. The retreat takes place at the beginning of turn 2, ship A is processed first as defender and retreats. B and C do not fire since their weapons are not recharged yet. In the same example, if A was the attacker then both B’s and C’s weapons are recharged before A retreats, so they fire at A when it turns to fly away.
-
Not a bug but a mechanic’s flaw, was the intention of the effect to be applied only to beams that a player did not use during his own turn and were not turned off. As a result it couldn’t happen on the first turn of battle. Note that this effectively means only the first turn of the attacker in non-initiative combat. Defender ships were unable to perform DF at all, but during Defender’s first turn (second turn), attacker’s ships with Normal beams ready were able to fire. With shared turn (when initiative is on) it meant that DF could not happen at all during the first turn. As players are indeed unable to show their intent about keeping beams on or 83off, as a new rule DFR value is three times lower for that first turn, so the chance to fire is lowered in comparison, but ships will still fire if a target moves too close.
All of the above problems have been fixed in 1.50. However, because the whole mechanics was so severely bugged for all the years, and it was impossible to improve on it while keeping the "original feel" in combat, we have turned DF off by default for games with ship initiative on and added the parameter defensive_fire, that controls whether DF is enabled or not in INI games. With INI off, DF is always on as it was in classic.
In addition, the parameter defensive_fire_max_range can limit the range at which DF is operative, and alternate_defensive_fire can be used to set a more straightforward static chance dependency on a range between 2 ships. Note that rolls happen per travel square, but probability is set per 3 squares, so the chance of triggering fire is different between entering the range and passing through it. The chances per range can be set with alternate_defensive_fire_range.