- Added more progressive locations and associated items.
- Added an option to enable materials/consumables/estus randomization, some players complain about the number of locations and the randomness of those items.
- Added an option to add DLC Items and Locations to the pool, the player must own both the ASHES OF ARIANDEL and the RINGED CITY DLC.
Co-authored-by: Br00ty <83629348+Br00ty@users.noreply.github.com>
Co-authored-by: Friðberg Reynir Traustason <fridberg.traustason@gmail.com>
This adds Wargroove to the list of supported games. Wargroove uses a custom non-linear campaign over the vanilla and double trouble campaigns. A Wargroove client has been added which does a lot of heavy lifting for the Wargroove implementation and must be always on during gameplay. The mod source files can be found here: https://github.com/FlySniper/WargrooveArchipelagoMod
* Make RisingTidesOverrides consistent with normal yaml behaviour.
* Each of the options can be either string directly specifying the option, or dictionary.
* If dictionary, ensure that at least one of the options is greater than zero.
* Made keys optional
* A lot less copy/pasta.
---------
Co-authored-by: Jarno Westhof <jarnowesthof@gmail.com>
* Tests: check that Regions are reachable
try to prevent errors from unconnected/never reachable Regions
* Test region access (#1039)
* Tests: note oot's default unreachable regions
* [SM] Fixed failing testAllStateCanReachEverything (#1087)
* [SM] Fixed failing testAllStateCanReachEverything
- by adding exclusion for Regions used only when corresponding Starting Location is used
- by removing unnecessary VARIA Regions used only for EscapeRando (not supported in AP anyway)
* Update worlds/sm/Regions.py
Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com>
* Update worlds/sm/Rules.py
Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com>
* Update worlds/sm/Regions.py
Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com>
Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com>
* Update test/general/TestReachability.py
---------
Co-authored-by: espeon65536 <81029175+espeon65536@users.noreply.github.com>
Co-authored-by: lordlou <87331798+lordlou@users.noreply.github.com>
Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com>
* Timespinner: added RisingTides and DadPercent flags
* Implemented logic for DadPercent and RisingTides
* Fixed TODO's
* Logic fixes
* Fixed + removed LogicMixins
* Fixes
* More Fixes
* Added UnchainedKeys flag
* Fixed available items in pool with UnchainedKeys
* Fixed typing callable
* Fixed generation failures
* More refactorings
* Implemented traps
* Fixed more typo
* Fixed copy paste bug
* Fixed teleporter logic
* Fixed traps from pool
* Fixed pyramid gates bug that causes a crash on connecting
* Fixed seed reproduceability
* Fixed logic eye for eye spy
Now consider warp beacons as starter progression items
* Attempt to add tracker icons using table
* Replaced table layout with css grid
* Fixed tracker + added Timespinner was apworld capatible
* Updated archipelago items description
* updated URL
* Cleared up text
* Fixed based on self review of PR
* Fixed unit tests
* Fixed seed reproduceability when the traps yaml option is not provided
* Fixed logic for flooded basement
* Implemented Beserkers review result
I am not sure why, i guess this is just to make adding future games less conflicting?
Co-authored-by: Fabian Dill <Berserker66@users.noreply.github.com>
* Added two new options (thanks to WeffJebster)
* Apply suggestions from code review
Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com>
* Addition review results
---------
Co-authored-by: Fabian Dill <Berserker66@users.noreply.github.com>
Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com>
Before: 1 item activates all 4
After: 7 items activate 7 buttons, creating more divergent routes
Also, I consolidated the 6 filler emotes into a single "Emote Wheel" item to make space in the item pool.
I bumped my data version and min AP version to indicate this change.
The corresponding oc2-modding update is **v1.6.0**
* Tests: add a test that created items and locations exist in the datapackage
* move FF validation to `assert_generate` and remove test exclusion
* test created location addresses are correct
* make the assertion proper and more verbose
* make item count test ~~a bit faster~~ a lot nicer
* 120 blaze it
* name test multiworld setup better and fix another over 120 line in FFR
* LTTP: do the enemizer check in `stage_assert_generate` and break after checking any world for enemizer succeeds
* use multiworld
* catch a missed `used_enemizer` check and add typing
* more typing
## Adding in Explore Mode:
Features include:
* Added in `environments` to be items.
* `Location checks` are now `environment based` instead of being able to get them from anywhere.
* Added in support for the `DLC Survivors of the void` which include `Void Items` and `3 new maps` that come with it. (option added to use DLC)
---------
Co-authored-by: Dogpetkid <dogpetkid@gmail.com>
## New Features:
- EP Shuffle (Individual or Obelisk Sides, with varying difficulty levels)
- Ability to play without Puzzle Randomization (I.e. vanilla + AP layer)
- Pet the Dog to get a Puzzle Skip :) (No, really.)
## Changes:
- Starting inventory behavior improved (Consider starting items like doors and lasers logically even if they aren't part of the mode)
- Audio Log hint system improved (On low hint counts, you will no longer get the same locations hinted every time, i.e. always hints are shuffled)
## Fixes:
- Many fixes to symbol requirements
- Fixes to "shuffle_postgame" (What checks are evaluated as "postgame" in specific modes)
- Logically irrelevant doors are now "useful" instead of "progression"
* Make Bowser unkillable on Egg Hunt
* Increment Data Package version
Changed a location name.
* Baseline for Bowser Rooms shuffling
* Add boss shuffle
* Remove extra space
* Overworld Palette Shuffle
* Fix Literature Trap typo
* Handle Queuing traps and new Timer Trap
* Fix trap name and actually create them
* Early Climb and Overworld Speed
* Add correct tooltip for Early Climb
* Tooltip text edit
* Address unconnected regions
* Add option to fully exclude Special Zone levels from the seed
* Fix Chocolate Island 4 Dragon Coins logic
* Update worlds/smw/Client.py to use `getattr`
Fixed DW Chest Game always sending checks for the 2 chests. The checks sent were the proper "Chest Game" location for the first time the player would open the second chest but all other times, it would send either the last check that was done or default to sending location 0x00 which is SM "Power Bomb (Crateria surface)".
* ALttP: Fix hint tile hints being potentially useless with item links.
* use the set returned from world.get_player_groups(player)
* Move the group resolving to BaseClasses. Fix silver arrow hints as well.
The issue at hand is fixing impossible seeds generated by a lack of properly checking if the player can come back to its previous region after reaching for a new location, as reported here: https://discord.com/channels/731205301247803413/1050529825212874763/1050529825212874763
The previous attempt at checking for comeback was only done against "Landing Site" and the custom start region which is a partial solution at best. For exemple, generating a single player plando seed with a custom starting location at "red_brinstar_elevator" with a forced red door at "RedTowerElevatorBottomLeft" and 2 Missiles set at "Morphing Ball" and "Energy Tank, Brinstar Ceiling" would generate an impossible seed where the player is expected to go through the green door "LandingSiteRight" with no Supers to go to the only possible next location "Power Bomb (red Brinstar spike room)". This is because the comeback check would pass because it would consider coming back to "Landing Site" enough.
The proposed solution is keeping a record of the last accessed region when collecting items. It would then be used as the source of the comeback check with the destination being the new location. This check had to be moved from can_fill() to can_reach() because the maximum_exploration_state of the AP filler only use can_reach().
Its still not perfect because collect() can be called in batch for many items at a time so the last accessed region will be set as the last collected item and will be used for the next comeback checks.
This was tested a bit with the given exemple above (its now failing generation) and by generating some 8 SM players seed with many door color rando, area rando and boss rando enabled.
* Added cerulean_cave_condition to fill_slot_data
Added `cerulean_cave_condition` to the `fill_slot_data` function, for a poptracker feature being worked on as it was missing
* Added the potential for any traps to be disabled
Adding the ability to disable any kind of trap, for example if you want any status trap except being Poisoned. Will add a contingency to not try and roll a trap if they are all set to disabled.
* Added contingency to if all traps are disabled
Added a contingency to creating items such that it doesn't try to create a trap if all the traps are disabled
* Updated variable name
Edited name of variable to follow PEP 8 variable naming conventions
* oot: repair closed forest + dungeon ER
* oot: finally skip triforce pieces in balancing
* oot: fix mq_dungeons_mode set to mq or count
* oot: force 0.3.7 client
hopefully this makes people update
* oot: temp fix for skip-child-zelda crash
eventually I want to decide on a better fix for this though
* oot: remove skip-child-zelda item inside if tree
* oot: fix classification of some thieves hideout locations in tracker
* oot: fix regional shuffle for hideout keys and ganon boss key
* oot: properly attach hints to dungeon locations
* Fix entrance shuffle flag not being set correctly due to new dungeon shuffle option format
- Since multiprocessing and exceptions apparently don't interact well, any exceptions in `generate_output` are handled more gracefully now. The event is always set as well, so the process will no longer hang on an exception there.
- The triforce object file was renamed in 7.0. I didn't change the filename in the code, so it would crash on non-Windows systems.
- Some hint distributions just crash, so I'm temporarily removing them. It will take a while to port the relevant functionality and I'd rather not hold up the next version release.
* SC2: Fixed nondeterminism resulting from early unit placement
* SC2: Renamed "world" arguments to "multiworld"
* SC2: Fixed All-In Ground including anti-air in defense score, fixed error in beats_protoss_deathball
* SC2: Fixed No Logic using logic on Beat events
* SC2: Fixed /unfinished command failing when All-In available
## What is this fixing or adding?
- Adds the majority of OoTR 7.0 features:
- Pot shuffle, Freestanding item shuffle, Crate shuffle, Beehive shuffle
- Key rings mode
- Dungeon shortcuts to speed up dungeons
- "Regional" shuffle for dungeon items
- New options for shop pricing in shopsanity
- Expanded Ganon's Boss Key shuffle options
- Pre-planted beans
- Improved Chest Appearance Matches Contents mode
- Blue Fire Arrows
- Bonk self-damage
- Finer control over MQ dungeons and spawn position randomization
- Several bugfixes as a result of the update:
- Items recognized by the server and valid starting items are now in a 1-to-1 correspondence. In particular, starting with keys is now supported.
- Entrance randomization success rate improved. Hopefully it is now at 100%.
Co-authored-by: Zach Parks <zach@alliware.com>