Alright, I figured it out.
No matter how large the target is, the following AI calculation happens:
- Procure list of valid provinces.
- Simulate the mission heuristically on each province and assign a fitness called "check".
- If a province's check is larger than a score starting at zero, that province is the new target and the score is set to its check.
- If no target has been selected after trying all valid provinces, the province at position ((<random> modulo <#provinces>) - 1) is selected.
The simulation happens like this:
- A random enemy force is chosen as the opponent defending the province.
- Fitness f of the province is calculated as (<our ability to damage them> - <their ability to damage us> / <willingness to take losses>).
- The amount of damage done to <mission target> is added to f.
This happens for all mission types. As you can see, there are several issues here:
- The fitness of all checked provinces may be negative - but this is not a reason not to choose the "least awful one".
- The province first in the list (so: the only one, if targeting exactly one) can never be randomly chosen - so if the above case hits, single-province targetted missions will not be flown.
Why does this usually not also happen to other mission types? Because they target more than one part of the province (e.g. AA
and forts or IC
and all resources), so the fitness is increased more (unless a province with only Infrastructure is selected - but why would a player do so to begin with, so it does not show by virtue of not being tested) and has a greater chance to flip over to non-negative - which guarantees that a province
does become the target.
--
Now, there are two ways to fix this:
- Fix the random selection to include the first valid province.
- Remove the random selection and instead let the score start at the smallest representable number.
Obviously, these would affect
all air missions and differently so.
Personally, I prefer variant 2, as there is still a random component in the check heuristic. Nested random components are unconductive here. But this
would mean a possibly larger deviation from pre-fix mission behaviour in
all the cases. Not worse, not really better, but different.