# ALttPDoorRandomizer
This is a door randomizer for _The Legend of Zelda: A Link to the Past_ for the SNES
based on the Entrance Randomizer found at [KevinCathcart's Github Project.](https://github.com/KevinCathcart/ALttPEntranceRandomizer)
See https://alttpr.com/ for more details on the normal randomizer.
# Documentation
1. [Setup and Installation](#setup-and-installation)
2. [Commonly Missed Things](#commonly-missed-things) (** **Read This If New** **)
3. [Settings](#settings)
1. [Dungeon Randomization](#dungeon-settings)
1. [Dungeon Door Shuffle](#door-shuffle)
2. [Intensity Level](#intensity---intensity-number)
3. [Key Drop Shuffle (Legacy)](#key-drop-shuffle-legacy---keydropshuffle)
4. [Door Type Shuffle](#door-type-shuffle)
5. [Trap Door Removal](#trap-door-removal)
6. [Key Logic Algorithm](#key-logic-algorithm)
7. [Dungeon Items](#dungeon-items)
7. [Decouple Doors](#decouple-doors)
1. [Allow Self-Looping Spiral Stairs](#allow-self-looping-spiral-stairs)
8. [Experimental Features](#experimental-features)
9. [Crossed Dungeon Specific Settings](#crossed-dungeon-specific-settings)
2. [Pool Expansions](#pool-expansions)
1. [Pottery](#pottery)
2. [Small Key Shuffle](#small-key-shuffle)
3. [Shuffle Enemy Drops](#shuffle-enemy-drops)
4. [Take Any Caves](#take-any-caves)
3. [Item Randomization Changes](#item-randomization)
1. [New "Items"](#new-items)
2. [Shopsanity](#shopsanity)
3. [Logic Level](#logic-level)
4. [Goal](#goal)
5. [Item Sorting](#item-sorting)
6. [Forbidden Boss Items](#forbidden-boss-items)
4. [Customizer](#customizer)
5. [Entrance Randomization](#entrance-randomization)
1. [Shuffle Links House](#shuffle-links-house)
2. [Overworld Map](#overworld-map)
6. [Enemizer](#enemizer)
7. [Glitched Logic](#glitched-logic)
8. [Retro Changes](#retro-changes)
8. [Standard Changes](#standard-changes)
9. [Game Options](#game-options)
10. [Generation Setup & Miscellaneous](#generation-setup--miscellaneous)
## Setup and Installation
### Feedback and Bug Reports
You can use the #bug-reports or #door-rando channel at the [ALTTP Randomizer discord](https://discordapp.com/invite/alttprandomizer) to provide feedback or bug reports.
### Installation
Click on
https://github.com/aerinon/ALttPDoorRandomizer/releases
Go down to Assets and find a build for your system (Windows, Mac, or Linux)
Download and unzip. Find the DungeonRandomizer.exe or equivalent
### Installation from source
See these instructions.
https://github.com/aerinon/ALttPDoorRandomizer/blob/DoorDev/docs/BUILDING.md
When installing platform specific dependencies, don't forget to run the appropriate command from the bottom of the page! Those will install missing pip dependencies.
Running the MultiServer and MultiClient for multiworld should run resources/ci/common/local_install.py for those dependencies as well.
To use the CLI, run ```DungeonRandomizer.py```.
Alternatively, run ```Gui.py``` for a simple graphical user interface.
# Commonly Missed Things
#### and Differences from other Randomizers
Most of these apply only when the door shuffle is not vanilla.
### Starting Item
You start with a “Mirror Scroll” (it looks like a map), a dumbed-down mirror that only works in dungeons, not the overworld, and can’t erase blocks like the Mirror.
### Navigation
* Holes in Mire Torches Top and Mire Torches Bottom fall through to rooms below (you only need fire to get the chest)
* You can Hookshot from the left Mire wooden Bridge to the right one.
* In the PoD Arena, you can bonk with Boots between the two blue crystal barriers against the ladder to reach the Arena Bridge chest and door. (Bomb Jump also possible but not in logic - Boots are required)
* Flooded Rooms in Swamp can be traversed backward and may be required. The flippers are needed to get out of the water.
### Other Logic
* The chest in southeast Skull Woods that is traditionally a guaranteed Small Key in ER is not guaranteed here.
* Fire Rod is not in logic for dark rooms. (Hard enough to figure out which dark room you are in.) This is different from Advanced mode on the VT randomizer. Otherwise Advanced logic is always used. (There is no basic logic.)
* The hammerjump (and some other skips) are not in logic by default (see the mixed_travel setting for details). Doing so in a crossed dungeon seed can put you into another dungeon with the wrong dungeon id. (Much like EG)
### Boss Differences
* You have to find the attic floor and bomb it open and bring the maiden to the light to fight Blind. In cross dungeon door shuffle, the attic can be in any dungeon. If you bring the maiden to the boss arena, she will hint were the cracked floor can be found. If hints are on, there is a special one about the cracked floor.
* GT Bosses do not respawn after killing them in this mode.
* Enemizer change: The attic/maiden sequence is now active and required when Blind is the boss of Theives' Town even when bosses are shuffled.
### Crystal Switches
* You can hit the PoD crystal switch in the Sexy Statue room with a bomb from the balcony above without jumping down.
* GT Crystal Conveyor room (it has gibdos) - You can hit the crystal switch with a bomb when the blue barrier is up from the far side so you can leave the room to the left with blue barriers down.
* PoD Arena Bridge. If entering from the bridge, you can circle round and hit the switch, then fall into the hole to respawn at the bridge again with the crystal barriers different (if you don’t have a proper ranged weapon that can hit it)
### Misc
* Compass counts no longer function after you get the Triforce (this is actually true in all randomizers)
# Settings
## Dungeon Settings
Only extra settings are found here. All entrance randomizer settings are supported. See their [readme](https://github.com/KevinCathcart/ALttPEntranceRandomizer/blob/master/README.md)
### Door Shuffle
* Vanilla - Doors are not shuffled
* Basic - Doors are shuffled only within a single dungeon.
* Paritioned - Dungeons are shuffled in 3 pools: Light World, Early Dark World, Late Dark World. (Late Dark are the four dungeons that require Mitts in vanilla, including Ganons Tower)
* Crossed - Doors are shuffled between dungeons as well.
CLI: `--doorShuffle [vanilla|basic|partitioned|crossed]`
### Intensity (--intensity number)
* Level 1 - Normal door and spiral staircases are shuffled
* Level 2 - Same as Level 1 plus open edges and both types of straight staircases are shuffled.
* Level 3 - Same as Level 2 plus Dungeon Lobbies are shuffled
### Door Type Shuffle
Four options here, and all of them only take effect if Dungeon Door Shuffle is not vanilla:
* Small Key Doors, Bomb Doors, Dash Doors: This is what was normally shuffled previously
* Adds Big Keys Doors: Big key doors are now shuffled in addition to those above, and Big Key doors are enabled to be on in both vertical directions thanks to a graphic that ended up on the cutting room floor. This does change
* Adds Trap Doors: All trap doors that are permanently shut in vanilla are shuffled, excluding those by bosses.
* Increases all Door Types: This is a chaos mode where each door type per dungeon is randomized between 1 less and 4 more.
CLI: `--door_type_mode [original|big|all|chaos]`
### Trap Door Removal
Options here for making dungeon traversal nicer. Only applies if door shuffle is not vanilla.
* No Removal: This does not remove any trap doors.
* Removed If Blocking Path: Dungeon generation is relaxed to allow annoying trap doors to be removed if necessary. Note that boss trap doors are never shuffled in this mode.
* Remove Boss Traps: Boss traps are removed, this includes the one near Mothula.
* Remove All Annoying Traps: This removes all trap doors that are annoying, including boss traps.
If trap doors are shuffled the first two option behave the same. The last option overrides the shuffle because there is nothing left to shuffle. Boss traps are never shuffled.
In all cases, that the trap door near the mire cutscene chest (Mire Warping Pool ES) is left alone because it enforces the use of fire to get to the chest.
CLI: `--trap_door_mode [vanilla|optional|boss|oneway]`
### Dungeon Items
#### Small Keys
* In Dungeon: Small keys are restricted to their own dungeon
* Randomized: Small keys to dungeon can be found anywhere
* Universal: Small keys are not specific to their own dungeon, can be found anywhere, and there will be at least one shop that sells keys. Hearkens back to the original Legend of Zelda.
CLI: `--keyshuffle [none|wild|universal]`
All other dungeon items can be restricted to their own dungeon or shuffled in the general pool. This includes maps, compasses and Big Keys.
### Key Logic Algorithm
Determines how small key door logic works.
* ~~Default: Current key logic. Assumes worse case usage, placement checks, but assumes you can't get to a chest until you have sufficient keys. (May assume items are unreachable)~~ (Not recommended to use this setting)
* Partial Protection: Assumes you always have full inventory and worse case usage. This should account for dark room and bunny revival glitches.
* Strict: For those would like to glitch and be protected from yourselves. Small keys door require all small keys to be available to be in logic.
CLI: `--key_logic [default|partial|strict]`
### Decouple Doors
This is similar to insanity mode in ER where door entrances and exits are not paired anymore. Tends to remove more logic from dungeons as many rooms will not be required to traverse to explore. Hope you like transitions.
CLI: `--decoupledoors`
### Allow Self-Looping Spiral Stairs
If enabled, spiral stairs are allowed to lead to themselves.
CLI: `--door_self_loops`
### Experimental Features
You will start as a bunny if your spawn point is in the dark world. CLI: `--experimental`
### Crossed Dungeon Specific Settings
#### Dungeon Chest Counters
* Auto - picks an appropriate setting based on other settings. Generally will be pickup if the number of item in a dungeon changes.
* On - Dungeon counters on hud always displayed
* Off - Dungeon counters on hud never displayer
* On Compass Pickup - Dungeons with a compass item will display the counter once the compass is found. Dungeons without a compass item will display always unless the number of items in the dungeon is completely vanilla.
CLI: `--dungeon_counters` from `auto, on, off, pickup`
#### Mixed Travel (--mixed_travel value)
Due to Hammerjump, Hovering in PoD Arena, and the Mire Big Key Chest bomb jump, two sections of a supertile that are
otherwise unconnected logically can be reached using these glitches. To prevent the player from unintentionally changing
dungeons while doing these tricks, you may use one of the following options:
* Prevent (default):
Rails are added the 3 spots to prevent these tricks. This setting is recommend for those learning crossed dungeon mode to learn what is dangerous and what is not. No logic seeds ignore this setting.
* Allow: The rooms are left alone and it is up to the discretion of the player whether to use these tricks or not.
* Force: The two disjointed sections are forced to be in the same dungeon but the glitches are never logically required to complete that game.
#### Standardize Palettes (--standardize_palettes)
No effect if door shuffle is not on crossed
* Standardize (default): Rooms in the same dungeon have their palettes changed to match. Hyrule Castle is split between Sewer and HC palette.
Rooms adjacent to sanctuary get their coloring to match the Sanctuary's original palette.
* Original: Rooms/supertiles keep their original palettes.
## Pool Expansions
### Pottery
New pottery option that control which pots (and large blocks) are in the locations pool:
* None: No pots are in the pool, like normal randomizer
* Key Pots: The pots that have keys are in the pool. This is about half of the old keydropshuffle option
* Cave Pots: The pots that are not found in dungeons are in the pool. (Includes the large block in Spike Cave). Does
not include key pots.
* Cave + Keys Pots: Both non-dungeon pots and pots that used to have keys are in the pool.
* Reduced Dungeon Pots: Same as Cave+Keys but also roughly a quarter of dungeon pots are added to the location pool picked at random. This is a dynamic mode so pots in the pool will be colored. Pots out of the pool will have vanilla contents.
* Clustered Dungeon Pots: Like reduced but pots are grouped by logical sets and roughly 50% of pots are chosen from those groups. This is a dynamic mode like the above.
* Excludes Empty Pots: All pots that had some sort of objects under them are chosen to be in the location pool. This excludes most large blocks and some pots out of dungeons.
* Dungeon Pots: The pots that are in dungeons are in the pool. (Includes serveral large blocks)
* Lottery: All pots and large blocks are in the pool.
By default, switches remain in their vanilla location (unless you turn on the legacy option below)
CLI `--pottery