there were like 60 VTOLs sat at one of the nullbot bases, seemingly waiting for the remaining VTOLs to be produced to reach the group size required to start attacking.
Agreed, i already planned splitting VTOLs into groups, but didn't come to make it yet.
Also, land units seem to do a "death dance" when they are under artillery fire
Not sure how exactly can i fix it, but i'll have a look. The main problem is we don't really know if it's artillery that is firing. Also, the group needs to be packed before attacking a well-defended arty site, so regrouping can't be thrown away at this situation.
And build priorities after your base is attacked might need revising - eg. there's lots of rebuilding of research labs when that's probably the last thing you need building after your base gets attacked.
Probably. They are currently just repeating their initial build-up.
If all the tank factories get destroyed, but there's some cyborg factories left, they never make engineers = one dead nullbot.
Agreed, i'll fix it.
why are you checking number of enemy repair/construct droids?
Because engineer and repair cyborgs can be used as meat shields against pure rockets or cannons, even if the enemy doesn't use any other cyborgs. This also happens a lot when playing with the classic Nexus AI, who mixes repair cyborgs into attack, even though he acquires more cyborgs for defense a bit later. Anyway, a bit more machineguns is almost never bad.
And your becomeHarder() function definitely needs some upper limit set.
Probably. In an 1-hour game the group sizes change from 6..10 to 16..30, so in ~6 hours every group will be as big as a unit limit. Ok, right. Agreed.
Maybe building some air defences *before* the enemy attacks with VTOLs would be a good idea?
Agreed. Even better, it can be done as an adaptation procedure, cause we see if our enemies are making VTOLs.