A set of companion interfaces to Combat.Listeners.WeaponRangeModifier.
IE: Combat.Listeners.WeaponVelocityModifier, Combat.Listeners.WeaponRecoilModifier, being a few small interface for listeners that allows specific behaviors to be applied to specific subsets of weapons similar to how ballistic range finder targets just small class ballistics (And sometimes mediums.)
#Velocity
float getWeaponVelocityPercentMod(ShipAPI ship, WeaponAPI weapon);
float getWeaponVelocityMultMod(ShipAPI ship, WeaponAPI weapon);
float getWeaponVelocityFlatMod(ShipAPI ship, WeaponAPI weapon);
#Recoil
float getWeaponRecoilPercentMod(ShipAPI ship, WeaponAPI weapon);
float getWeaponRecoilMultMod(ShipAPI ship, WeaponAPI weapon);
float getWeaponRecoilFlatMod(ShipAPI ship, WeaponAPI weapon);
With similar interfaces for base spread, spread recovery, maximum spread.
This is a big opening in the API but it is likely worthwhile: The logic introduced to weapon logic and weapon range in ballistic rangefinder and high scatter amplifier is extremely versatile, but only a tiny subset of stats (Damage, and range,) being reachable in this granular way makes is fairly limiting when it comes to using the existing combat listeners, as we cannot modify related stats to the same degree of detail without workarounds. As the effective result of these mods is that we can do targeted edits of mutable stats at the ship level at the weapon level as needed.
Example: Without this, say we wanted to do make a hullmod that increases velocity and range at the cost of damage for small energy weapons. We would have to apply the damage and velocity effects globally to all energy weapons at the ship scale, but only the small energy weapons would benefit from the range (without very aggressive workarounds.)
The existing combat listener API is extremely exciting, and if it was opened up a little more, a large swath of flavorful, role defining hullmods and ship systems could be made pretty efficiently.