A drone will keep a distance of 50-60 ls from its target, spinning back and forth, but it won't fire while maintaining that distance. Drones will only shoot their target if the target approaches the drone. If a target pursues the drone but is too slow to catch up, the drone will just run away without firing.

nms 19 Jul 2018:

This one is definitely my fault. Apparently my AI changes don't interact well with backward fixed weapons. I'll look into it. I think they should only try to match speed with their target if they're within 1/3 of their weapon's max range. But maybe they're switching between aiming and maneuvering too frequently to do either effectively.

george moromisato 8 Sep 2018:

Fixed in 1.8 Beta 3.

We added new code for ships to thrust if their (selected) weapon is aligned. This usually makes the ship get closer to their target. Unfortunately, for Luminous drones, their weapon is aligned when they are facing backwards, thus they would thrust away from their targets.

I added a flag in CAIBehaviorCtx that checks whether or not a ship has a backwards-facing weapon. If so, we skip that particular piece of code.

See: https://github.com/kronosaur/Mammoth/commit/6f7f5b94e72cc53715535b5093499a011056b35d

nms 11 Sep 2018:

https://github.com/kronosaur/Mammoth/pull/63

Silly me, I was thinking iFireDir in ImplementAttackTarget was the same thing as iFireDir in ImplementFireWeaponOnTarget, which is the direction we want our weapon to aim to hit the target. I was using that as a rough approximation of the direction we want to thrust to close with the target. But it's actually the same as iFacingAngle, the direction we want to face to hit the target, which is usually the same, but not if the weapon doesn't point forwards. So instead, I used the direction to the target.

This allows Luminous drones to take advantage of my new maneuvering code, rather than just drifting any time they think they're in range. They'll still drift more than other ships, but will continue thrusting to close in a little longer as they enter range and will thrust away to match speed when close to the target. They still suffer more from thinking they're in range when they're actually not, but that's a separate issue, probably caused by AI range adjust.

This will very occasionally change how other ships maneuver, but it was a rough approximation anyway. It doesn't seem worth calculating the optimal maneuvering intercept angle while we're aiming.