Automated Weapon Assignment
C# has a more intelligent auto-assignment for weapons and fire controls. You can set up a ship with a single click and then adjust as necessary. The code assumes that
Any missile fire control with a resolution of 1 is an anti-missile fire control
Any missile fire control with a resolution greater than 1 is a 'normal' missile fire control
Any beam fire control with a tracking speed at least 2x racial speed is a point defence fire control (some leeway here for older ships)
Other beam fire controls are for offensive weapons
Weapons within the given category (missile PD, missile offensive, beam PD, beam offensive) are split equally between fire controls of the same category
More powerful beam weapons are assigned first
ECCM is assigned as available with the priority order of offensive launcher, PD launcher, offensive beam, PD beam
The assignment code will take account of damage to the ship and adjust accordingly. In most cases, the above will be sufficient (and will be used for NPR designs). For more bespoke and unusual player ships, some tweaking may be necessary.
This looks mostly good, there's just one thing bugging me.
I've recently been running a game with maxed tech and I've
only used res 1 sensors. At that tech level you're looking at such long ranges on them and such small signatures on ships due to cloaking that this assumption will fail completely.
I suspect this kicks in a few levels lower, but it's also far above what most people are likely to see with VB Aurora.
Note that missiles are automatically assigned to launchers.
Looking at your last example it shoved the Vortex Torpedo into all the launchers. This means it's not grabbing the biggest stack, so what are the rules this goes through?
Communication Attempts
Oh boy. This is definitely going to be a change. No clue how this will play out, but with current diplomacy you'd likely run into problems due to having had a ship detected in one of 'their' systems for this process.
And I do agree with other people's comments on the 'willingness' requirement. If you're intercepting enough communications you'll get there eventually, it'll just take a
lot longer.