Options: implement progression balancing and accessibility on new system
Options: implement the notion of "common" and "per_game_common" options in various systems
Options: centralize item and location name checking
Spoiler: prettier print some lists, sets and dicts
WebHost: add common options into /templates
AutoWorld: Now correctly automatically applies State.remove if collect_item is also correct
LttP: Make keys advancement items
This feels like it improved generation chance. Might not be the case.
Generator: Re-allow names with spaces (and see what breaks)
Generator: Removed teams (Note that teams are intended to move from a generation step feature to a server runtime feature, allowing dynamic creation of an already generated MW)
LttP: All Rom Options are now on the new system
LttP: palette option "random" is now called "good"
LttP: Roms are now created as part of the general output file creation step
LttP: disable Music is now Music, removing potential double negatives
LttP & Factorio: Progressive option random is now grouped_random
LttP: Enemy damage option random is now Enemy damage: chaos
Other changes:
host.yaml Multi Mystery options were moved and changed
generate_output now has an output_directory argument
MultiWorld.get_game_players(<game>) now replaces <game>_player_ids
Python venv should now work properly
This also changes behaviour slightly; it used to fill beatable only players' items first, now it shuffles it all together. It is not documented why this was done, so hopefully this doesn't undo something intentional.
In some cases multi-thousand element lists were created in-memory with near identical contents, per player, then discarded and reassembled.
Was testing against a case with 3 GB of additional memory use (50 players) which appeared to get stuck, but really was just very slow. This example case is fixed with these changes.
Additionally, progression balancing is now run after ShopSlotFill, so it is now "aware" of the changed progression shops can produce.
As well, special handling for keys was removed, as not all games will have the notion of keys.
It will never be not empty, because every placement that succeeds gets its event set to true, and the conditional expects locations already placed within the fill to also not be events.
- skipped in no_logic; already was skipped in OWG
- instead of randint[0, 15] and randint[15, 50] (if any kind of triforce hunt) trash items, it is now randint[0, GT_crystals*2] and randint[GT_crystals*2, GT_crystals*4] if you're on local or singleplayer triforce hunt; in general this means that the trash prefill is lessened and is especially low if your GT can be entered early.
Some changes were made. The design chosen is to keep the changes to the same range of changes that hard and expert apply (so no change in lamp count, for example), while trying to keep easy as similar as it was.
Replaces existing check_only_beatable, which became the "none" option.
TR can run out of key placement options, with the 100% locations
option, but I really don't care enough. It exists mostly for people who
want to 100% a seed, or to point to if they ask about keys locked behind
themselves.
Partial support for Progressive bow
- Still needs to be added to item pool
- Silver hint handling remains TBD even for VT
Added weapons selection.
- Vanilla needs to be implemented
- Assured needs to be implemented
- Inverted swordless is almost certainly messed up.
- Swordless standard mode will likely softlock
- Random weapon standard mode is currently treated as uncle assured
Deleted removed difficulties
- Remaining difficulties still need to be adjusted
Added locked property to locations:
- This is used for preplaced items etc so that multiworld balancing
knows they cannot be moved.
Made a few of the difficulty changes from V31, but not all.
Added required text changes to handle crystals requirements
- More changes will likely me made in future
- Currently there is is no way to tell ganon requirement in
Inverted mode
Does not include the server/client code or the rom writes
specific to it. Indeed it cannot write multiworld roms at
all right now, pending addition future updates to support
the official ALTTPR Multiworld client.
Includes some GUI changes by Alaszun
Co-authored-by: Alaszun <koelze@google.com>
GT now pre-fills with junk if it's in the vanilla location regardless of the state of the shuffleganon flag.
The smith is now allowed to be in multi-entrance cave locations in the appropriate shuffles. A duplicate Old Man Cave (West) from bomb shop multis was also removed.
Will help make avoid seed failure for custom pool seeds.
This won't help with a seed that has a layout that is not compatible
with the item pool though.