* Fix Director boss photo logic The rules were being added to for the "Director" boss in `set_enemy_rules()`, which didn't exist because the boss created was called "Conductor" instead. The name of the boss has been changed to "Director", to match, because it is more accurate due to DJ Grooves possibly being the boss instead of The Conductor. The missing logic was the `Hookshot Badge` requirement, however, the boss events are only used as part of the `Camera Tourist - All Clear` location, which requires every boss event to be reachable, and the Toxic Flower boss also has a `Hookshot Badge` requirement, so the missing `Hookshot Badge` for the Director boss had no effect on logic. The boss event locations are hidden from spoiler output, so to get a spoiler showing the Director boss event accessed before having `Hookshot Badge`, spoiler output had to be modified to also show the hidden locations. Example sphere from playthrough that should not be possible because it gets the `Hookshot Badge` and the `Conductor` event (now renamed to `Director`) in the same sphere: ``` 5: { Act Completion (Time Rift - Dead Bird Studio): Relic (Crayon Box) Conductor - Dead Bird Studio Basement: Conductor Dead Bird Studio (Rift) - Page: Behind Cardboard Planet: Time Piece Dead Bird Studio (Rift) - Page: Near Time Rift Gate: Hookshot Badge Picture Perfect - Hats Buy Building: Metro Ticket - Blue Snatcher - Your Contract has Expired: Snatcher } ``` * Add missing Hookshot + Painting logic for Toilet boss picture Includes the Hard logic of crossing the gap with a cherry bridge instead of hookshot and the expert logic of being able to skip the boss firewall with a cherry hover. * Fix Alpine Skyline - Goat Outpost Horn region `Alpine Skyline - Goat Outpost Horn` is accessible from The Illness has Spread, but was being added to the region that is only accessible from Alpine Free Roam. `Alpine Skyline - Goat Outpost Horn` has been moved to the region that is accessible from both The Illness has Spread and Alpine Free Roam. * Add missing HitType.umbrella logic for Top of HQ Coin in Beat the Heat Like Heating up Mafia Town, the cannon to the Mafia HQ area only opens once all the faucets have been turned off by hitting them. This requires the Umbrella when umbrella logic is enabled, but the Snatcher Coin on top of Mafia HQ was missing this requirement when accessed from Beat the Heat. * Add missing Main Objective requirement for auto-completed Bonus Stamps When a Main Objective is not excluded, but the bonuses are excluded, the bonuses auto-complete once the Main Objective is completed. The requirement to complete the Main Objective was missing, so the logic was incorrectly awarding bonus stamps as soon as a Contract was unlocked, even when it was not possible to complete the Main Objective of that Contract. * Add missing Hookshot requirement for The Arctic Cruise - Toilet from Bon Voyage! `The Arctic Cruise - Toilet` is accessed from the `Cruise Ship` region, but it is only present in the Ship Shape and Bon Voyage! acts. Ship Shape and Rock the Boat can access `Cruise Ship` without any items, but Bon Voyage! requires the Hookshot Badge to reach `Cruise Ship`. With how the logic was set up, it was incorrectly giving access to `The Arctic Cruise - Toilet` if the player had access to Bon Voyage! but only had access to `Cruise Ship` through Rock the Boat. * Fix Expert logic Rush Hour-only ticket skips The code was checking `if not world.options.NoTicketSkips:`, but that would only be `True` for `False`. For "rush_hour" (for Rush Hour-only ticket skips), it would be `False`, causing Rush Hour-only ticket skips to act as if ticket skips were disabled. * Remove Mystifying Time Mesa: Zipline gaining Hookshot requirement in moderate logic Alpine Skyline - Mystifying Time Mesa: Zipline does not normally require Hookshot Badge because it is an implied requirement due to only being accessible from Alpine Free Roam which does require Hookshot Badge. In normal logic difficulty, the location does not have an explicit Hookshot Badge requirement, but moderate logic was adding a Hookshot Badge requirement. This extraneous Hookshot Badge requirement has been removed. * Fix Act Completion (Queen Vanessa's Manor) not being accessible with Dweller Mask/Brewing Hat It was logically requiring the Umbrella hit type only, whereas all the other locations in Queen Vanessa's Manor require the Dweller Bell hit type which additionally allows Dweller Mask or Brewing Hat. * Remove Dweller Mask requirement for Subcon Forest - Tall Tree Hookshot Swing The Dweller Mask is not used in the intended vanilla route to get this item, so this requirement seems to have been a mistake. * Remove unused SDJ option for Subcon Forest - Long Tree Climb Chest Hard logic can already reach this location with nothing (other than paintings), so the "or" logic of being able to perform an SDJ was unused. * Require any non-HUMT Mafia Town act for Hot Air Balloon with nothing Two buckets/beach balls are required to bucket/ball hover, but there is only a single beach ball accessible in Heating Up Mafia Town, and no accessible buckets. There is an alternative strategy for Top of Lighthouse that only requires a single beach ball, so that location can still be reached with nothing from Heating Up Mafia Town. * Use `get_difficulty()` helper in `set_enemy_rules` Co-authored-by: Exempt-Medic <60412657+exempt-medic@users.noreply.github.com> --------- Co-authored-by: Exempt-Medic <60412657+exempt-medic@users.noreply.github.com> |
||
---|---|---|
.github | ||
.run | ||
WebHostLib | ||
data | ||
docs | ||
test | ||
typings | ||
worlds | ||
worlds_disabled | ||
.coveragerc | ||
.gitattributes | ||
.gitignore | ||
AHITClient.py | ||
AdventureClient.py | ||
BaseClasses.py | ||
BizHawkClient.py | ||
ChecksFinderClient.py | ||
CommonClient.py | ||
FF1Client.py | ||
FactorioClient.py | ||
Fill.py | ||
Generate.py | ||
KH1Client.py | ||
KH2Client.py | ||
LICENSE | ||
Launcher.py | ||
LinksAwakeningClient.py | ||
LttPAdjuster.py | ||
MMBN3Client.py | ||
Main.py | ||
MinecraftClient.py | ||
ModuleUpdate.py | ||
MultiServer.py | ||
NetUtils.py | ||
OoTAdjuster.py | ||
OoTClient.py | ||
Options.py | ||
Patch.py | ||
README.md | ||
SNIClient.py | ||
Starcraft2Client.py | ||
UndertaleClient.py | ||
Utils.py | ||
WargrooveClient.py | ||
WebHost.py | ||
Zelda1Client.py | ||
ZillionClient.py | ||
_speedups.pyx | ||
_speedups.pyxbld | ||
entrance_rando.py | ||
inno_setup.iss | ||
intset.h | ||
kvui.py | ||
meta.yaml | ||
pytest.ini | ||
requirements.txt | ||
settings.py | ||
setup.py |
README.md
Archipelago
| Install
Archipelago provides a generic framework for developing multiworld capability for game randomizers. In all cases, presently, Archipelago is also the randomizer itself.
Currently, the following games are supported:
- The Legend of Zelda: A Link to the Past
- Factorio
- Minecraft
- Subnautica
- Slay the Spire
- Risk of Rain 2
- The Legend of Zelda: Ocarina of Time
- Timespinner
- Super Metroid
- Secret of Evermore
- Final Fantasy
- Rogue Legacy
- VVVVVV
- Raft
- Super Mario 64
- Meritous
- Super Metroid/Link to the Past combo randomizer (SMZ3)
- ChecksFinder
- ArchipIDLE
- Hollow Knight
- The Witness
- Sonic Adventure 2: Battle
- Starcraft 2
- Donkey Kong Country 3
- Dark Souls 3
- Super Mario World
- Pokémon Red and Blue
- Hylics 2
- Overcooked! 2
- Zillion
- Lufia II Ancient Cave
- Blasphemous
- Wargroove
- Stardew Valley
- The Legend of Zelda
- The Messenger
- Kingdom Hearts 2
- The Legend of Zelda: Link's Awakening DX
- Clique
- Adventure
- DLC Quest
- Noita
- Undertale
- Bumper Stickers
- Mega Man Battle Network 3: Blue Version
- Muse Dash
- DOOM 1993
- Terraria
- Lingo
- Pokémon Emerald
- DOOM II
- Shivers
- Heretic
- Landstalker: The Treasures of King Nole
- Final Fantasy Mystic Quest
- TUNIC
- Kirby's Dream Land 3
- Celeste 64
- Zork Grand Inquisitor
- Castlevania 64
- A Short Hike
- Yoshi's Island
- Mario & Luigi: Superstar Saga
- Bomb Rush Cyberfunk
- Aquaria
- Yu-Gi-Oh! Ultimate Masters: World Championship Tournament 2006
- A Hat in Time
- Old School Runescape
- Kingdom Hearts 1
- Mega Man 2
- Yacht Dice
- Faxanadu
- Saving Princess
- Castlevania: Circle of the Moon
- Inscryption
For setup and instructions check out our tutorials page. Downloads can be found at Releases, including compiled windows binaries.
History
Archipelago is built upon a strong legacy of brilliant hobbyists. We want to honor that legacy by showing it here. The repositories which Archipelago is built upon, inspired by, or otherwise owes its gratitude to are:
- bonta0's MultiWorld
- AmazingAmpharos' Entrance Randomizer
- VT Web Randomizer
- Dessyreqt's alttprandomizer
- Zarby89's and sosuke3's contributions to Enemizer, which make up the vast majority of Enemizer contributions.
We recognize that there is a strong community of incredibly smart people that have come before us and helped pave the path. Just because one person's name may be in a repository title does not mean that only one person made that project happen. We can't hope to perfectly cover every single contribution that lead up to Archipelago, but we hope to honor them fairly.
Path to the Archipelago
Archipelago was directly forked from bonta0's multiworld_31
branch of ALttPEntranceRandomizer (this project has a
long legacy of its own, please check it out linked above) on January 12, 2020. The repository was then named to
MultiWorld-Utilities to better encompass its intended function. As Archipelago matured, then known as
"Berserker's MultiWorld" by some, we found it necessary to transform our repository into a root level repository
(as opposed to a 'forked repo') and change the name (which came later) to better reflect our project.
Running Archipelago
For most people, all you need to do is head over to the releases page, then download and run the appropriate installer, or AppImage for Linux-based systems.
If you are a developer or are running on a platform with no compiled releases available, please see our doc on running Archipelago from source.
Related Repositories
This project makes use of multiple other projects. We wouldn't be here without these other repositories and the contributions of their developers, past and present.
Contributing
To contribute to Archipelago, including the WebHost, core program, or by adding a new game, see our Contributing guidelines.
FAQ
For Frequently asked questions, please see the website's FAQ Page.
Code of Conduct
Please refer to our code of conduct.