Adds The Legend of Zelda: The Wind Waker as a supported game in Archipelago. The game uses [LagoLunatic's randomizer](https://github.com/LagoLunatic/wwrando) as its base (regarding logic, options, etc.) and builds from there.
* [Core][GER] Allow and require user-provided target name when splitting 1-way entrances
* Move target naming onto a parameter of disconnect_entrance_for_randomization
Changelog:
Features:
- New Goal
- Minigame Madness
- Win a certain number of each type of Minigame Trap, then defeat the Finalhazard to win!
- How many of each Minigame are required can be set by an Option
- When the required amount of a Minigame has been received, that Minigame can be replayed in the Chao World Lobby
- New optional Location Checks
- Bigsanity
- Go fishing with Big in each stage for a Location Check
- Itemboxsanity
- Either Extra Life Boxes or All Item Boxes
- New Items
- New Traps
- Literature Trap
- Controller Drift Trap
- Poison Trap
- Bee Trap
- New Minigame Traps
- Breakout Trap
- Fishing Trap
- Trivia Trap
- Pokemon Trivia Trap
- Pokemon Count Trap
- Number Sequence Trap
- Light Up Path Trap
- Pinball Trap
- Math Quiz Trap
- Snake Trap
- Input Sequence Trap
- Trap Link
- When you receive a trap, you send a copy of it to every other player with Trap Link enabled
- Boss Gate Plando
- Expert Logic Difficulty
- Use at your own risk. This difficulty requires complete mastery of SA2.
- Missions can now be enabled and disabled per-character, instead of just per-style
- Minigame Difficulty can now be set to "Chaos", which selects a new difficulty randomly per-trap received
Quality of Life:
- Gate Stages and Mission Orders are now displayed in the spoiler log
- Additional play stats are saved and displayed with the randomizer credits
- Stage Locations progress UI now displays in multiple pages when Itemboxsanity is enabled
- Current stage mission order and progress are now shown when paused in-level
- Chaos Emeralds are now shown when paused in-level
- Location Name Groups were created
- Moved SA2B to the new Options system
- Option Presets were created
- Error Messages are more obvious
Bug Fixes:
- Added missing `Dry Lagoon - 12 Animals` location
- Flying Dog boss should no longer crash when you have done at least 3 Intermediate Kart Races
- Invincibility can no longer be received in the King Boom Boo fight, preventing a crash
- Chaos Emeralds should no longer disproportionately end up in Cannon's Core or the final Level Gate
- Going into submenus from the pause menu should no longer reset traps
- `Sonic - Magic Gloves` are now plural
- Junk items will no longer cause a crash when in a falling state
- Chao Garden:
- Prevent races from occasionally becoming uncompletable when using the "Prize Only" option
- Properly allow Hero Chao to participate in Dark Races
- Don't allow the Chao Garden to send locations when connected to an invalid server
- Prevent the Chao Garden from resetting your life count
- Fix Chao World Entrance Shuffle causing inaccessible Neutral Garden
- Fix pressing the 'B' button to take you to the proper location in Chao World Entrance Shuffle
- Prevent Chao Karate progress icon overflow
- Prevent changing Chao Timescale while paused or while a Minigame is active
- Logic Fixes:
- `Mission Street - Chao Key 1` (Hard Logic) now requires no upgrades
- `Mission Street - Chao Key 2` (Hard Logic) now requires no upgrades
- `Crazy Gadget - Hidden 1` (Standard Logic) now requires `Sonic - Bounce Bracelet` instead of `Sonic - Light Shoes`
- `Lost Colony - Hidden 1` (Standard Logic) now requires `Eggman - Jet Engine`
- `Mad Space - Gold Beetle` (Standard Logic) now only requires `Rouge - Iron Boots`
- `Cosmic Wall - Gold Beetle` (Standard and Hard Logic) now only requires `Eggman - Jet Engine`
* DKC3, PKMN R/B/Em, M&L specific item matches
* MLSS Bean types are now discrete
* Add Doom 1/2 items
* Add Doom 1/2 items, actually
* Add Inscryption items
* Add more SA2B items, Minecraft
* Add VVVVVV
* Add misc items, comma fixes
* Hat in Time items
* Misc changes
* Expand TODO
* Add more OoT items, Pokemon consumables
* KH2
* KH1, adjust KH2 items
* Formatting fixes
* more item changes, fix kh1 name
* Fix KH1 name
* Add Full Heal to MEDICINE graphics
* Final comma fixes before PR
* Add Full Restore as Medicine
* Move some names to generic, drink fixes, double-quotes consistency fix
* moved ROCK SMASH match to PHRASES dict
* Removed some redundant name checks, remove Old Amber check from Emerald
* Added "PASS" generic check as "LETTER" sprite
* Removed TODO
* Corrected KH1 name for real this time
* Icon assignment now uppers freogin item string during comparison
* Doom skull keys are now NIGHTMARE_KEY, added QUILL as generic for FEATHER
* KH2 armor is Blunic, accessories are Ribbons
* KH1 accessories/armor are Blunic
* "ROCK SMASH" is now "BOMB"
* Removed extra space
### Features:
- New optional Location Checks
- Checkpointsanity
- Hair Color
- Allows for setting of Maddy's hair color in each of No Dash, One Dash, Two Dash, and Feather states
- Other Player Ghosts
- A game config option allows you to see ghosts of other Celeste 64 players in the multiworld
### Quality of Life:
- Checkpoint Warping
- Received Checkpoint items allow for warping to their respective checkpoint
- These items are on their respective checkpoint location if Checkpointsanity is disabled
- Logic accounts for being able to warp to otherwise inaccessible areas
- Checkpoints are a possible option for a starting item on Standard Logic + Move Shuffle + Checkpointsanity
- New Options toggle to enable/disable background input
### Bug Fixes:
- Traffic Blocks now correctly appear disabled within Cassettes
* Tests: unroll test_multiworlds.TestTwoPlayerMulti
Also adds a helper function that other tests can use to unroll tests.
* Docs: add more details to docs/tests.md
* Explain parametrization, subtests and link to the new helper
* Mention some performance details and work-arounds
* Mention multithreading / pytest-xdist
* Tests: make param.classvar_matrix accept sets
* CI: add test/param.py to type checking
* Tests: add missing typing to test/param.py
* Tests: fix typo in test/param.py doc comment
Co-authored-by: qwint <qwint.42@gmail.com>
* update docs
* Docs: reword note on performance
---------
Co-authored-by: qwint <qwint.42@gmail.com>
* Add test that stage1 ER will not fail due to speculative sweeping an indirect conditioned dead end
* Skip speculative sweep if it's the last entrance placement
* Better implementation of needs_speculative_sweep
* pep8
* Added mission order to randomized stuff, added a mention to the default option collect on goal, added an issue about mission order progress vs AP collect
* Remove false menion of collect being note modifyable after the mworld was gen
* Simplification of some sentences
* American spelling, header newline, and other
* Revert gray to grey, corrected some colors
* Forgot a gray -> grey
* Replace how the faction color option is described to side-step difference within yaml and client. Both fr/en.
* Change Regions, Areas and Connections to dataclasses/NamedTuples
* Move to new file
* we do a little renaming
* Purge the 'lambda' naming in favor of 'rule' or 'WitnessRule'
* missed one
* unnecessary change
* omega oops
* NOOOOOOOO
* Merge error
* mypy thing
* don't allow one-way and two-way entrances to be connected to each other
* add special handling for the tower hq nodes since they share the same parent region
* Change the logic for the 3 Zora's Domain Beehives to support new rule
Implement new logic changes to these 3 locations
* Update LogicHelpers.json with new rule for beehives that only appear for child link
Added below the "can_break_upper_beehive" a new helper called "can_break_upper_beehive_child" which removes the requirement for hookshot to avoid a logic error in the Zora Domain Beehives where it checks whether child or adult can break beehives, even though these beehives do not appear as an adult.
* Update LogicHelpers.json moving the call for is_child
As is_child is already called for can_use (Boomerang), it's a bit redundant to include the check for using the Boomerang, so it's being moved to be with the Bombchu check to ensure that it's not expected if the Bombchu Logic Rule is turned on that Adult can use bombchus to break the beehives. This effectively does the same thing, but should be better on performance.
* - Add requirement on Aurora Vineyard tablet to start the quest
* - Add rule for using the aurora vineyard staircase
* - Added a test for the tablet
* - Add a few missing items to the test
* - Introduce a new item to split the quest from the door and avoir ER issues
* - Optimize imports
* - Forgot to generate the item
* fix Aurora mess
# Conflicts:
# worlds/stardew_valley/rules.py
# worlds/stardew_valley/test/mods/TestMods.py
* fix a couple errors in the cherry picked commit, added a method to improve readability and reduce chance of human error on story quest conditions
* - remove blank line
* - Code review comments
* - fixed weird assert name
* - fixed accidentally surviving line
* - Fixed imports
---------
Co-authored-by: Jouramie <16137441+Jouramie@users.noreply.github.com>
* Landstalker: Fixed duplicate entrance names when using the "No teleport tree requirements" option
* Landstalker: Fixed more cases of duplicate entrance names when using "Shuffle Trees" with open trees
* Landstalker: Fixed endgame locations being present in "Reach Kazalt" goal
* Landstalker: Fixed Lithograph hint pointing at the wrong player
* Landstalker: Updated docs to remove the link to Steam since game got delisted
* Landstalker: Fixed high value hint_count rarely failing at generation
* Landstalker: Fixed dynamic shop prices being potentially invalid in case of a progression balancing (changes by ExemptMedic)
* Bottom to central path sealed off
* Bottom-to-left-path to right path sealed off
* Central opening (r4444): Left unsealed, paths seperated
* Top right half rocks fixed
* Middle to top opening sealed
* Right hallway seal correctly positioned
* Top right ladder: Fixed overlapping walls
A new `Subcon Forest - Behind Boss Firewall` region is added for
`Subcon Village - Snatcher Statue Chest`. `Subcon Forest Area` connects
to this new region, requiring either the first
`Progressive Painting Unlock`, or Expert logic +
`NoPaintingSkips: false`.
A new `Subcon Forest Boss Arena` region is added for
`Subcon Forest - Boss Arena Chest` because this is immediately
accessible from YCHE. There are connections to this region from
`Your Contract has Expired` (no requirements) and from
`Subcon Forest - Behind Boss Firewall` (requiring either Hard logic or
`Hookshot Badge` + `TOD Access`).
A reverse connection is also added to Expert logic, for
`Subcon Forest Boss Arena` -> `Subcon Forest - Behind Boss Firewall`.
This could be extended to include Hard logic if there is a reasonable
Cherry Bridge setup.
A reverse connection is also added to Expert logic, for
`Subcon Forest - Behind Boss Firewall` -> `Subcon Forest Area`, so long
as `NoPaintingSkips: false` because it is impossible to burn the
paintings to remove the firewall, from behind the firewall.
A new `Your Contract has Expired - Post Fight` region is added for the
Snatcher post fight cutscene to prevent the Snatcher Hover trick giving
access to YCHE, which would otherwise also give access to the new
`Subcon Forest Boss Arena` Region.
The paintings and boss arena gap logic for `Snatcher Statue Chest` and
`Boss Arena Chest` are now handled using the connections to/from these
new regions rather than being on the locations themselves.
The logic for `Act Completion (Toilet of Doom)` remains unchanged
because it has to be in the `Toilet of Doom` region.
In Expert logic, with `NoPaintingSkips: false`, YCHE is added as a rift
access region to Subcon Forest Time Rift entrances.
The `YCHE Access` event is no longer used and has been removed.
- Fixes painting skips logic for Subcon Village - Snatcher Statue Chest
- Fixes Subcon Forest - Boss Arena Chest being inaccessible from YCHE
- Adds Expert logic to reach `Snatcher Statue Chest` from YCHE
- Adds Expert logic to skip the boss firewall in reverse from YCHE so
long as painting skips are not removed from logic
- Adds Expert logic to access Subcon Forest Time Rift entrances from
YCHE so long as painting skips are not removed from logic
* The Messenger: transition rando
* remove unused import
* always link both directions for plando when using coupled transitions
* er_type was renamed to randomization_type
* use frozenset for things that shouldn't change
* review suggestions
* do portal and transition shuffle in `connect_entrances`
* remove some unnecessary connections that were causing entrance caching collisions
* add test for strictest possible ER settings
* use unittest.skip on the skipped test, so we don't waste time doing setUp and tearDown
* use the world helpers
* make the plando connection description more verbose
* always add searing crags portal if portal shuffle is disabled
* guarantee an arbitrary number of locations with first connection
* make the constraints more lenient for a bit more variety
* Init
* remove submodule
* Init
* Update docs
* Fix tests
* Update to use apcivvi
* Update Readme and codeowners
* Minor changes
* Remove .value from options (except starting hint)
* Minor updates
* remove unnecessary property
* Cleanup Rules and Region
* Fix output file generation
* Implement feedback
* Remove 'AP' tag and fix issue with format strings and using same quotes
* Update worlds/civ_6/__init__.py
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
* Minor docs changes
* minor updates
* Small rework of create items
* Minor updates
* Remove unused variable
* Move client to Launcher Components with rest of similar clients
* Revert "Move client to Launcher Components with rest of similar clients"
This reverts commit f9fd5df9fdf19eaf4f1de54e21e3c33a74f02364.
* modify component
* Fix generation issues
* Fix tests
* Minor change
* Add improvement and test case
* Minor options changes
* .
* Preliminary Review
* Fix failing test due to slot data serialization
* Format json
* Remove exclude missable boosts
* Update options (update goody hut text, make research multiplier a range)
* Update docs punctuation and slot data init
* Move priority/excluded locations into options
* Implement docs PR feedback
* PR Feedback for options
* PR feedback misc
* Update location classification and fix client type
* Fix typings
* Update research cost multiplier
* Remove unnecessary location priority code
* Remove extrenous use of items()
* WIP PR Feedback
* WIP PR Feedback
* Add victory event
* Add option set for death link effect
* PR improvements
* Update post fill hint to support items with multiple classifications
* remove unnecessary len
* Move location exclusion logic
* Update test to use set instead of accidental dict
* Update docs around progressive eras and boost locations
* Update docs for options to be more readable
* Fix issue with filler items and prehints
* Update filler_data to be static
* Update links in docs
* Minor updates and PR feedback
* Update boosts data
* Update era required items
* Update existing techs
* Update existing techs
* move boost data class
* Update reward data
* Update prereq data
* Update new items and progressive districts
* Remove unused code
* Make filler item name func more efficient
* Update death link text
* Move Civ6 to the end of readme
* Fix bug with hidden locations and location.name
* Partial PR Feedback Implementation
* Format changes
* Minor review feedback
* Modify access rules to use list created in generate_early
* Modify boost rules to precalculate requirements
* Remove option checks from access rules
* Fix issue with pre initialized dicts
* Add inno setup for civ6 client
* Update inno_setup.iss
---------
Co-authored-by: Scipio Wright <scipiowright@gmail.com>
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
Co-authored-by: Exempt-Medic <ExemptMedic@Gmail.com>
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>