The exact behavior of turret rotation is defined in
/action.cpp. Let's see, according to github, the current behavior should be:
- Code: Select all
/** Droids heavier than this rotate and pitch more slowly. */
#define HEAVY_WEAPON_WEIGHT 50000
define ACTION_TURRET_ROTATION_RATE 45
.
.
.
// extra heavy weapons on some structures need to rotate and pitch more slowly
if (psWeapStats->weight > HEAVY_WEAPON_WEIGHT && !bRepair)
{
UDWORD excess = DEG(100) * (psWeapStats->weight - HEAVY_WEAPON_WEIGHT) / psWeapStats->weight;
rotRate = DEG(ACTION_TURRET_ROTATION_RATE) * 2 - excess;
pitchRate = rotRate / 2;
}
This creates a dynamic rotation rate for any weapon heavier than 50k. Less than 50k, a turret rotates at 90° per time, but as the excess weight over 50k increases, turret rotation slows. At 100k, you have 50% excess weight which reduces turret rotation from 90 to 40 - about half. At 200k, the excess is 75%, reducing turret rotation to 15 per time - very much slower. If I'm reading this right, then theoretically, any weapon with about >550k weight will be unable to move its turret at all because that will cause turret rotation to bottom out at zero (or even negative - ouch).