| 
									
										
										
										
											2020-04-10 21:13:16 +02:00
										 |  |  | """
 | 
					
						
							| 
									
										
										
										
											2020-02-08 12:36:23 -04:00
										 |  |  | Helper functions to deliver entrance/exit/region sets to OWG rules. | 
					
						
							| 
									
										
										
										
											2020-04-10 21:13:16 +02:00
										 |  |  | """
 | 
					
						
							| 
									
										
										
										
											2020-02-08 12:36:23 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-10 21:13:16 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-10 21:18:36 +02:00
										 |  |  | # TODO: reevaluate these points: | 
					
						
							|  |  |  | # why is this its own module? | 
					
						
							|  |  |  | # why are these functions? | 
					
						
							|  |  |  | # why is it named sets, when it was originally functions that return lists and had nothing to do with sets? | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-10 21:13:16 +02:00
										 |  |  | def get_immediately_accessible_entrances(): | 
					
						
							|  |  |  |     """
 | 
					
						
							| 
									
										
										
										
											2020-02-08 12:36:23 -04:00
										 |  |  |     Entrances that are available with no items at all. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     At this point, these are fake flipper spots. | 
					
						
							| 
									
										
										
										
											2020-04-10 21:13:16 +02:00
										 |  |  |     """
 | 
					
						
							|  |  |  |     yield 'Hobo Bridge' | 
					
						
							|  |  |  |     yield 'Zoras River' | 
					
						
							|  |  |  |     yield 'Lake Hylia Central Island Pier' | 
					
						
							| 
									
										
										
										
											2020-02-08 12:36:23 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-02-08 12:40:51 -04:00
										 |  |  | def get_sword_required_superbunny_mirror_regions(): | 
					
						
							| 
									
										
										
										
											2020-04-10 21:13:16 +02:00
										 |  |  |     """
 | 
					
						
							| 
									
										
										
										
											2020-02-08 12:36:23 -04:00
										 |  |  |     Cave regions that superbunny can get through - but only with a sword. | 
					
						
							| 
									
										
										
										
											2020-04-10 21:13:16 +02:00
										 |  |  |     """
 | 
					
						
							|  |  |  |     yield 'Mini Moldorm Cave' | 
					
						
							|  |  |  |     yield 'Spiral Cave (Top)' | 
					
						
							| 
									
										
										
										
											2020-02-08 15:18:17 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def get_invalid_mirror_bunny_entrances_dw(): | 
					
						
							| 
									
										
										
										
											2020-04-10 21:13:16 +02:00
										 |  |  |     """
 | 
					
						
							| 
									
										
										
										
											2020-02-08 15:18:17 -04:00
										 |  |  |     Dark World entrances that can't be superbunny-mirrored into. | 
					
						
							| 
									
										
										
										
											2020-04-10 21:13:16 +02:00
										 |  |  |     """
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     yield 'Skull Woods Final Section (Entrance)' | 
					
						
							|  |  |  |     yield 'Hype Cave' | 
					
						
							|  |  |  |     yield 'Bonk Fairy (Dark)' | 
					
						
							|  |  |  |     yield 'Thieves Town' | 
					
						
							|  |  |  |     yield 'Dark World Hammer Peg Cave' | 
					
						
							|  |  |  |     yield 'Brewery' | 
					
						
							|  |  |  |     yield 'Hookshot Cave' | 
					
						
							|  |  |  |     yield 'Hookshot Cave Exit (South)' | 
					
						
							|  |  |  |     yield 'Dark Lake Hylia Ledge Fairy' | 
					
						
							|  |  |  |     yield 'Dark Lake Hylia Ledge Spike Cave' | 
					
						
							| 
									
										
										
										
											2020-02-08 15:18:17 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def get_invalid_mirror_bunny_entrances_lw(): | 
					
						
							| 
									
										
										
										
											2020-04-10 21:13:16 +02:00
										 |  |  |     """
 | 
					
						
							| 
									
										
										
										
											2020-02-08 15:18:17 -04:00
										 |  |  |     Light World entrances that can't be superbunny-mirrored into. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     A couple of these, like Blind's Hideout, are odd cases where the pixel | 
					
						
							|  |  |  |     leading into the entrance prevents mirror superbunnying - generally due to | 
					
						
							|  |  |  |     there being stairs there.  | 
					
						
							| 
									
										
										
										
											2020-04-10 21:13:16 +02:00
										 |  |  |     """
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     yield 'Bonk Rock Cave' | 
					
						
							|  |  |  |     yield 'Bonk Fairy (Light)' | 
					
						
							|  |  |  |     yield 'Blinds Hideout' | 
					
						
							|  |  |  |     yield '50 Rupee Cave' | 
					
						
							|  |  |  |     yield '20 Rupee Cave' | 
					
						
							|  |  |  |     yield 'Checkerboard Cave' | 
					
						
							|  |  |  |     yield 'Light Hype Fairy' | 
					
						
							|  |  |  |     yield 'Waterfall of Wishing' | 
					
						
							|  |  |  |     yield 'Light World Bomb Hut' | 
					
						
							|  |  |  |     yield 'Mini Moldorm Cave' | 
					
						
							|  |  |  |     yield 'Ice Rod Cave' | 
					
						
							|  |  |  |     yield 'Hyrule Castle Secret Entrance Stairs' | 
					
						
							|  |  |  |     yield 'Sanctuary Grave' | 
					
						
							|  |  |  |     yield 'Kings Grave' | 
					
						
							|  |  |  |     yield 'Tower of Hera' | 
					
						
							| 
									
										
										
										
											2020-02-08 15:18:17 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def get_superbunny_accessible_locations(): | 
					
						
							| 
									
										
										
										
											2020-04-10 21:13:16 +02:00
										 |  |  |     """
 | 
					
						
							| 
									
										
										
										
											2020-02-08 15:18:17 -04:00
										 |  |  |     Interior locations that can be accessed with superbunny state. | 
					
						
							| 
									
										
										
										
											2020-04-10 21:13:16 +02:00
										 |  |  |     """
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     yield 'Waterfall of Wishing - Left' | 
					
						
							|  |  |  |     yield 'Waterfall of Wishing - Right' | 
					
						
							|  |  |  |     yield 'King\'s Tomb', 'Floodgate' | 
					
						
							|  |  |  |     yield 'Floodgate Chest' | 
					
						
							|  |  |  |     yield 'Cave 45' | 
					
						
							|  |  |  |     yield 'Bonk Rock Cave' | 
					
						
							|  |  |  |     yield 'Brewery' | 
					
						
							|  |  |  |     yield 'C-Shaped House' | 
					
						
							|  |  |  |     yield 'Chest Game' | 
					
						
							|  |  |  |     yield 'Mire Shed - Left' | 
					
						
							|  |  |  |     yield 'Mire Shed - Right' | 
					
						
							|  |  |  |     yield 'Secret Passage' | 
					
						
							|  |  |  |     yield 'Ice Rod Cave' | 
					
						
							|  |  |  |     yield 'Pyramid Fairy - Left' | 
					
						
							|  |  |  |     yield 'Pyramid Fairy - Right' | 
					
						
							|  |  |  |     yield 'Superbunny Cave - Top' | 
					
						
							|  |  |  |     yield 'Superbunny Cave - Bottom' | 
					
						
							| 
									
										
										
										
											2020-02-10 23:54:35 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-02-11 01:14:57 -04:00
										 |  |  | def get_boots_clip_exits_lw(inverted = False): | 
					
						
							| 
									
										
										
										
											2020-04-10 21:13:16 +02:00
										 |  |  |     """
 | 
					
						
							| 
									
										
										
										
											2020-02-10 23:54:35 -04:00
										 |  |  |     Special Light World region exits that require boots clips. | 
					
						
							| 
									
										
										
										
											2020-04-10 21:13:16 +02:00
										 |  |  |     """
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     yield 'Bat Cave River Clip Spot' | 
					
						
							|  |  |  |     yield 'Light World DMA Clip Spot' | 
					
						
							|  |  |  |     yield 'Hera Ascent' | 
					
						
							|  |  |  |     yield 'Death Mountain Return Ledge Clip Spot' | 
					
						
							|  |  |  |     yield 'Death Mountain Glitched Bridge' | 
					
						
							|  |  |  |     yield 'Zora Descent Clip Spot' | 
					
						
							|  |  |  |     yield 'Desert Northern Cliffs' | 
					
						
							|  |  |  |     yield 'Lake Hylia Island Clip Spot' | 
					
						
							|  |  |  |     yield 'Death Mountain Descent' | 
					
						
							|  |  |  |     yield 'Graveyard Ledge Clip Spot' | 
					
						
							|  |  |  |     # Also requires a waterwalk setup, but the point still remains. | 
					
						
							|  |  |  |     yield 'Waterfall of Wishing' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-02-11 01:14:57 -04:00
										 |  |  |     if not inverted: | 
					
						
							| 
									
										
										
										
											2020-04-10 21:13:16 +02:00
										 |  |  |         yield 'Spectacle Rock Clip Spot' | 
					
						
							|  |  |  |         yield 'Bombos Tablet Clip Spot' | 
					
						
							|  |  |  |         yield 'Floating Island Clip Spot' | 
					
						
							|  |  |  |         yield 'Cave 45 Clip Spot' | 
					
						
							| 
									
										
										
										
											2020-02-10 23:54:35 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-02-11 01:14:57 -04:00
										 |  |  | def get_boots_clip_exits_dw(inverted = False): | 
					
						
							| 
									
										
										
										
											2020-04-10 21:13:16 +02:00
										 |  |  |     """
 | 
					
						
							| 
									
										
										
										
											2020-02-10 23:54:35 -04:00
										 |  |  |     Special Dark World region exits that require boots clips. | 
					
						
							| 
									
										
										
										
											2020-04-10 21:13:16 +02:00
										 |  |  |     """
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     yield 'Dark World DMA Clip Spot' | 
					
						
							|  |  |  |     yield 'Bumper Cave Ledge Clip Spot' | 
					
						
							|  |  |  |     yield 'Catfish Descent' | 
					
						
							|  |  |  |     yield 'Hammer Pegs River Clip Spot' | 
					
						
							|  |  |  |     yield 'Dark Lake Hylia Ledge Clip Spot' | 
					
						
							|  |  |  |     yield 'Dark Desert Cliffs Clip Spot' | 
					
						
							|  |  |  |     yield 'Dark Death Mountain Descent' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-02-11 01:14:57 -04:00
										 |  |  |     if not inverted: | 
					
						
							| 
									
										
										
										
											2020-04-10 21:13:16 +02:00
										 |  |  |         yield 'Ganons Tower Ascent' | 
					
						
							|  |  |  |         yield 'Dark Death Mountain Glitched Bridge' | 
					
						
							|  |  |  |         yield 'Turtle Rock (Top) Clip Spot' | 
					
						
							| 
									
										
										
										
											2020-02-10 23:54:35 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def get_glitched_speed_drops_dw(): | 
					
						
							| 
									
										
										
										
											2020-04-10 21:13:16 +02:00
										 |  |  |     """
 | 
					
						
							| 
									
										
										
										
											2020-02-10 23:54:35 -04:00
										 |  |  |     Dark World drop-down ledges that require glitched speed. | 
					
						
							| 
									
										
										
										
											2020-04-10 21:13:16 +02:00
										 |  |  |     """
 | 
					
						
							|  |  |  |     yield 'Dark Death Mountain Ledge Clip Spot' | 
					
						
							| 
									
										
										
										
											2020-02-10 23:54:35 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def get_mirror_clip_spots_dw(): | 
					
						
							| 
									
										
										
										
											2020-04-10 21:13:16 +02:00
										 |  |  |     """
 | 
					
						
							| 
									
										
										
										
											2020-02-10 23:54:35 -04:00
										 |  |  |     Mirror shenanigans that are in logic even if the player is a bunny. | 
					
						
							| 
									
										
										
										
											2020-04-10 21:13:16 +02:00
										 |  |  |     """
 | 
					
						
							|  |  |  |     yield 'Dark Death Mountain Offset Mirror' | 
					
						
							|  |  |  |     yield 'Dark Death Mountain Bunny Descent Mirror Spot' | 
					
						
							| 
									
										
										
										
											2020-02-11 01:14:57 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def get_mirror_clip_spots_lw(): | 
					
						
							| 
									
										
										
										
											2020-04-10 21:13:16 +02:00
										 |  |  |     """
 | 
					
						
							| 
									
										
										
										
											2020-02-11 01:14:57 -04:00
										 |  |  |     Inverted mirror shenanigans in logic even if the player is a bunny. | 
					
						
							| 
									
										
										
										
											2020-04-10 21:13:16 +02:00
										 |  |  |     """
 | 
					
						
							|  |  |  |     yield 'Death Mountain Bunny Descent Mirror Spot' | 
					
						
							|  |  |  |     yield 'Death Mountain Offset Mirror' | 
					
						
							| 
									
										
										
										
											2020-02-18 20:28:33 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def get_invalid_bunny_revival_dungeons(): | 
					
						
							| 
									
										
										
										
											2020-04-10 21:13:16 +02:00
										 |  |  |     """
 | 
					
						
							| 
									
										
										
										
											2020-02-18 20:28:33 -04:00
										 |  |  |     Dungeon regions that can't be bunny revived from. | 
					
						
							| 
									
										
										
										
											2020-04-10 21:13:16 +02:00
										 |  |  |     """
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     yield 'Tower of Hera (Bottom)' | 
					
						
							|  |  |  |     yield 'Swamp Palace (Entrance)' | 
					
						
							|  |  |  |     yield 'Turtle Rock (Entrance)' |