The code in AreaDefense loops thru the mounts from first to last looking for a valid weapon, not the optimal weapon. AreaDefense also tags the target missiles as crossing targets so that skips at least one range check (which doesn't take courses into account so would not have prevented the SAMs from firing. It is not a small undertaking to replace the AreaDefense logic. The ExportDLL interface allows it to be replaced without modifying the core game (which we can no longer do). In short, don't hold your breath on a fix for this one. The intriguing bit is that NewAreaDefense() which I wrote in the 2013 timeframe. It does check speed and bearings to see if an intercept is kinematically possible. NewAreaDefense was not completed.