When the worker runs out of gas at an extraction site it will look for a mineral site to mine from. If none are available the program crashes because it will return an empty set to find the max of.
A simple fix is adding a check for an empty set prior to calling the max function: if local_minerals:
In the bot_ai line 386:
target_mineral = max(local_minerals, key=lambda mineral: mineral.mineral_contents)
When the worker runs out of gas at an extraction site it will look for a mineral site to mine from. If none are available the program crashes because it will return an empty set to find the max of.
A simple fix is adding a check for an empty set prior to calling the max function:
if local_minerals: