Archipelago
Archipelago copied to clipboard
Fill: Crash if there are remaining unfilled locations
What is this fixing or adding?
Lots of various bugs that are a bit hard to track down arise from this issue so it's better to just crash loudly with a clear error.
How was this tested?
commented out my filler gen and watched it crash
If this makes graphical changes, please attach screenshots.
I disagree with this
If I'm running an 100 slot async generation, I'd rather have a couple "nothings" than to have to redo the whole thing after an hour. I'm probably just going to revert this on my local installation
Could we have the old behavior as an arg? --loose_generation_requirements or something
The old behavior is having unfilled locations and causing rom games to crash when they try to get the items in locations or the locations not existing in the multiworld.
Could add a prompt, instead of the Exception, explicitly informing the person generating of the risks and allowing them to type 'y' if they are willing to proceed, and throwing the Exception if they send anything else. But also this shouldn't come up often as worlds are expected to submit an equal location/itempool, no?
Could add a prompt, instead of the Exception, explicitly informing the person generating of the risks and allowing them to type 'y' if they are willing to proceed, and throwing the Exception if they send anything else. But also this shouldn't come up often as worlds are expected to submit an equal location/itempool, no?
This doesn't make any sense to do. "Would you like to continue?" and then it just crashes due to the aforementioned issues 10 minutes later.
Idea: How about the above per-player counts gets turned into a differential and then an exception is raised with its info, such as : "Player wags had 3 more locations than items" (as exception) or "Player Berserker had 4 more items than locations" (as logging.warning)
I'm fairly sure these if trees could be condensed quite a bit with this little trick:
>>> collections.Counter({"a": 1, "b": 1})-collections.Counter({"a": 1})
Counter({'b': 1})