Index: binaries/data/mods/public/simulation/components/Attack.js
===================================================================
--- binaries/data/mods/public/simulation/components/Attack.js
+++ binaries/data/mods/public/simulation/components/Attack.js
@@ -153,6 +153,9 @@
"" +
"" +
"" +
+ ""+
+ "" +
+ "" +
"" +
"" +
"" +
@@ -473,7 +476,12 @@
let targetVelocity = Vector3D.sub(targetPosition, previousTargetPosition).div(turnLength);
let timeToTarget = this.PredictTimeToTarget(selfPosition, horizSpeed, targetPosition, targetVelocity);
- let predictedPosition = (timeToTarget !== false) ? Vector3D.mult(targetVelocity, timeToTarget).add(targetPosition) : targetPosition;
+
+ let ballistics = targetVelocity.length() * 0.05 *
+ ApplyValueModificationsToEntity("Attack/" + type + "/Ballistics", +(this.template[type].Projectile.BallisticsFactor || 0), this.entity);
+ let ballisticsCorrectedTTT = timeToTarget + ballistics * +randomNormal2D()[0];
+
+ let predictedPosition = (timeToTarget !== false) ? Vector3D.mult(targetVelocity, ballisticsCorrectedTTT).add(targetPosition) : targetPosition;
// Add inaccuracy based on spread.
let distanceModifiedSpread = ApplyValueModificationsToEntity("Attack/Ranged/Spread", +this.template[type].Projectile.Spread, this.entity) *