normalizeArrowVelocity

public static double normalizeArrowVelocity(Projectile projectile)

Normalizes arrow velocity to a 0–1 scale for ranged damage calculation.

Full-draw bow velocity magnitude is approximately 3.0. Crossbow bolts are approximately 3.15. We normalize against 3.0 and clamp to [0, 1].

Note:getVelocity returns the current velocity, which decays during flight due to gravity and drag. Long-range shots can drop below 1.5 by impact even at full draw, halving the resulting damage. Callers that have a launch-time velocity stored on the arrow should pass it directly via normalizeArrowVelocity instead.

Return

Normalized velocity in [0, 1]

Parameters

projectile

The projectile to measure


public static double normalizeArrowVelocity(double launchVelocityMagnitude)

Variant of normalizeArrowVelocity that takes a pre-captured velocity magnitude (typically stored on the projectile at launch via ItemTagger.setArrowLaunchVelocity). Prefer this over the projectile overload at damage-application time so in-flight deceleration does not eat into bow/crossbow damage.