2169 lines
		
	
	
		
			228 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			2169 lines
		
	
	
		
			228 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import typing
 | |
| 
 | |
| from BaseClasses import CollectionState, MultiWorld, Region, Entrance
 | |
| from .Locations import SMWLocation
 | |
| from .Levels import level_info_dict
 | |
| from .Names import LocationName, ItemName
 | |
| from worlds.generic.Rules import add_rule, set_rule
 | |
| from worlds.AutoWorld import World
 | |
| 
 | |
| 
 | |
| def create_regions(world: World, active_locations):
 | |
|     multiworld: MultiWorld = world.multiworld
 | |
|     player: int = world.player
 | |
| 
 | |
|     menu_region = create_region(multiworld, player, active_locations, 'Menu', None)
 | |
| 
 | |
|     yoshis_island_region = create_region(multiworld, player, active_locations, LocationName.yoshis_island_region, None)
 | |
| 
 | |
|     yoshis_house_tile = create_region(multiworld, player, active_locations, LocationName.yoshis_house_tile, None)
 | |
| 
 | |
|     yoshis_house_region_locations = []
 | |
|     if world.options.goal == "yoshi_egg_hunt":
 | |
|         yoshis_house_region_locations.append(LocationName.yoshis_house)
 | |
|     yoshis_house_region = create_region(multiworld, player, active_locations, LocationName.yoshis_house,
 | |
|                                         yoshis_house_region_locations)
 | |
| 
 | |
|     yoshis_island_1_tile = create_region(multiworld, player, active_locations, LocationName.yoshis_island_1_tile, None)
 | |
|     yoshis_island_1_region = create_region(multiworld, player, active_locations, LocationName.yoshis_island_1_region, None)
 | |
|     yoshis_island_1_exit_1 = create_region(multiworld, player, active_locations, LocationName.yoshis_island_1_exit_1,
 | |
|                                            [LocationName.yoshis_island_1_exit_1])
 | |
| 
 | |
|     yoshis_island_2_tile = create_region(multiworld, player, active_locations, LocationName.yoshis_island_2_tile, None)
 | |
|     yoshis_island_2_region = create_region(multiworld, player, active_locations, LocationName.yoshis_island_2_region, None)
 | |
|     yoshis_island_2_exit_1 = create_region(multiworld, player, active_locations, LocationName.yoshis_island_2_exit_1,
 | |
|                                            [LocationName.yoshis_island_2_exit_1])
 | |
| 
 | |
|     yoshis_island_3_tile = create_region(multiworld, player, active_locations, LocationName.yoshis_island_3_tile, None)
 | |
|     yoshis_island_3_region = create_region(multiworld, player, active_locations, LocationName.yoshis_island_3_region, None)
 | |
|     yoshis_island_3_exit_1 = create_region(multiworld, player, active_locations, LocationName.yoshis_island_3_exit_1,
 | |
|                                            [LocationName.yoshis_island_3_exit_1])
 | |
| 
 | |
|     yoshis_island_4_tile = create_region(multiworld, player, active_locations, LocationName.yoshis_island_4_tile, None)
 | |
|     yoshis_island_4_region = create_region(multiworld, player, active_locations, LocationName.yoshis_island_4_region, None)
 | |
|     yoshis_island_4_exit_1 = create_region(multiworld, player, active_locations, LocationName.yoshis_island_4_exit_1,
 | |
|                                            [LocationName.yoshis_island_4_exit_1])
 | |
| 
 | |
|     yoshis_island_castle_tile = create_region(multiworld, player, active_locations, LocationName.yoshis_island_castle_tile, None)
 | |
|     yoshis_island_castle_region = create_region(multiworld, player, active_locations, LocationName.yoshis_island_castle_region, None)
 | |
|     yoshis_island_castle = create_region(multiworld, player, active_locations, LocationName.yoshis_island_castle,
 | |
|                                          [LocationName.yoshis_island_castle, LocationName.yoshis_island_koopaling])
 | |
| 
 | |
|     yellow_switch_palace_tile = create_region(multiworld, player, active_locations, LocationName.yellow_switch_palace_tile, None)
 | |
|     yellow_switch_palace = create_region(multiworld, player, active_locations, LocationName.yellow_switch_palace,
 | |
|                                          [LocationName.yellow_switch_palace])
 | |
| 
 | |
| 
 | |
|     donut_plains_1_tile = create_region(multiworld, player, active_locations, LocationName.donut_plains_1_tile, None)
 | |
|     donut_plains_1_region = create_region(multiworld, player, active_locations, LocationName.donut_plains_1_region, None)
 | |
|     donut_plains_1_exit_1 = create_region(multiworld, player, active_locations, LocationName.donut_plains_1_exit_1,
 | |
|                                           [LocationName.donut_plains_1_exit_1])
 | |
|     donut_plains_1_exit_2 = create_region(multiworld, player, active_locations, LocationName.donut_plains_1_exit_2,
 | |
|                                           [LocationName.donut_plains_1_exit_2])
 | |
| 
 | |
|     donut_plains_2_tile = create_region(multiworld, player, active_locations, LocationName.donut_plains_2_tile, None)
 | |
|     donut_plains_2_region = create_region(multiworld, player, active_locations, LocationName.donut_plains_2_region, None)
 | |
|     donut_plains_2_exit_1 = create_region(multiworld, player, active_locations, LocationName.donut_plains_2_exit_1,
 | |
|                                            [LocationName.donut_plains_2_exit_1])
 | |
|     donut_plains_2_exit_2 = create_region(multiworld, player, active_locations, LocationName.donut_plains_2_exit_2,
 | |
|                                           [LocationName.donut_plains_2_exit_2])
 | |
| 
 | |
|     donut_plains_3_tile = create_region(multiworld, player, active_locations, LocationName.donut_plains_3_tile, None)
 | |
|     donut_plains_3_region = create_region(multiworld, player, active_locations, LocationName.donut_plains_3_region, None)
 | |
|     donut_plains_3_exit_1 = create_region(multiworld, player, active_locations, LocationName.donut_plains_3_exit_1,
 | |
|                                           [LocationName.donut_plains_3_exit_1])
 | |
| 
 | |
|     donut_plains_4_tile = create_region(multiworld, player, active_locations, LocationName.donut_plains_4_tile, None)
 | |
|     donut_plains_4_region = create_region(multiworld, player, active_locations, LocationName.donut_plains_4_region, None)
 | |
|     donut_plains_4_exit_1 = create_region(multiworld, player, active_locations, LocationName.donut_plains_4_exit_1,
 | |
|                                           [LocationName.donut_plains_4_exit_1])
 | |
| 
 | |
|     donut_secret_1_tile = create_region(multiworld, player, active_locations, LocationName.donut_secret_1_tile, None)
 | |
|     donut_secret_1_region = create_region(multiworld, player, active_locations, LocationName.donut_secret_1_region, None)
 | |
|     donut_secret_1_exit_1 = create_region(multiworld, player, active_locations, LocationName.donut_secret_1_exit_1,
 | |
|                                           [LocationName.donut_secret_1_exit_1])
 | |
|     donut_secret_1_exit_2 = create_region(multiworld, player, active_locations, LocationName.donut_secret_1_exit_2,
 | |
|                                           [LocationName.donut_secret_1_exit_2])
 | |
| 
 | |
|     donut_secret_2_tile = create_region(multiworld, player, active_locations, LocationName.donut_secret_2_tile, None)
 | |
|     donut_secret_2_region = create_region(multiworld, player, active_locations, LocationName.donut_secret_2_region, None)
 | |
|     donut_secret_2_exit_1 = create_region(multiworld, player, active_locations, LocationName.donut_secret_2_exit_1,
 | |
|                                           [LocationName.donut_secret_2_exit_1])
 | |
| 
 | |
|     donut_ghost_house_tile = create_region(multiworld, player, active_locations, LocationName.donut_ghost_house_tile, None)
 | |
|     donut_ghost_house_region = create_region(multiworld, player, active_locations, LocationName.donut_ghost_house_region, None)
 | |
|     donut_ghost_house_exit_1 = create_region(multiworld, player, active_locations, LocationName.donut_ghost_house_exit_1,
 | |
|                                              [LocationName.donut_ghost_house_exit_1])
 | |
|     donut_ghost_house_exit_2 = create_region(multiworld, player, active_locations, LocationName.donut_ghost_house_exit_2,
 | |
|                                              [LocationName.donut_ghost_house_exit_2])
 | |
| 
 | |
|     donut_secret_house_tile = create_region(multiworld, player, active_locations, LocationName.donut_secret_house_tile, None)
 | |
|     donut_secret_house_region = create_region(multiworld, player, active_locations, LocationName.donut_secret_house_region, None)
 | |
|     donut_secret_house_exit_1 = create_region(multiworld, player, active_locations, LocationName.donut_secret_house_exit_1,
 | |
|                                               [LocationName.donut_secret_house_exit_1])
 | |
|     donut_secret_house_exit_2 = create_region(multiworld, player, active_locations, LocationName.donut_secret_house_exit_2,
 | |
|                                               [LocationName.donut_secret_house_exit_2])
 | |
| 
 | |
|     donut_plains_castle_tile = create_region(multiworld, player, active_locations, LocationName.donut_plains_castle_tile, None)
 | |
|     donut_plains_castle_region = create_region(multiworld, player, active_locations, LocationName.donut_plains_castle_region, None)
 | |
|     donut_plains_castle = create_region(multiworld, player, active_locations, LocationName.donut_plains_castle,
 | |
|                                         [LocationName.donut_plains_castle, LocationName.donut_plains_koopaling])
 | |
| 
 | |
|     green_switch_palace_tile = create_region(multiworld, player, active_locations, LocationName.green_switch_palace_tile, None)
 | |
|     green_switch_palace = create_region(multiworld, player, active_locations, LocationName.green_switch_palace,
 | |
|                                         [LocationName.green_switch_palace])
 | |
| 
 | |
|     donut_plains_top_secret_tile = create_region(multiworld, player, active_locations, LocationName.donut_plains_top_secret_tile, None)
 | |
|     donut_plains_top_secret = create_region(multiworld, player, active_locations, LocationName.donut_plains_top_secret, None)
 | |
| 
 | |
| 
 | |
|     vanilla_dome_1_tile = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_1_tile, None)
 | |
|     vanilla_dome_1_region = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_1_region, None)
 | |
|     vanilla_dome_1_exit_1 = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_1_exit_1,
 | |
|                                           [LocationName.vanilla_dome_1_exit_1])
 | |
|     vanilla_dome_1_exit_2 = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_1_exit_2,
 | |
|                                           [LocationName.vanilla_dome_1_exit_2])
 | |
| 
 | |
|     vanilla_dome_2_tile = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_2_tile, None)
 | |
|     vanilla_dome_2_region = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_2_region, None)
 | |
|     vanilla_dome_2_exit_1 = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_2_exit_1,
 | |
|                                           [LocationName.vanilla_dome_2_exit_1])
 | |
|     vanilla_dome_2_exit_2 = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_2_exit_2,
 | |
|                                           [LocationName.vanilla_dome_2_exit_2])
 | |
| 
 | |
|     vanilla_dome_3_tile = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_3_tile, None)
 | |
|     vanilla_dome_3_region = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_3_region, None)
 | |
|     vanilla_dome_3_exit_1 = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_3_exit_1,
 | |
|                                           [LocationName.vanilla_dome_3_exit_1])
 | |
| 
 | |
|     vanilla_dome_4_tile = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_4_tile, None)
 | |
|     vanilla_dome_4_region = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_4_region, None)
 | |
|     vanilla_dome_4_exit_1 = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_4_exit_1,
 | |
|                                           [LocationName.vanilla_dome_4_exit_1])
 | |
| 
 | |
|     vanilla_secret_1_tile = create_region(multiworld, player, active_locations, LocationName.vanilla_secret_1_tile, None)
 | |
|     vanilla_secret_1_region = create_region(multiworld, player, active_locations, LocationName.vanilla_secret_1_region, None)
 | |
|     vanilla_secret_1_exit_1 = create_region(multiworld, player, active_locations, LocationName.vanilla_secret_1_exit_1,
 | |
|                                             [LocationName.vanilla_secret_1_exit_1])
 | |
|     vanilla_secret_1_exit_2 = create_region(multiworld, player, active_locations, LocationName.vanilla_secret_1_exit_2,
 | |
|                                             [LocationName.vanilla_secret_1_exit_2])
 | |
| 
 | |
|     vanilla_secret_2_tile = create_region(multiworld, player, active_locations, LocationName.vanilla_secret_2_tile, None)
 | |
|     vanilla_secret_2_region = create_region(multiworld, player, active_locations, LocationName.vanilla_secret_2_region, None)
 | |
|     vanilla_secret_2_exit_1 = create_region(multiworld, player, active_locations, LocationName.vanilla_secret_2_exit_1,
 | |
|                                             [LocationName.vanilla_secret_2_exit_1])
 | |
| 
 | |
|     vanilla_secret_3_tile = create_region(multiworld, player, active_locations, LocationName.vanilla_secret_3_tile, None)
 | |
|     vanilla_secret_3_region = create_region(multiworld, player, active_locations, LocationName.vanilla_secret_3_region, None)
 | |
|     vanilla_secret_3_exit_1 = create_region(multiworld, player, active_locations, LocationName.vanilla_secret_3_exit_1,
 | |
|                                             [LocationName.vanilla_secret_3_exit_1])
 | |
| 
 | |
|     vanilla_ghost_house_tile = create_region(multiworld, player, active_locations, LocationName.vanilla_ghost_house_tile, None)
 | |
|     vanilla_ghost_house_region = create_region(multiworld, player, active_locations, LocationName.vanilla_ghost_house_region, None)
 | |
|     vanilla_ghost_house_exit_1 = create_region(multiworld, player, active_locations, LocationName.vanilla_ghost_house_exit_1,
 | |
|                                                [LocationName.vanilla_ghost_house_exit_1])
 | |
| 
 | |
|     vanilla_fortress_tile = create_region(multiworld, player, active_locations, LocationName.vanilla_fortress_tile, None)
 | |
|     vanilla_fortress_region = create_region(multiworld, player, active_locations, LocationName.vanilla_fortress_region, None)
 | |
|     vanilla_fortress = create_region(multiworld, player, active_locations, LocationName.vanilla_fortress,
 | |
|                                      [LocationName.vanilla_fortress, LocationName.vanilla_reznor])
 | |
| 
 | |
|     vanilla_dome_castle_tile = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_castle_tile, None)
 | |
|     vanilla_dome_castle_region = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_castle_region, None)
 | |
|     vanilla_dome_castle = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_castle,
 | |
|                                         [LocationName.vanilla_dome_castle, LocationName.vanilla_dome_koopaling])
 | |
| 
 | |
|     red_switch_palace_tile = create_region(multiworld, player, active_locations, LocationName.red_switch_palace_tile, None)
 | |
|     red_switch_palace = create_region(multiworld, player, active_locations, LocationName.red_switch_palace,
 | |
|                                       [LocationName.red_switch_palace])
 | |
| 
 | |
| 
 | |
|     butter_bridge_1_tile = create_region(multiworld, player, active_locations, LocationName.butter_bridge_1_tile, None)
 | |
|     butter_bridge_1_region = create_region(multiworld, player, active_locations, LocationName.butter_bridge_1_region, None)
 | |
|     butter_bridge_1_exit_1 = create_region(multiworld, player, active_locations, LocationName.butter_bridge_1_exit_1,
 | |
|                                            [LocationName.butter_bridge_1_exit_1])
 | |
| 
 | |
|     butter_bridge_2_tile = create_region(multiworld, player, active_locations, LocationName.butter_bridge_2_tile, None)
 | |
|     butter_bridge_2_region = create_region(multiworld, player, active_locations, LocationName.butter_bridge_2_region, None)
 | |
|     butter_bridge_2_exit_1 = create_region(multiworld, player, active_locations, LocationName.butter_bridge_2_exit_1,
 | |
|                                            [LocationName.butter_bridge_2_exit_1])
 | |
| 
 | |
|     cheese_bridge_tile = create_region(multiworld, player, active_locations, LocationName.cheese_bridge_tile, None)
 | |
|     cheese_bridge_region = create_region(multiworld, player, active_locations, LocationName.cheese_bridge_region, None)
 | |
|     cheese_bridge_exit_1 = create_region(multiworld, player, active_locations, LocationName.cheese_bridge_exit_1,
 | |
|                                          [LocationName.cheese_bridge_exit_1])
 | |
|     cheese_bridge_exit_2 = create_region(multiworld, player, active_locations, LocationName.cheese_bridge_exit_2,
 | |
|                                          [LocationName.cheese_bridge_exit_2])
 | |
| 
 | |
|     cookie_mountain_tile = create_region(multiworld, player, active_locations, LocationName.cookie_mountain_tile, None)
 | |
|     cookie_mountain_region = create_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, None)
 | |
|     cookie_mountain_exit_1 = create_region(multiworld, player, active_locations, LocationName.cookie_mountain_exit_1,
 | |
|                                           [LocationName.cookie_mountain_exit_1])
 | |
| 
 | |
|     soda_lake_tile = create_region(multiworld, player, active_locations, LocationName.soda_lake_tile, None)
 | |
|     soda_lake_region = create_region(multiworld, player, active_locations, LocationName.soda_lake_region, None)
 | |
|     soda_lake_exit_1 = create_region(multiworld, player, active_locations, LocationName.soda_lake_exit_1,
 | |
|                                      [LocationName.soda_lake_exit_1])
 | |
| 
 | |
|     twin_bridges_castle_tile = create_region(multiworld, player, active_locations, LocationName.twin_bridges_castle_tile, None)
 | |
|     twin_bridges_castle_region = create_region(multiworld, player, active_locations, LocationName.twin_bridges_castle_region, None)
 | |
|     twin_bridges_castle = create_region(multiworld, player, active_locations, LocationName.twin_bridges_castle,
 | |
|                                         [LocationName.twin_bridges_castle, LocationName.twin_bridges_koopaling])
 | |
| 
 | |
| 
 | |
|     forest_of_illusion_1_tile = create_region(multiworld, player, active_locations, LocationName.forest_of_illusion_1_tile, None)
 | |
|     forest_of_illusion_1_region = create_region(multiworld, player, active_locations, LocationName.forest_of_illusion_1_region, None)
 | |
|     forest_of_illusion_1_exit_1 = create_region(multiworld, player, active_locations, LocationName.forest_of_illusion_1_exit_1,
 | |
|                                                 [LocationName.forest_of_illusion_1_exit_1])
 | |
|     forest_of_illusion_1_exit_2 = create_region(multiworld, player, active_locations, LocationName.forest_of_illusion_1_exit_2,
 | |
|                                                 [LocationName.forest_of_illusion_1_exit_2])
 | |
| 
 | |
|     forest_of_illusion_2_tile = create_region(multiworld, player, active_locations, LocationName.forest_of_illusion_2_tile, None)
 | |
|     forest_of_illusion_2_region = create_region(multiworld, player, active_locations, LocationName.forest_of_illusion_2_region, None)
 | |
|     forest_of_illusion_2_exit_1 = create_region(multiworld, player, active_locations, LocationName.forest_of_illusion_2_exit_1,
 | |
|                                                 [LocationName.forest_of_illusion_2_exit_1])
 | |
|     forest_of_illusion_2_exit_2 = create_region(multiworld, player, active_locations, LocationName.forest_of_illusion_2_exit_2,
 | |
|                                                 [LocationName.forest_of_illusion_2_exit_2])
 | |
| 
 | |
|     forest_of_illusion_3_tile = create_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_tile, None)
 | |
|     forest_of_illusion_3_region = create_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_region, None)
 | |
|     forest_of_illusion_3_exit_1 = create_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_exit_1,
 | |
|                                                 [LocationName.forest_of_illusion_3_exit_1])
 | |
|     forest_of_illusion_3_exit_2 = create_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_exit_2,
 | |
|                                                 [LocationName.forest_of_illusion_3_exit_2])
 | |
| 
 | |
|     forest_of_illusion_4_tile = create_region(multiworld, player, active_locations, LocationName.forest_of_illusion_4_tile, None)
 | |
|     forest_of_illusion_4_region = create_region(multiworld, player, active_locations, LocationName.forest_of_illusion_4_region, None)
 | |
|     forest_of_illusion_4_exit_1 = create_region(multiworld, player, active_locations, LocationName.forest_of_illusion_4_exit_1,
 | |
|                                                 [LocationName.forest_of_illusion_4_exit_1])
 | |
|     forest_of_illusion_4_exit_2 = create_region(multiworld, player, active_locations, LocationName.forest_of_illusion_4_exit_2,
 | |
|                                                 [LocationName.forest_of_illusion_4_exit_2])
 | |
| 
 | |
|     forest_ghost_house_tile = create_region(multiworld, player, active_locations, LocationName.forest_ghost_house_tile, None)
 | |
|     forest_ghost_house_region = create_region(multiworld, player, active_locations, LocationName.forest_ghost_house_region, None)
 | |
|     forest_ghost_house_exit_1 = create_region(multiworld, player, active_locations, LocationName.forest_ghost_house_exit_1,
 | |
|                                               [LocationName.forest_ghost_house_exit_1])
 | |
|     forest_ghost_house_exit_2 = create_region(multiworld, player, active_locations, LocationName.forest_ghost_house_exit_2,
 | |
|                                               [LocationName.forest_ghost_house_exit_2])
 | |
| 
 | |
|     forest_secret_tile = create_region(multiworld, player, active_locations, LocationName.forest_secret_tile, None)
 | |
|     forest_secret_region = create_region(multiworld, player, active_locations, LocationName.forest_secret_region, None)
 | |
|     forest_secret_exit_1 = create_region(multiworld, player, active_locations, LocationName.forest_secret_exit_1,
 | |
|                                          [LocationName.forest_secret_exit_1])
 | |
| 
 | |
|     forest_fortress_tile = create_region(multiworld, player, active_locations, LocationName.forest_fortress_tile, None)
 | |
|     forest_fortress_region = create_region(multiworld, player, active_locations, LocationName.forest_fortress_region, None)
 | |
|     forest_fortress = create_region(multiworld, player, active_locations, LocationName.forest_fortress,
 | |
|                                     [LocationName.forest_fortress, LocationName.forest_reznor])
 | |
| 
 | |
|     forest_castle_tile = create_region(multiworld, player, active_locations, LocationName.forest_castle_tile, None)
 | |
|     forest_castle_region = create_region(multiworld, player, active_locations, LocationName.forest_castle_region, None)
 | |
|     forest_castle = create_region(multiworld, player, active_locations, LocationName.forest_castle,
 | |
|                                   [LocationName.forest_castle, LocationName.forest_koopaling])
 | |
| 
 | |
|     blue_switch_palace_tile = create_region(multiworld, player, active_locations, LocationName.blue_switch_palace_tile, None)
 | |
|     blue_switch_palace = create_region(multiworld, player, active_locations, LocationName.blue_switch_palace,
 | |
|                                        [LocationName.blue_switch_palace])
 | |
| 
 | |
| 
 | |
|     chocolate_island_1_tile = create_region(multiworld, player, active_locations, LocationName.chocolate_island_1_tile, None)
 | |
|     chocolate_island_1_region = create_region(multiworld, player, active_locations, LocationName.chocolate_island_1_region, None)
 | |
|     chocolate_island_1_exit_1 = create_region(multiworld, player, active_locations, LocationName.chocolate_island_1_exit_1,
 | |
|                                               [LocationName.chocolate_island_1_exit_1])
 | |
| 
 | |
|     chocolate_island_2_tile = create_region(multiworld, player, active_locations, LocationName.chocolate_island_2_tile, None)
 | |
|     chocolate_island_2_region = create_region(multiworld, player, active_locations, LocationName.chocolate_island_2_region, None)
 | |
|     chocolate_island_2_exit_1 = create_region(multiworld, player, active_locations, LocationName.chocolate_island_2_exit_1,
 | |
|                                               [LocationName.chocolate_island_2_exit_1])
 | |
|     chocolate_island_2_exit_2 = create_region(multiworld, player, active_locations, LocationName.chocolate_island_2_exit_2,
 | |
|                                               [LocationName.chocolate_island_2_exit_2])
 | |
| 
 | |
|     chocolate_island_3_tile = create_region(multiworld, player, active_locations, LocationName.chocolate_island_3_tile, None)
 | |
|     chocolate_island_3_region = create_region(multiworld, player, active_locations, LocationName.chocolate_island_3_region, None)
 | |
|     chocolate_island_3_exit_1 = create_region(multiworld, player, active_locations, LocationName.chocolate_island_3_exit_1,
 | |
|                                               [LocationName.chocolate_island_3_exit_1])
 | |
|     chocolate_island_3_exit_2 = create_region(multiworld, player, active_locations, LocationName.chocolate_island_3_exit_2,
 | |
|                                               [LocationName.chocolate_island_3_exit_2])
 | |
| 
 | |
|     chocolate_island_4_tile = create_region(multiworld, player, active_locations, LocationName.chocolate_island_4_tile, None)
 | |
|     chocolate_island_4_region = create_region(multiworld, player, active_locations, LocationName.chocolate_island_4_region, None)
 | |
|     chocolate_island_4_exit_1 = create_region(multiworld, player, active_locations, LocationName.chocolate_island_4_exit_1,
 | |
|                                               [LocationName.chocolate_island_4_exit_1])
 | |
| 
 | |
|     chocolate_island_5_tile = create_region(multiworld, player, active_locations, LocationName.chocolate_island_5_tile, None)
 | |
|     chocolate_island_5_region = create_region(multiworld, player, active_locations, LocationName.chocolate_island_5_region, None)
 | |
|     chocolate_island_5_exit_1 = create_region(multiworld, player, active_locations, LocationName.chocolate_island_5_exit_1,
 | |
|                                               [LocationName.chocolate_island_5_exit_1])
 | |
| 
 | |
|     chocolate_ghost_house_tile = create_region(multiworld, player, active_locations, LocationName.chocolate_ghost_house_tile, None)
 | |
|     chocolate_ghost_house_region = create_region(multiworld, player, active_locations, LocationName.chocolate_ghost_house_region, None)
 | |
|     chocolate_ghost_house_exit_1 = create_region(multiworld, player, active_locations, LocationName.chocolate_ghost_house_exit_1,
 | |
|                                                  [LocationName.chocolate_ghost_house_exit_1])
 | |
| 
 | |
|     chocolate_secret_tile = create_region(multiworld, player, active_locations, LocationName.chocolate_secret_tile, None)
 | |
|     chocolate_secret_region = create_region(multiworld, player, active_locations, LocationName.chocolate_secret_region, None)
 | |
|     chocolate_secret_exit_1 = create_region(multiworld, player, active_locations, LocationName.chocolate_secret_exit_1,
 | |
|                                             [LocationName.chocolate_secret_exit_1])
 | |
| 
 | |
|     chocolate_fortress_tile = create_region(multiworld, player, active_locations, LocationName.chocolate_fortress_tile, None)
 | |
|     chocolate_fortress_region = create_region(multiworld, player, active_locations, LocationName.chocolate_fortress_region, None)
 | |
|     chocolate_fortress = create_region(multiworld, player, active_locations, LocationName.chocolate_fortress,
 | |
|                                        [LocationName.chocolate_fortress, LocationName.chocolate_reznor])
 | |
| 
 | |
|     chocolate_castle_tile = create_region(multiworld, player, active_locations, LocationName.chocolate_castle_tile, None)
 | |
|     chocolate_castle_region = create_region(multiworld, player, active_locations, LocationName.chocolate_castle_region, None)
 | |
|     chocolate_castle = create_region(multiworld, player, active_locations, LocationName.chocolate_castle,
 | |
|                                      [LocationName.chocolate_castle, LocationName.chocolate_koopaling])
 | |
| 
 | |
|     sunken_ghost_ship_tile = create_region(multiworld, player, active_locations, LocationName.sunken_ghost_ship_tile, None)
 | |
|     sunken_ghost_ship_region = create_region(multiworld, player, active_locations, LocationName.sunken_ghost_ship_region, None)
 | |
|     sunken_ghost_ship = create_region(multiworld, player, active_locations, LocationName.sunken_ghost_ship,
 | |
|                                       [LocationName.sunken_ghost_ship])
 | |
| 
 | |
| 
 | |
|     valley_of_bowser_1_tile = create_region(multiworld, player, active_locations, LocationName.valley_of_bowser_1_tile, None)
 | |
|     valley_of_bowser_1_region = create_region(multiworld, player, active_locations, LocationName.valley_of_bowser_1_region, None)
 | |
|     valley_of_bowser_1_exit_1 = create_region(multiworld, player, active_locations, LocationName.valley_of_bowser_1_exit_1,
 | |
|                                               [LocationName.valley_of_bowser_1_exit_1])
 | |
| 
 | |
|     valley_of_bowser_2_tile = create_region(multiworld, player, active_locations, LocationName.valley_of_bowser_2_tile, None)
 | |
|     valley_of_bowser_2_region = create_region(multiworld, player, active_locations, LocationName.valley_of_bowser_2_region, None)
 | |
|     valley_of_bowser_2_exit_1 = create_region(multiworld, player, active_locations, LocationName.valley_of_bowser_2_exit_1,
 | |
|                                               [LocationName.valley_of_bowser_2_exit_1])
 | |
|     valley_of_bowser_2_exit_2 = create_region(multiworld, player, active_locations, LocationName.valley_of_bowser_2_exit_2,
 | |
|                                               [LocationName.valley_of_bowser_2_exit_2])
 | |
| 
 | |
|     valley_of_bowser_3_tile = create_region(multiworld, player, active_locations, LocationName.valley_of_bowser_3_tile, None)
 | |
|     valley_of_bowser_3_region = create_region(multiworld, player, active_locations, LocationName.valley_of_bowser_3_region, None)
 | |
|     valley_of_bowser_3_exit_1 = create_region(multiworld, player, active_locations, LocationName.valley_of_bowser_3_exit_1,
 | |
|                                               [LocationName.valley_of_bowser_3_exit_1])
 | |
| 
 | |
|     valley_of_bowser_4_tile = create_region(multiworld, player, active_locations, LocationName.valley_of_bowser_4_tile, None)
 | |
|     valley_of_bowser_4_region = create_region(multiworld, player, active_locations, LocationName.valley_of_bowser_4_region, None)
 | |
|     valley_of_bowser_4_exit_1 = create_region(multiworld, player, active_locations, LocationName.valley_of_bowser_4_exit_1,
 | |
|                                               [LocationName.valley_of_bowser_4_exit_1])
 | |
|     valley_of_bowser_4_exit_2 = create_region(multiworld, player, active_locations, LocationName.valley_of_bowser_4_exit_2,
 | |
|                                               [LocationName.valley_of_bowser_4_exit_2])
 | |
| 
 | |
|     valley_ghost_house_tile = create_region(multiworld, player, active_locations, LocationName.valley_ghost_house_tile, None)
 | |
|     valley_ghost_house_region = create_region(multiworld, player, active_locations, LocationName.valley_ghost_house_region, None)
 | |
|     valley_ghost_house_exit_1 = create_region(multiworld, player, active_locations, LocationName.valley_ghost_house_exit_1,
 | |
|                                               [LocationName.valley_ghost_house_exit_1])
 | |
|     valley_ghost_house_exit_2 = create_region(multiworld, player, active_locations, LocationName.valley_ghost_house_exit_2,
 | |
|                                               [LocationName.valley_ghost_house_exit_2])
 | |
| 
 | |
|     valley_fortress_tile = create_region(multiworld, player, active_locations, LocationName.valley_fortress_tile, None)
 | |
|     valley_fortress_region = create_region(multiworld, player, active_locations, LocationName.valley_fortress_region, None)
 | |
|     valley_fortress = create_region(multiworld, player, active_locations, LocationName.valley_fortress,
 | |
|                                     [LocationName.valley_fortress, LocationName.valley_reznor])
 | |
| 
 | |
|     valley_castle_tile = create_region(multiworld, player, active_locations, LocationName.valley_castle_tile, None)
 | |
|     valley_castle_region = create_region(multiworld, player, active_locations, LocationName.valley_castle_region, None)
 | |
|     valley_castle = create_region(multiworld, player, active_locations, LocationName.valley_castle,
 | |
|                                   [LocationName.valley_castle, LocationName.valley_koopaling])
 | |
| 
 | |
|     front_door_tile = create_region(multiworld, player, active_locations, LocationName.front_door_tile, None)
 | |
|     front_door_region = create_region(multiworld, player, active_locations, LocationName.front_door, None)
 | |
|     back_door_tile = create_region(multiworld, player, active_locations, LocationName.back_door_tile, None)
 | |
|     back_door_region = create_region(multiworld, player, active_locations, LocationName.back_door, None)
 | |
|     bowser_region_locations = []
 | |
|     if world.options.goal == "bowser":
 | |
|         bowser_region_locations += [LocationName.bowser]
 | |
|     bowser_region = create_region(multiworld, player, active_locations, LocationName.bowser_region, bowser_region_locations)
 | |
| 
 | |
| 
 | |
|     donut_plains_star_road = create_region(multiworld, player, active_locations, LocationName.donut_plains_star_road, None)
 | |
|     vanilla_dome_star_road = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_star_road, None)
 | |
|     twin_bridges_star_road = create_region(multiworld, player, active_locations, LocationName.twin_bridges_star_road, None)
 | |
|     forest_star_road = create_region(multiworld, player, active_locations, LocationName.forest_star_road, None)
 | |
|     valley_star_road = create_region(multiworld, player, active_locations, LocationName.valley_star_road, None)
 | |
|     star_road_donut = create_region(multiworld, player, active_locations, LocationName.star_road_donut, None)
 | |
|     star_road_vanilla = create_region(multiworld, player, active_locations, LocationName.star_road_vanilla, None)
 | |
|     star_road_twin_bridges = create_region(multiworld, player, active_locations, LocationName.star_road_twin_bridges, None)
 | |
|     star_road_forest = create_region(multiworld, player, active_locations, LocationName.star_road_forest, None)
 | |
|     star_road_valley = create_region(multiworld, player, active_locations, LocationName.star_road_valley, None)
 | |
|     star_road_special = create_region(multiworld, player, active_locations, LocationName.star_road_special, None)
 | |
|     special_star_road = create_region(multiworld, player, active_locations, LocationName.special_star_road, None)
 | |
| 
 | |
|     star_road_1_tile = create_region(multiworld, player, active_locations, LocationName.star_road_1_tile, None)
 | |
|     star_road_1_region = create_region(multiworld, player, active_locations, LocationName.star_road_1_region, None)
 | |
|     star_road_1_exit_1 = create_region(multiworld, player, active_locations, LocationName.star_road_1_exit_1,
 | |
|                                        [LocationName.star_road_1_exit_1])
 | |
|     star_road_1_exit_2 = create_region(multiworld, player, active_locations, LocationName.star_road_1_exit_2,
 | |
|                                        [LocationName.star_road_1_exit_2])
 | |
| 
 | |
|     star_road_2_tile = create_region(multiworld, player, active_locations, LocationName.star_road_2_tile, None)
 | |
|     star_road_2_region = create_region(multiworld, player, active_locations, LocationName.star_road_2_region, None)
 | |
|     star_road_2_exit_1 = create_region(multiworld, player, active_locations, LocationName.star_road_2_exit_1,
 | |
|                                        [LocationName.star_road_2_exit_1])
 | |
|     star_road_2_exit_2 = create_region(multiworld, player, active_locations, LocationName.star_road_2_exit_2,
 | |
|                                        [LocationName.star_road_2_exit_2])
 | |
| 
 | |
|     star_road_3_tile = create_region(multiworld, player, active_locations, LocationName.star_road_3_tile, None)
 | |
|     star_road_3_region = create_region(multiworld, player, active_locations, LocationName.star_road_3_region, None)
 | |
|     star_road_3_exit_1 = create_region(multiworld, player, active_locations, LocationName.star_road_3_exit_1,
 | |
|                                        [LocationName.star_road_3_exit_1])
 | |
|     star_road_3_exit_2 = create_region(multiworld, player, active_locations, LocationName.star_road_3_exit_2,
 | |
|                                        [LocationName.star_road_3_exit_2])
 | |
| 
 | |
|     star_road_4_tile = create_region(multiworld, player, active_locations, LocationName.star_road_4_tile, None)
 | |
|     star_road_4_region = create_region(multiworld, player, active_locations, LocationName.star_road_4_region, None)
 | |
|     star_road_4_exit_1 = create_region(multiworld, player, active_locations, LocationName.star_road_4_exit_1,
 | |
|                                        [LocationName.star_road_4_exit_1])
 | |
|     star_road_4_exit_2 = create_region(multiworld, player, active_locations, LocationName.star_road_4_exit_2,
 | |
|                                        [LocationName.star_road_4_exit_2])
 | |
| 
 | |
|     star_road_5_tile = create_region(multiworld, player, active_locations, LocationName.star_road_5_tile, None)
 | |
|     star_road_5_region = create_region(multiworld, player, active_locations, LocationName.star_road_5_region, None)
 | |
|     star_road_5_exit_1 = create_region(multiworld, player, active_locations, LocationName.star_road_5_exit_1,
 | |
|                                        [LocationName.star_road_5_exit_1])
 | |
|     star_road_5_exit_2 = create_region(multiworld, player, active_locations, LocationName.star_road_5_exit_2,
 | |
|                                        [LocationName.star_road_5_exit_2])
 | |
| 
 | |
| 
 | |
|     special_zone_1_tile = create_region(multiworld, player, active_locations, LocationName.special_zone_1_tile, None)
 | |
|     special_zone_1_region = create_region(multiworld, player, active_locations, LocationName.special_zone_1_region, None)
 | |
|     special_zone_1_exit_1 = create_region(multiworld, player, active_locations, LocationName.special_zone_1_exit_1,
 | |
|                                           [LocationName.special_zone_1_exit_1])
 | |
| 
 | |
|     special_zone_2_tile = create_region(multiworld, player, active_locations, LocationName.special_zone_2_tile, None)
 | |
|     special_zone_2_region = create_region(multiworld, player, active_locations, LocationName.special_zone_2_region, None)
 | |
|     special_zone_2_exit_1 = create_region(multiworld, player, active_locations, LocationName.special_zone_2_exit_1,
 | |
|                                           [LocationName.special_zone_2_exit_1])
 | |
| 
 | |
|     special_zone_3_tile = create_region(multiworld, player, active_locations, LocationName.special_zone_3_tile, None)
 | |
|     special_zone_3_region = create_region(multiworld, player, active_locations, LocationName.special_zone_3_region, None)
 | |
|     special_zone_3_exit_1 = create_region(multiworld, player, active_locations, LocationName.special_zone_3_exit_1,
 | |
|                                           [LocationName.special_zone_3_exit_1])
 | |
| 
 | |
|     special_zone_4_tile = create_region(multiworld, player, active_locations, LocationName.special_zone_4_tile, None)
 | |
|     special_zone_4_region = create_region(multiworld, player, active_locations, LocationName.special_zone_4_region, None)
 | |
|     special_zone_4_exit_1 = create_region(multiworld, player, active_locations, LocationName.special_zone_4_exit_1,
 | |
|                                           [LocationName.special_zone_4_exit_1])
 | |
| 
 | |
|     special_zone_5_tile = create_region(multiworld, player, active_locations, LocationName.special_zone_5_tile, None)
 | |
|     special_zone_5_region = create_region(multiworld, player, active_locations, LocationName.special_zone_5_region, None)
 | |
|     special_zone_5_exit_1 = create_region(multiworld, player, active_locations, LocationName.special_zone_5_exit_1,
 | |
|                                           [LocationName.special_zone_5_exit_1])
 | |
| 
 | |
|     special_zone_6_tile = create_region(multiworld, player, active_locations, LocationName.special_zone_6_tile, None)
 | |
|     special_zone_6_region = create_region(multiworld, player, active_locations, LocationName.special_zone_6_region, None)
 | |
|     special_zone_6_exit_1 = create_region(multiworld, player, active_locations, LocationName.special_zone_6_exit_1,
 | |
|                                           [LocationName.special_zone_6_exit_1])
 | |
| 
 | |
|     special_zone_7_tile = create_region(multiworld, player, active_locations, LocationName.special_zone_7_tile, None)
 | |
|     special_zone_7_region = create_region(multiworld, player, active_locations, LocationName.special_zone_7_region, None)
 | |
|     special_zone_7_exit_1 = create_region(multiworld, player, active_locations, LocationName.special_zone_7_exit_1,
 | |
|                                           [LocationName.special_zone_7_exit_1])
 | |
| 
 | |
|     special_zone_8_tile = create_region(multiworld, player, active_locations, LocationName.special_zone_8_tile, None)
 | |
|     special_zone_8_region = create_region(multiworld, player, active_locations, LocationName.special_zone_8_region, None)
 | |
|     special_zone_8_exit_1 = create_region(multiworld, player, active_locations, LocationName.special_zone_8_exit_1,
 | |
|                                           [LocationName.special_zone_8_exit_1])
 | |
|     special_complete = create_region(multiworld, player, active_locations, LocationName.special_complete, None)
 | |
| 
 | |
| 
 | |
|     # Set up the regions correctly.
 | |
|     multiworld.regions += [
 | |
|         menu_region,
 | |
|         yoshis_island_region,
 | |
|         yoshis_house_tile,
 | |
|         yoshis_house_region,
 | |
|         yoshis_island_1_tile,
 | |
|         yoshis_island_1_region,
 | |
|         yoshis_island_1_exit_1,
 | |
|         yoshis_island_2_tile,
 | |
|         yoshis_island_2_region,
 | |
|         yoshis_island_2_exit_1,
 | |
|         yoshis_island_3_tile,
 | |
|         yoshis_island_3_region,
 | |
|         yoshis_island_3_exit_1,
 | |
|         yoshis_island_4_tile,
 | |
|         yoshis_island_4_region,
 | |
|         yoshis_island_4_exit_1,
 | |
|         yoshis_island_castle_tile,
 | |
|         yoshis_island_castle_region,
 | |
|         yoshis_island_castle,
 | |
|         yellow_switch_palace_tile,
 | |
|         yellow_switch_palace,
 | |
|         donut_plains_1_tile,
 | |
|         donut_plains_1_region,
 | |
|         donut_plains_1_exit_1,
 | |
|         donut_plains_1_exit_2,
 | |
|         donut_plains_2_tile,
 | |
|         donut_plains_2_region,
 | |
|         donut_plains_2_exit_1,
 | |
|         donut_plains_2_exit_2,
 | |
|         donut_plains_3_tile,
 | |
|         donut_plains_3_region,
 | |
|         donut_plains_3_exit_1,
 | |
|         donut_plains_4_tile,
 | |
|         donut_plains_4_region,
 | |
|         donut_plains_4_exit_1,
 | |
|         donut_secret_1_tile,
 | |
|         donut_secret_1_region,
 | |
|         donut_secret_1_exit_1,
 | |
|         donut_secret_1_exit_2,
 | |
|         donut_secret_2_tile,
 | |
|         donut_secret_2_region,
 | |
|         donut_secret_2_exit_1,
 | |
|         donut_ghost_house_tile,
 | |
|         donut_ghost_house_region,
 | |
|         donut_ghost_house_exit_1,
 | |
|         donut_ghost_house_exit_2,
 | |
|         donut_secret_house_tile,
 | |
|         donut_secret_house_region,
 | |
|         donut_secret_house_exit_1,
 | |
|         donut_secret_house_exit_2,
 | |
|         donut_plains_castle_tile,
 | |
|         donut_plains_castle_region,
 | |
|         donut_plains_castle,
 | |
|         green_switch_palace_tile,
 | |
|         green_switch_palace,
 | |
|         donut_plains_top_secret_tile,
 | |
|         donut_plains_top_secret,
 | |
|         vanilla_dome_1_tile,
 | |
|         vanilla_dome_1_region,
 | |
|         vanilla_dome_1_exit_1,
 | |
|         vanilla_dome_1_exit_2,
 | |
|         vanilla_dome_2_tile,
 | |
|         vanilla_dome_2_region,
 | |
|         vanilla_dome_2_exit_1,
 | |
|         vanilla_dome_2_exit_2,
 | |
|         vanilla_dome_3_tile,
 | |
|         vanilla_dome_3_region,
 | |
|         vanilla_dome_3_exit_1,
 | |
|         vanilla_dome_4_tile,
 | |
|         vanilla_dome_4_region,
 | |
|         vanilla_dome_4_exit_1,
 | |
|         vanilla_secret_1_tile,
 | |
|         vanilla_secret_1_region,
 | |
|         vanilla_secret_1_exit_1,
 | |
|         vanilla_secret_1_exit_2,
 | |
|         vanilla_secret_2_tile,
 | |
|         vanilla_secret_2_region,
 | |
|         vanilla_secret_2_exit_1,
 | |
|         vanilla_secret_3_tile,
 | |
|         vanilla_secret_3_region,
 | |
|         vanilla_secret_3_exit_1,
 | |
|         vanilla_ghost_house_tile,
 | |
|         vanilla_ghost_house_region,
 | |
|         vanilla_ghost_house_exit_1,
 | |
|         vanilla_fortress_tile,
 | |
|         vanilla_fortress_region,
 | |
|         vanilla_fortress,
 | |
|         vanilla_dome_castle_tile,
 | |
|         vanilla_dome_castle_region,
 | |
|         vanilla_dome_castle,
 | |
|         red_switch_palace_tile,
 | |
|         red_switch_palace,
 | |
|         butter_bridge_1_tile,
 | |
|         butter_bridge_1_region,
 | |
|         butter_bridge_1_exit_1,
 | |
|         butter_bridge_2_tile,
 | |
|         butter_bridge_2_region,
 | |
|         butter_bridge_2_exit_1,
 | |
|         cheese_bridge_tile,
 | |
|         cheese_bridge_region,
 | |
|         cheese_bridge_exit_1,
 | |
|         cheese_bridge_exit_2,
 | |
|         cookie_mountain_tile,
 | |
|         cookie_mountain_region,
 | |
|         cookie_mountain_exit_1,
 | |
|         soda_lake_tile,
 | |
|         soda_lake_region,
 | |
|         soda_lake_exit_1,
 | |
|         twin_bridges_castle_tile,
 | |
|         twin_bridges_castle_region,
 | |
|         twin_bridges_castle,
 | |
|         forest_of_illusion_1_tile,
 | |
|         forest_of_illusion_1_region,
 | |
|         forest_of_illusion_1_exit_1,
 | |
|         forest_of_illusion_1_exit_2,
 | |
|         forest_of_illusion_2_tile,
 | |
|         forest_of_illusion_2_region,
 | |
|         forest_of_illusion_2_exit_1,
 | |
|         forest_of_illusion_2_exit_2,
 | |
|         forest_of_illusion_3_tile,
 | |
|         forest_of_illusion_3_region,
 | |
|         forest_of_illusion_3_exit_1,
 | |
|         forest_of_illusion_3_exit_2,
 | |
|         forest_of_illusion_4_tile,
 | |
|         forest_of_illusion_4_region,
 | |
|         forest_of_illusion_4_exit_1,
 | |
|         forest_of_illusion_4_exit_2,
 | |
|         forest_ghost_house_tile,
 | |
|         forest_ghost_house_region,
 | |
|         forest_ghost_house_exit_1,
 | |
|         forest_ghost_house_exit_2,
 | |
|         forest_secret_tile,
 | |
|         forest_secret_region,
 | |
|         forest_secret_exit_1,
 | |
|         forest_fortress_tile,
 | |
|         forest_fortress_region,
 | |
|         forest_fortress,
 | |
|         forest_castle_tile,
 | |
|         forest_castle_region,
 | |
|         forest_castle,
 | |
|         blue_switch_palace_tile,
 | |
|         blue_switch_palace,
 | |
|         chocolate_island_1_tile,
 | |
|         chocolate_island_1_region,
 | |
|         chocolate_island_1_exit_1,
 | |
|         chocolate_island_2_tile,
 | |
|         chocolate_island_2_region,
 | |
|         chocolate_island_2_exit_1,
 | |
|         chocolate_island_2_exit_2,
 | |
|         chocolate_island_3_tile,
 | |
|         chocolate_island_3_region,
 | |
|         chocolate_island_3_exit_1,
 | |
|         chocolate_island_3_exit_2,
 | |
|         chocolate_island_4_tile,
 | |
|         chocolate_island_4_region,
 | |
|         chocolate_island_4_exit_1,
 | |
|         chocolate_island_5_tile,
 | |
|         chocolate_island_5_region,
 | |
|         chocolate_island_5_exit_1,
 | |
|         chocolate_ghost_house_tile,
 | |
|         chocolate_ghost_house_region,
 | |
|         chocolate_ghost_house_exit_1,
 | |
|         chocolate_secret_tile,
 | |
|         chocolate_secret_region,
 | |
|         chocolate_secret_exit_1,
 | |
|         chocolate_fortress_tile,
 | |
|         chocolate_fortress_region,
 | |
|         chocolate_fortress,
 | |
|         chocolate_castle_tile,
 | |
|         chocolate_castle_region,
 | |
|         chocolate_castle,
 | |
|         sunken_ghost_ship_tile,
 | |
|         sunken_ghost_ship_region,
 | |
|         sunken_ghost_ship,
 | |
|         valley_of_bowser_1_tile,
 | |
|         valley_of_bowser_1_region,
 | |
|         valley_of_bowser_1_exit_1,
 | |
|         valley_of_bowser_2_tile,
 | |
|         valley_of_bowser_2_region,
 | |
|         valley_of_bowser_2_exit_1,
 | |
|         valley_of_bowser_2_exit_2,
 | |
|         valley_of_bowser_3_tile,
 | |
|         valley_of_bowser_3_region,
 | |
|         valley_of_bowser_3_exit_1,
 | |
|         valley_of_bowser_4_tile,
 | |
|         valley_of_bowser_4_region,
 | |
|         valley_of_bowser_4_exit_1,
 | |
|         valley_of_bowser_4_exit_2,
 | |
|         valley_ghost_house_tile,
 | |
|         valley_ghost_house_region,
 | |
|         valley_ghost_house_exit_1,
 | |
|         valley_ghost_house_exit_2,
 | |
|         valley_fortress_tile,
 | |
|         valley_fortress_region,
 | |
|         valley_fortress,
 | |
|         valley_castle_tile,
 | |
|         valley_castle_region,
 | |
|         valley_castle,
 | |
|         front_door_tile,
 | |
|         front_door_region,
 | |
|         back_door_tile,
 | |
|         back_door_region,
 | |
|         bowser_region,
 | |
|         donut_plains_star_road,
 | |
|         vanilla_dome_star_road,
 | |
|         twin_bridges_star_road,
 | |
|         forest_star_road,
 | |
|         valley_star_road,
 | |
|         star_road_donut,
 | |
|         star_road_vanilla,
 | |
|         star_road_twin_bridges,
 | |
|         star_road_forest,
 | |
|         star_road_valley,
 | |
|         star_road_special,
 | |
|         special_star_road,
 | |
|         star_road_1_tile,
 | |
|         star_road_1_region,
 | |
|         star_road_1_exit_1,
 | |
|         star_road_1_exit_2,
 | |
|         star_road_2_tile,
 | |
|         star_road_2_region,
 | |
|         star_road_2_exit_1,
 | |
|         star_road_2_exit_2,
 | |
|         star_road_3_tile,
 | |
|         star_road_3_region,
 | |
|         star_road_3_exit_1,
 | |
|         star_road_3_exit_2,
 | |
|         star_road_4_tile,
 | |
|         star_road_4_region,
 | |
|         star_road_4_exit_1,
 | |
|         star_road_4_exit_2,
 | |
|         star_road_5_tile,
 | |
|         star_road_5_region,
 | |
|         star_road_5_exit_1,
 | |
|         star_road_5_exit_2,
 | |
|         special_zone_1_tile,
 | |
|         special_zone_1_region,
 | |
|         special_zone_1_exit_1,
 | |
|         special_zone_2_tile,
 | |
|         special_zone_2_region,
 | |
|         special_zone_2_exit_1,
 | |
|         special_zone_3_tile,
 | |
|         special_zone_3_region,
 | |
|         special_zone_3_exit_1,
 | |
|         special_zone_4_tile,
 | |
|         special_zone_4_region,
 | |
|         special_zone_4_exit_1,
 | |
|         special_zone_5_tile,
 | |
|         special_zone_5_region,
 | |
|         special_zone_5_exit_1,
 | |
|         special_zone_6_tile,
 | |
|         special_zone_6_region,
 | |
|         special_zone_6_exit_1,
 | |
|         special_zone_7_tile,
 | |
|         special_zone_7_region,
 | |
|         special_zone_7_exit_1,
 | |
|         special_zone_8_tile,
 | |
|         special_zone_8_region,
 | |
|         special_zone_8_exit_1,
 | |
|         special_complete,
 | |
|     ]
 | |
| 
 | |
| 
 | |
|     if world.options.dragon_coin_checks:
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_1_region, LocationName.yoshis_island_1_dragon,
 | |
|                                lambda state: (state.has(ItemName.mario_spin_jump, player) and
 | |
|                                               state.has(ItemName.progressive_powerup, player, 1)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_2_region, LocationName.yoshis_island_2_dragon,
 | |
|                                lambda state: (state.has(ItemName.yoshi_activate, player) or
 | |
|                                               state.has(ItemName.mario_climb, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_3_region, LocationName.yoshis_island_3_dragon,
 | |
|                                lambda state: state.has(ItemName.p_switch, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_4_region, LocationName.yoshis_island_4_dragon,
 | |
|                                lambda state: (state.has(ItemName.yoshi_activate, player) or
 | |
|                                               state.has(ItemName.mario_swim, player) or
 | |
|                                               (state.has(ItemName.mario_carry, player) and state.has(ItemName.p_switch, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_1_region, LocationName.donut_plains_1_dragon,
 | |
|                                lambda state: (state.has(ItemName.mario_climb, player) or
 | |
|                                                state.has(ItemName.yoshi_activate, player) or
 | |
|                                                (state.has(ItemName.progressive_powerup, player, 3) and state.has(ItemName.mario_run, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_2_region, LocationName.donut_plains_2_dragon)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_3_region, LocationName.donut_plains_3_dragon,
 | |
|                                lambda state: ((state.has(ItemName.mario_spin_jump, player) and state.has(ItemName.progressive_powerup, player, 1) and state.has(ItemName.mario_climb, player) or
 | |
|                                               state.has(ItemName.yoshi_activate, player) or
 | |
|                                               (state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3)))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_4_region, LocationName.donut_plains_4_dragon)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_secret_1_region, LocationName.donut_secret_1_dragon,
 | |
|                                lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_secret_2_region, LocationName.donut_secret_2_dragon,
 | |
|                                lambda state: (state.has(ItemName.mario_climb, player) or state.has(ItemName.yoshi_activate, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_1_region, LocationName.vanilla_dome_1_dragon,
 | |
|                                lambda state: (state.has(ItemName.mario_carry, player) and
 | |
|                                               state.has(ItemName.mario_run, player) and
 | |
|                                               (state.has(ItemName.super_star_active, player) or
 | |
|                                                state.has(ItemName.progressive_powerup, player, 1))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_2_region, LocationName.vanilla_dome_2_dragon,
 | |
|                                lambda state: (state.has(ItemName.mario_swim, player) and
 | |
|                                               state.has(ItemName.p_switch, player) and
 | |
|                                               (state.has(ItemName.mario_climb, player) or state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_3_region, LocationName.vanilla_dome_3_dragon)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_4_region, LocationName.vanilla_dome_4_dragon)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_1_region, LocationName.vanilla_secret_1_dragon,
 | |
|                                lambda state: (state.has(ItemName.mario_climb, player) and
 | |
|                                               state.has(ItemName.mario_carry, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_2_region, LocationName.vanilla_secret_2_dragon,
 | |
|                                lambda state: (state.has(ItemName.mario_run, player) and
 | |
|                                               state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_3_region, LocationName.vanilla_secret_3_dragon,
 | |
|                                lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_ghost_house_region, LocationName.vanilla_ghost_house_dragon,
 | |
|                                lambda state: state.has(ItemName.mario_climb, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.butter_bridge_1_region, LocationName.butter_bridge_1_dragon)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.butter_bridge_2_region, LocationName.butter_bridge_2_dragon,
 | |
|                                lambda state: (state.has(ItemName.mario_run, player) and
 | |
|                                               state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cheese_bridge_region, LocationName.cheese_bridge_dragon,
 | |
|                                lambda state: (state.has(ItemName.yoshi_activate, player) or
 | |
|                                               state.has(ItemName.mario_climb, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_dragon,
 | |
|                                lambda state: (state.has(ItemName.yoshi_activate, player) or
 | |
|                                               state.has(ItemName.mario_climb, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.soda_lake_region, LocationName.soda_lake_dragon,
 | |
|                                lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_2_region, LocationName.forest_of_illusion_2_dragon,
 | |
|                                lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_region, LocationName.forest_of_illusion_3_dragon,
 | |
|                                lambda state: (state.has(ItemName.yoshi_activate, player) or
 | |
|                                               state.has(ItemName.mario_carry, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_4_region, LocationName.forest_of_illusion_4_dragon,
 | |
|                                lambda state: (state.has(ItemName.yoshi_activate, player) or
 | |
|                                               state.has(ItemName.mario_carry, player) or
 | |
|                                               state.has(ItemName.p_switch, player) or
 | |
|                                               state.has(ItemName.progressive_powerup, player, 2)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_ghost_house_region, LocationName.forest_ghost_house_dragon,
 | |
|                                lambda state: state.has(ItemName.p_switch, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_secret_region, LocationName.forest_secret_dragon)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_castle_region, LocationName.forest_castle_dragon)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_1_region, LocationName.chocolate_island_1_dragon,
 | |
|                                lambda state: state.has(ItemName.p_switch, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_2_region, LocationName.chocolate_island_2_dragon,
 | |
|                                lambda state: (state.has(ItemName.blue_switch_palace, player) and
 | |
|                                               (state.has(ItemName.p_switch, player) or
 | |
|                                                state.has(ItemName.green_switch_palace, player) or
 | |
|                                                (state.has(ItemName.yellow_switch_palace, player) or state.has(ItemName.red_switch_palace, player)))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_3_region, LocationName.chocolate_island_3_dragon)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_4_region, LocationName.chocolate_island_4_dragon,
 | |
|                                lambda state: (state.has(ItemName.p_switch, player) and
 | |
|                                               state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_5_region, LocationName.chocolate_island_5_dragon,
 | |
|                                lambda state: (state.has(ItemName.mario_carry, player) and state.has(ItemName.p_switch, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.sunken_ghost_ship_region, LocationName.sunken_ghost_ship_dragon,
 | |
|                                lambda state: (state.has(ItemName.mario_swim, player) and
 | |
|                                               state.has(ItemName.super_star_active, player) and
 | |
|                                               state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.valley_of_bowser_1_region, LocationName.valley_of_bowser_1_dragon)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.valley_of_bowser_2_region, LocationName.valley_of_bowser_2_dragon,
 | |
|                                lambda state: state.has(ItemName.yoshi_activate, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.valley_of_bowser_3_region, LocationName.valley_of_bowser_3_dragon)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.valley_ghost_house_region, LocationName.valley_ghost_house_dragon,
 | |
|                                lambda state: state.has(ItemName.p_switch, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.valley_castle_region, LocationName.valley_castle_dragon)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_1_region, LocationName.star_road_1_dragon,
 | |
|                                lambda state: (state.has(ItemName.mario_spin_jump, player) and
 | |
|                                               state.has(ItemName.progressive_powerup, player, 1)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_1_region, LocationName.special_zone_1_dragon,
 | |
|                                lambda state: state.has(ItemName.mario_climb, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_2_region, LocationName.special_zone_2_dragon,
 | |
|                                lambda state: state.has(ItemName.p_balloon, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_3_region, LocationName.special_zone_3_dragon,
 | |
|                                lambda state: state.has(ItemName.yoshi_activate, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_4_region, LocationName.special_zone_4_dragon,
 | |
|                                lambda state: state.has(ItemName.progressive_powerup, player, 1))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_5_region, LocationName.special_zone_5_dragon,
 | |
|                                lambda state: state.has(ItemName.progressive_powerup, player, 1))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_dragon,
 | |
|                                lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_7_region, LocationName.special_zone_7_dragon,
 | |
|                                lambda state: state.has(ItemName.progressive_powerup, player, 1))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_8_region, LocationName.special_zone_8_dragon,
 | |
|                                lambda state: ((state.has(ItemName.progressive_powerup, player, 1) and state.has(ItemName.mario_spin_jump, player)) or
 | |
|                                                state.has(ItemName.progressive_powerup, player, 3) or
 | |
|                                                state.has(ItemName.yoshi_activate, player) or
 | |
|                                                state.has(ItemName.mario_carry, player)))
 | |
| 
 | |
|     if world.options.moon_checks:
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_1_region, LocationName.yoshis_island_1_moon,
 | |
|                                lambda state: ((state.has(ItemName.mario_run, player) and
 | |
|                                               state.has(ItemName.progressive_powerup, player, 3)) or
 | |
|                                               state.has(ItemName.yoshi_activate, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_4_region, LocationName.donut_plains_4_moon,
 | |
|                                lambda state: (state.has(ItemName.mario_run, player) and
 | |
|                                               state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_3_region, LocationName.vanilla_dome_3_moon,
 | |
|                                lambda state: (state.has(ItemName.mario_run, player) and
 | |
|                                               state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cheese_bridge_region, LocationName.cheese_bridge_moon,
 | |
|                                lambda state: (state.has(ItemName.mario_run, player) and
 | |
|                                               (state.has(ItemName.progressive_powerup, player, 3) or
 | |
|                                               state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_ghost_house_region, LocationName.forest_ghost_house_moon,
 | |
|                                lambda state: state.has(ItemName.p_switch, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_1_region, LocationName.chocolate_island_1_moon,
 | |
|                                lambda state: ((state.has(ItemName.mario_run, player) and
 | |
|                                               state.has(ItemName.progressive_powerup, player, 3)) or 
 | |
|                                               state.has(ItemName.yoshi_activate, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.valley_of_bowser_1_region, LocationName.valley_of_bowser_1_moon)
 | |
| 
 | |
|     if world.options.hidden_1up_checks:
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_4_region, LocationName.yoshis_island_4_hidden_1up,
 | |
|                                lambda state: (state.has(ItemName.yoshi_activate, player) or
 | |
|                                              (state.has(ItemName.mario_run, player, player) and
 | |
|                                               state.has(ItemName.progressive_powerup, player, 3))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_1_region, LocationName.donut_plains_1_hidden_1up)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_4_region, LocationName.donut_plains_4_hidden_1up,
 | |
|                                lambda state: (state.has(ItemName.mario_run, player) and
 | |
|                                               state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_castle_region, LocationName.donut_plains_castle_hidden_1up)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_ghost_house_region, LocationName.vanilla_ghost_house_hidden_1up)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_4_region, LocationName.vanilla_dome_4_hidden_1up)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_fortress_region, LocationName.vanilla_fortress_hidden_1up,
 | |
|                                lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_hidden_1up,
 | |
|                                lambda state: (state.has(ItemName.mario_swim, player) or
 | |
|                                               state.has(ItemName.yoshi_activate, player) or
 | |
|                                              (state.has(ItemName.mario_run, player, player) and
 | |
|                                               state.has(ItemName.progressive_powerup, player, 3))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_region, LocationName.forest_of_illusion_3_hidden_1up,
 | |
|                                lambda state: (state.has(ItemName.mario_carry, player) or
 | |
|                                               state.has(ItemName.yoshi_activate, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_2_region, LocationName.chocolate_island_2_hidden_1up)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_castle_region, LocationName.chocolate_castle_hidden_1up,
 | |
|                                lambda state: (state.has(ItemName.progressive_powerup, player, 1)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.valley_of_bowser_2_region, LocationName.valley_of_bowser_2_hidden_1up)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.valley_castle_region, LocationName.valley_castle_hidden_1up)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_1_region, LocationName.special_zone_1_hidden_1up,
 | |
|                                lambda state: state.has(ItemName.mario_climb, player))
 | |
|         
 | |
|     if world.options.bonus_block_checks:
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_3_region, LocationName.yoshis_island_3_bonus_block)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_3_region, LocationName.donut_plains_3_bonus_block)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.butter_bridge_1_region, LocationName.butter_bridge_1_bonus_block)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_3_region, LocationName.chocolate_island_3_bonus_block)
 | |
| 
 | |
|     if world.options.blocksanity:
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_2_region, LocationName.vanilla_secret_2_yoshi_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_2_region, LocationName.vanilla_secret_2_green_block_1,
 | |
|                         lambda state:( ((state.has(ItemName.green_switch_palace, player) and state.has(ItemName.mario_carry, player))) or  ((state.has(ItemName.green_switch_palace, player) and state.has(ItemName.progressive_powerup, player, 3)))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_2_region, LocationName.vanilla_secret_2_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_2_region, LocationName.vanilla_secret_2_powerup_block_2)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_2_region, LocationName.vanilla_secret_2_multi_coin_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_2_region, LocationName.vanilla_secret_2_gray_pow_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_2_region, LocationName.vanilla_secret_2_coin_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_2_region, LocationName.vanilla_secret_2_coin_block_2)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_2_region, LocationName.vanilla_secret_2_coin_block_3)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_2_region, LocationName.vanilla_secret_2_coin_block_4)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_2_region, LocationName.vanilla_secret_2_coin_block_5)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_2_region, LocationName.vanilla_secret_2_coin_block_6)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_3_region, LocationName.vanilla_secret_3_powerup_block_1,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_3_region, LocationName.vanilla_secret_3_powerup_block_2,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_ghost_house_region, LocationName.donut_ghost_house_vine_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_ghost_house_region, LocationName.donut_ghost_house_directional_coin_block_1,
 | |
|                         lambda state: state.has(ItemName.p_switch, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_ghost_house_region, LocationName.donut_ghost_house_life_block_1,
 | |
|                         lambda state: (state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_ghost_house_region, LocationName.donut_ghost_house_life_block_2,
 | |
|                         lambda state: (state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_ghost_house_region, LocationName.donut_ghost_house_life_block_3,
 | |
|                         lambda state: (state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_ghost_house_region, LocationName.donut_ghost_house_life_block_4,
 | |
|                         lambda state: (state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_3_region, LocationName.donut_plains_3_green_block_1,
 | |
|                         lambda state: state.has(ItemName.green_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_3_region, LocationName.donut_plains_3_coin_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_3_region, LocationName.donut_plains_3_coin_block_2)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_3_region, LocationName.donut_plains_3_vine_block_1,
 | |
|                         lambda state: (state.has(ItemName.progressive_powerup, player, 1) and state.has(ItemName.mario_spin_jump, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_3_region, LocationName.donut_plains_3_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_3_region, LocationName.donut_plains_3_bonus_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_4_region, LocationName.donut_plains_4_coin_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_4_region, LocationName.donut_plains_4_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_4_region, LocationName.donut_plains_4_coin_block_2)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_4_region, LocationName.donut_plains_4_yoshi_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_castle_region, LocationName.donut_plains_castle_yellow_block_1,
 | |
|                         lambda state: state.has(ItemName.yellow_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_castle_region, LocationName.donut_plains_castle_coin_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_castle_region, LocationName.donut_plains_castle_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_castle_region, LocationName.donut_plains_castle_coin_block_2)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_castle_region, LocationName.donut_plains_castle_vine_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_castle_region, LocationName.donut_plains_castle_invis_life_block_1,
 | |
|                         lambda state: state.has(ItemName.mario_climb, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_castle_region, LocationName.donut_plains_castle_coin_block_3)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_castle_region, LocationName.donut_plains_castle_coin_block_4)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_castle_region, LocationName.donut_plains_castle_coin_block_5)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_castle_region, LocationName.donut_plains_castle_green_block_1,
 | |
|                         lambda state: state.has(ItemName.green_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_2_region, LocationName.donut_plains_2_coin_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_2_region, LocationName.donut_plains_2_coin_block_2)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_2_region, LocationName.donut_plains_2_coin_block_3)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_2_region, LocationName.donut_plains_2_yellow_block_1,
 | |
|                         lambda state: state.has(ItemName.yellow_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_2_region, LocationName.donut_plains_2_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_2_region, LocationName.donut_plains_2_multi_coin_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_2_region, LocationName.donut_plains_2_flying_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_2_region, LocationName.donut_plains_2_green_block_1,
 | |
|                         lambda state: state.has(ItemName.green_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_2_region, LocationName.donut_plains_2_yellow_block_2,
 | |
|                         lambda state: state.has(ItemName.yellow_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_2_region, LocationName.donut_plains_2_vine_block_1,
 | |
|                         lambda state:( ((state.has(ItemName.mario_carry, player) and state.has(ItemName.progressive_powerup, player, 1) and state.has(ItemName.mario_spin_jump, player))) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_secret_1_region, LocationName.donut_secret_1_coin_block_1,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_secret_1_region, LocationName.donut_secret_1_coin_block_2,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_secret_1_region, LocationName.donut_secret_1_powerup_block_1,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_secret_1_region, LocationName.donut_secret_1_coin_block_3,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_secret_1_region, LocationName.donut_secret_1_powerup_block_2,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_secret_1_region, LocationName.donut_secret_1_powerup_block_3,
 | |
|                         lambda state: (state.has(ItemName.mario_swim, player) and state.has(ItemName.p_balloon, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_secret_1_region, LocationName.donut_secret_1_life_block_1,
 | |
|                         lambda state: (state.has(ItemName.mario_swim, player) and state.has(ItemName.p_balloon, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_secret_1_region, LocationName.donut_secret_1_powerup_block_4,
 | |
|                         lambda state: (state.has(ItemName.mario_swim, player) and state.has(ItemName.p_balloon, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_secret_1_region, LocationName.donut_secret_1_powerup_block_5,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_secret_1_region, LocationName.donut_secret_1_key_block_1,
 | |
|                         lambda state: (state.has(ItemName.mario_swim, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.p_switch, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_fortress_region, LocationName.vanilla_fortress_powerup_block_1,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_fortress_region, LocationName.vanilla_fortress_powerup_block_2,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_fortress_region, LocationName.vanilla_fortress_yellow_block_1,
 | |
|                         lambda state: (state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.mario_swim, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.butter_bridge_1_region, LocationName.butter_bridge_1_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.butter_bridge_1_region, LocationName.butter_bridge_1_multi_coin_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.butter_bridge_1_region, LocationName.butter_bridge_1_multi_coin_block_2)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.butter_bridge_1_region, LocationName.butter_bridge_1_multi_coin_block_3)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.butter_bridge_1_region, LocationName.butter_bridge_1_life_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.butter_bridge_1_region, LocationName.butter_bridge_1_bonus_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.butter_bridge_2_region, LocationName.butter_bridge_2_powerup_block_1,
 | |
|                         lambda state: state.has(ItemName.mario_carry, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.butter_bridge_2_region, LocationName.butter_bridge_2_green_block_1,
 | |
|                         lambda state: state.has(ItemName.green_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.butter_bridge_2_region, LocationName.butter_bridge_2_yoshi_block_1,
 | |
|                         lambda state: state.has(ItemName.mario_carry, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.twin_bridges_castle_region, LocationName.twin_bridges_castle_powerup_block_1,
 | |
|                         lambda state: state.has(ItemName.mario_climb, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cheese_bridge_region, LocationName.cheese_bridge_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cheese_bridge_region, LocationName.cheese_bridge_powerup_block_2)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cheese_bridge_region, LocationName.cheese_bridge_wings_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cheese_bridge_region, LocationName.cheese_bridge_powerup_block_3)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_coin_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_coin_block_2)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_coin_block_3)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_coin_block_4)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_coin_block_5)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_coin_block_6)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_coin_block_7)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_coin_block_8)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_coin_block_9)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_life_block_1,
 | |
|                         lambda state:( (state.has(ItemName.mario_climb, player)) or  (state.has(ItemName.mario_swim, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_vine_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_yoshi_block_1,
 | |
|                         lambda state: state.has(ItemName.red_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_coin_block_10)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_coin_block_11)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_powerup_block_2)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_coin_block_12)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_coin_block_13)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_coin_block_14)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_coin_block_15)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_coin_block_16)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_coin_block_17)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_coin_block_18)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_coin_block_19)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_coin_block_20)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_coin_block_21)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_coin_block_22)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_coin_block_23)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_coin_block_24)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_coin_block_25)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_coin_block_26)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_coin_block_27)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_coin_block_28)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_coin_block_29)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.cookie_mountain_region, LocationName.cookie_mountain_coin_block_30)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.soda_lake_region, LocationName.soda_lake_powerup_block_1,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_secret_house_region, LocationName.donut_secret_house_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_secret_house_region, LocationName.donut_secret_house_multi_coin_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_secret_house_region, LocationName.donut_secret_house_life_block_1,
 | |
|                         lambda state: state.has(ItemName.p_switch, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_secret_house_region, LocationName.donut_secret_house_vine_block_1,
 | |
|                         lambda state: state.has(ItemName.p_switch, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_secret_house_region, LocationName.donut_secret_house_directional_coin_block_1,
 | |
|                         lambda state: state.has(ItemName.p_switch, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_1_region, LocationName.donut_plains_1_coin_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_1_region, LocationName.donut_plains_1_coin_block_2)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_1_region, LocationName.donut_plains_1_yoshi_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_1_region, LocationName.donut_plains_1_vine_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_1_region, LocationName.donut_plains_1_green_block_1,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_1_region, LocationName.donut_plains_1_green_block_2,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_1_region, LocationName.donut_plains_1_green_block_3,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_1_region, LocationName.donut_plains_1_green_block_4,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_1_region, LocationName.donut_plains_1_green_block_5,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_1_region, LocationName.donut_plains_1_green_block_6,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_1_region, LocationName.donut_plains_1_green_block_7,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_1_region, LocationName.donut_plains_1_green_block_8,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_1_region, LocationName.donut_plains_1_green_block_9,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_1_region, LocationName.donut_plains_1_green_block_10,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_1_region, LocationName.donut_plains_1_green_block_11,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_1_region, LocationName.donut_plains_1_green_block_12,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_1_region, LocationName.donut_plains_1_green_block_13,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_1_region, LocationName.donut_plains_1_green_block_14,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_1_region, LocationName.donut_plains_1_green_block_15,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_1_region, LocationName.donut_plains_1_green_block_16,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_1_region, LocationName.donut_plains_1_yellow_block_1,
 | |
|                         lambda state: state.has(ItemName.yellow_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_1_region, LocationName.donut_plains_1_yellow_block_2,
 | |
|                         lambda state: state.has(ItemName.yellow_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_plains_1_region, LocationName.donut_plains_1_yellow_block_3,
 | |
|                         lambda state: state.has(ItemName.yellow_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.sunken_ghost_ship_region, LocationName.sunken_ghost_ship_powerup_block_1,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.sunken_ghost_ship_region, LocationName.sunken_ghost_ship_star_block_1,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_castle_region, LocationName.chocolate_castle_yellow_block_1,
 | |
|                         lambda state: (state.has(ItemName.progressive_powerup, player, 1) and state.has(ItemName.yellow_switch_palace, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_castle_region, LocationName.chocolate_castle_yellow_block_2,
 | |
|                         lambda state: (state.has(ItemName.progressive_powerup, player, 1) and state.has(ItemName.yellow_switch_palace, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_castle_region, LocationName.chocolate_castle_green_block_1,
 | |
|                         lambda state: (state.has(ItemName.progressive_powerup, player, 1) and state.has(ItemName.green_switch_palace, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_fortress_region, LocationName.chocolate_fortress_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_fortress_region, LocationName.chocolate_fortress_powerup_block_2)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_fortress_region, LocationName.chocolate_fortress_coin_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_fortress_region, LocationName.chocolate_fortress_coin_block_2)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_fortress_region, LocationName.chocolate_fortress_green_block_1,
 | |
|                         lambda state: state.has(ItemName.green_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_5_region, LocationName.chocolate_island_5_yoshi_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_5_region, LocationName.chocolate_island_5_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_5_region, LocationName.chocolate_island_5_life_block_1,
 | |
|                         lambda state:( (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.progressive_powerup, player, 3))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_5_region, LocationName.chocolate_island_5_yellow_block_1,
 | |
|                         lambda state: (state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.p_switch, player) and state.has(ItemName.mario_carry, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_4_region, LocationName.chocolate_island_4_yellow_block_1,
 | |
|                         lambda state: (state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.blue_switch_palace, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_4_region, LocationName.chocolate_island_4_blue_pow_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_4_region, LocationName.chocolate_island_4_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_fortress_region, LocationName.forest_fortress_yellow_block_1,
 | |
|                         lambda state: state.has(ItemName.yellow_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_fortress_region, LocationName.forest_fortress_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_fortress_region, LocationName.forest_fortress_life_block_1,
 | |
|                         lambda state: (state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_fortress_region, LocationName.forest_fortress_life_block_2,
 | |
|                         lambda state: (state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_fortress_region, LocationName.forest_fortress_life_block_3,
 | |
|                         lambda state: (state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_fortress_region, LocationName.forest_fortress_life_block_4,
 | |
|                         lambda state: (state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_fortress_region, LocationName.forest_fortress_life_block_5,
 | |
|                         lambda state: (state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_fortress_region, LocationName.forest_fortress_life_block_6,
 | |
|                         lambda state: (state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_fortress_region, LocationName.forest_fortress_life_block_7,
 | |
|                         lambda state: (state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_fortress_region, LocationName.forest_fortress_life_block_8,
 | |
|                         lambda state: (state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_fortress_region, LocationName.forest_fortress_life_block_9,
 | |
|                         lambda state: (state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_castle_region, LocationName.forest_castle_green_block_1,
 | |
|                         lambda state: state.has(ItemName.green_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_ghost_house_region, LocationName.chocolate_ghost_house_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_ghost_house_region, LocationName.chocolate_ghost_house_powerup_block_2)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_ghost_house_region, LocationName.chocolate_ghost_house_life_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_1_region, LocationName.chocolate_island_1_flying_block_1,
 | |
|                         lambda state: state.has(ItemName.p_switch, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_1_region, LocationName.chocolate_island_1_flying_block_2,
 | |
|                         lambda state: state.has(ItemName.p_switch, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_1_region, LocationName.chocolate_island_1_yoshi_block_1,
 | |
|                         lambda state: state.has(ItemName.p_switch, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_1_region, LocationName.chocolate_island_1_green_block_1,
 | |
|                         lambda state:( ((state.has(ItemName.green_switch_palace, player) and state.has(ItemName.blue_switch_palace, player) and state.has(ItemName.p_switch, player))) or  ((state.has(ItemName.green_switch_palace, player) and state.has(ItemName.progressive_powerup, player, 3) and state.has(ItemName.p_switch, player))) or  ((state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.blue_switch_palace, player) and state.has(ItemName.p_switch, player))) or  ((state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.progressive_powerup, player, 3) and state.has(ItemName.p_switch, player)))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_1_region, LocationName.chocolate_island_1_life_block_1,
 | |
|                         lambda state: state.has(ItemName.p_switch, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_3_region, LocationName.chocolate_island_3_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_3_region, LocationName.chocolate_island_3_powerup_block_2)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_3_region, LocationName.chocolate_island_3_powerup_block_3)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_3_region, LocationName.chocolate_island_3_green_block_1,
 | |
|                         lambda state: state.has(ItemName.green_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_3_region, LocationName.chocolate_island_3_bonus_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_3_region, LocationName.chocolate_island_3_vine_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_3_region, LocationName.chocolate_island_3_life_block_1,
 | |
|                         lambda state: (state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_3_region, LocationName.chocolate_island_3_life_block_2,
 | |
|                         lambda state: (state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_3_region, LocationName.chocolate_island_3_life_block_3,
 | |
|                         lambda state: (state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_2_region, LocationName.chocolate_island_2_multi_coin_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_2_region, LocationName.chocolate_island_2_invis_coin_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_2_region, LocationName.chocolate_island_2_yoshi_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_2_region, LocationName.chocolate_island_2_coin_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_2_region, LocationName.chocolate_island_2_coin_block_2)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_2_region, LocationName.chocolate_island_2_multi_coin_block_2)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_2_region, LocationName.chocolate_island_2_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_2_region, LocationName.chocolate_island_2_blue_pow_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_2_region, LocationName.chocolate_island_2_yellow_block_1,
 | |
|                         lambda state: state.has(ItemName.yellow_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_2_region, LocationName.chocolate_island_2_yellow_block_2,
 | |
|                         lambda state: state.has(ItemName.yellow_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_2_region, LocationName.chocolate_island_2_green_block_1,
 | |
|                         lambda state: state.has(ItemName.green_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_2_region, LocationName.chocolate_island_2_green_block_2,
 | |
|                         lambda state: state.has(ItemName.green_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_2_region, LocationName.chocolate_island_2_green_block_3,
 | |
|                         lambda state: state.has(ItemName.green_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_2_region, LocationName.chocolate_island_2_green_block_4,
 | |
|                         lambda state: state.has(ItemName.green_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_2_region, LocationName.chocolate_island_2_green_block_5,
 | |
|                         lambda state: state.has(ItemName.green_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_island_2_region, LocationName.chocolate_island_2_green_block_6,
 | |
|                         lambda state: state.has(ItemName.green_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_castle_region, LocationName.yoshis_island_castle_coin_block_1,
 | |
|                         lambda state: state.has(ItemName.mario_climb, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_castle_region, LocationName.yoshis_island_castle_coin_block_2,
 | |
|                         lambda state: state.has(ItemName.mario_climb, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_castle_region, LocationName.yoshis_island_castle_powerup_block_1,
 | |
|                         lambda state: state.has(ItemName.mario_climb, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_castle_region, LocationName.yoshis_island_castle_coin_block_3,
 | |
|                         lambda state: state.has(ItemName.mario_climb, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_castle_region, LocationName.yoshis_island_castle_coin_block_4,
 | |
|                         lambda state: state.has(ItemName.mario_climb, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_castle_region, LocationName.yoshis_island_castle_flying_block_1,
 | |
|                         lambda state: state.has(ItemName.mario_climb, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_4_region, LocationName.yoshis_island_4_yellow_block_1,
 | |
|                         lambda state: state.has(ItemName.yellow_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_4_region, LocationName.yoshis_island_4_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_4_region, LocationName.yoshis_island_4_multi_coin_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_4_region, LocationName.yoshis_island_4_star_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_3_region, LocationName.yoshis_island_3_yellow_block_1,
 | |
|                         lambda state: state.has(ItemName.yellow_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_3_region, LocationName.yoshis_island_3_yellow_block_2,
 | |
|                         lambda state: state.has(ItemName.yellow_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_3_region, LocationName.yoshis_island_3_yellow_block_3,
 | |
|                         lambda state:( ((state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.mario_carry, player))) or  ((state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.yoshi_activate, player))) or  ((state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3)))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_3_region, LocationName.yoshis_island_3_yellow_block_4,
 | |
|                         lambda state:( ((state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.mario_carry, player))) or  ((state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.yoshi_activate, player))) or  ((state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3)))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_3_region, LocationName.yoshis_island_3_yellow_block_5,
 | |
|                         lambda state:( ((state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.mario_carry, player))) or  ((state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.yoshi_activate, player))) or  ((state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3)))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_3_region, LocationName.yoshis_island_3_yellow_block_6,
 | |
|                         lambda state:( ((state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.mario_carry, player))) or  ((state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.yoshi_activate, player))) or  ((state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3)))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_3_region, LocationName.yoshis_island_3_yellow_block_7,
 | |
|                         lambda state:( ((state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.mario_carry, player))) or  ((state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.yoshi_activate, player))) or  ((state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3)))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_3_region, LocationName.yoshis_island_3_yellow_block_8,
 | |
|                         lambda state:( ((state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.mario_carry, player))) or  ((state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.yoshi_activate, player))) or  ((state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3)))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_3_region, LocationName.yoshis_island_3_yellow_block_9,
 | |
|                         lambda state:( ((state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.mario_carry, player))) or  ((state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.yoshi_activate, player))) or  ((state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3)))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_3_region, LocationName.yoshis_island_3_coin_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_3_region, LocationName.yoshis_island_3_yoshi_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_3_region, LocationName.yoshis_island_3_coin_block_2)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_3_region, LocationName.yoshis_island_3_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_3_region, LocationName.yoshis_island_3_yellow_block_10,
 | |
|                         lambda state: state.has(ItemName.yellow_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_3_region, LocationName.yoshis_island_3_yellow_block_11,
 | |
|                         lambda state: state.has(ItemName.yellow_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_3_region, LocationName.yoshis_island_3_yellow_block_12,
 | |
|                         lambda state: state.has(ItemName.yellow_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_3_region, LocationName.yoshis_island_3_bonus_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_1_region, LocationName.yoshis_island_1_flying_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_1_region, LocationName.yoshis_island_1_yellow_block_1,
 | |
|                         lambda state: state.has(ItemName.yellow_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_1_region, LocationName.yoshis_island_1_life_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_1_region, LocationName.yoshis_island_1_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_2_region, LocationName.yoshis_island_2_flying_block_1,
 | |
|                         lambda state:( (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_2_region, LocationName.yoshis_island_2_flying_block_2,
 | |
|                         lambda state:( (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_2_region, LocationName.yoshis_island_2_flying_block_3,
 | |
|                         lambda state:( (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_2_region, LocationName.yoshis_island_2_flying_block_4,
 | |
|                         lambda state:( (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_2_region, LocationName.yoshis_island_2_flying_block_5,
 | |
|                         lambda state:( (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_2_region, LocationName.yoshis_island_2_flying_block_6,
 | |
|                         lambda state:( (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_2_region, LocationName.yoshis_island_2_coin_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_2_region, LocationName.yoshis_island_2_yellow_block_1,
 | |
|                         lambda state: state.has(ItemName.yellow_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_2_region, LocationName.yoshis_island_2_coin_block_2)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_2_region, LocationName.yoshis_island_2_coin_block_3)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_2_region, LocationName.yoshis_island_2_yoshi_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_2_region, LocationName.yoshis_island_2_coin_block_4)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_2_region, LocationName.yoshis_island_2_yoshi_block_2)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_2_region, LocationName.yoshis_island_2_coin_block_5)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_2_region, LocationName.yoshis_island_2_vine_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.yoshis_island_2_region, LocationName.yoshis_island_2_yellow_block_2,
 | |
|                         lambda state: state.has(ItemName.yellow_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_ghost_house_region, LocationName.vanilla_ghost_house_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_ghost_house_region, LocationName.vanilla_ghost_house_vine_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_ghost_house_region, LocationName.vanilla_ghost_house_powerup_block_2)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_ghost_house_region, LocationName.vanilla_ghost_house_multi_coin_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_ghost_house_region, LocationName.vanilla_ghost_house_blue_pow_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_1_region, LocationName.vanilla_secret_1_coin_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_1_region, LocationName.vanilla_secret_1_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_1_region, LocationName.vanilla_secret_1_multi_coin_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_1_region, LocationName.vanilla_secret_1_vine_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_1_region, LocationName.vanilla_secret_1_vine_block_2,
 | |
|                         lambda state: state.has(ItemName.mario_climb, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_1_region, LocationName.vanilla_secret_1_coin_block_2,
 | |
|                         lambda state: state.has(ItemName.mario_climb, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_1_region, LocationName.vanilla_secret_1_coin_block_3,
 | |
|                         lambda state: state.has(ItemName.mario_climb, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_secret_1_region, LocationName.vanilla_secret_1_powerup_block_2,
 | |
|                         lambda state: state.has(ItemName.mario_climb, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_3_region, LocationName.vanilla_dome_3_coin_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_3_region, LocationName.vanilla_dome_3_flying_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_3_region, LocationName.vanilla_dome_3_flying_block_2)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_3_region, LocationName.vanilla_dome_3_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_3_region, LocationName.vanilla_dome_3_flying_block_3)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_3_region, LocationName.vanilla_dome_3_invis_coin_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_3_region, LocationName.vanilla_dome_3_powerup_block_2)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_3_region, LocationName.vanilla_dome_3_multi_coin_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_3_region, LocationName.vanilla_dome_3_powerup_block_3)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_3_region, LocationName.vanilla_dome_3_yoshi_block_1,
 | |
|                         lambda state:( (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_3_region, LocationName.vanilla_dome_3_powerup_block_4)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_3_region, LocationName.vanilla_dome_3_pswitch_coin_block_1,
 | |
|                         lambda state: (state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3) and state.has(ItemName.p_switch, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_3_region, LocationName.vanilla_dome_3_pswitch_coin_block_2,
 | |
|                         lambda state: (state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3) and state.has(ItemName.p_switch, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_3_region, LocationName.vanilla_dome_3_pswitch_coin_block_3,
 | |
|                         lambda state: (state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3) and state.has(ItemName.p_switch, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_3_region, LocationName.vanilla_dome_3_pswitch_coin_block_4,
 | |
|                         lambda state: (state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3) and state.has(ItemName.p_switch, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_3_region, LocationName.vanilla_dome_3_pswitch_coin_block_5,
 | |
|                         lambda state: (state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3) and state.has(ItemName.p_switch, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_3_region, LocationName.vanilla_dome_3_pswitch_coin_block_6,
 | |
|                         lambda state: (state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3) and state.has(ItemName.p_switch, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_secret_2_region, LocationName.donut_secret_2_directional_coin_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_secret_2_region, LocationName.donut_secret_2_vine_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_secret_2_region, LocationName.donut_secret_2_star_block_1,
 | |
|                         lambda state:( (state.has(ItemName.mario_climb, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_secret_2_region, LocationName.donut_secret_2_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.donut_secret_2_region, LocationName.donut_secret_2_star_block_2)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.valley_of_bowser_4_region, LocationName.valley_of_bowser_4_yellow_block_1,
 | |
|                         lambda state: state.has(ItemName.yellow_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.valley_of_bowser_4_region, LocationName.valley_of_bowser_4_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.valley_of_bowser_4_region, LocationName.valley_of_bowser_4_vine_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.valley_of_bowser_4_region, LocationName.valley_of_bowser_4_yoshi_block_1,
 | |
|                         lambda state: state.has(ItemName.mario_climb, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.valley_of_bowser_4_region, LocationName.valley_of_bowser_4_life_block_1,
 | |
|                         lambda state: (state.has(ItemName.progressive_powerup, player, 1) and state.has(ItemName.mario_spin_jump, player) and state.has(ItemName.mario_climb, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.valley_of_bowser_4_region, LocationName.valley_of_bowser_4_powerup_block_2,
 | |
|                         lambda state: (state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.mario_climb, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.valley_castle_region, LocationName.valley_castle_yellow_block_1,
 | |
|                         lambda state: state.has(ItemName.yellow_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.valley_castle_region, LocationName.valley_castle_yellow_block_2,
 | |
|                         lambda state: state.has(ItemName.yellow_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.valley_castle_region, LocationName.valley_castle_green_block_1,
 | |
|                         lambda state: state.has(ItemName.green_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.valley_fortress_region, LocationName.valley_fortress_green_block_1,
 | |
|                         lambda state: state.has(ItemName.green_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.valley_fortress_region, LocationName.valley_fortress_yellow_block_1,
 | |
|                         lambda state: state.has(ItemName.yellow_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.valley_of_bowser_3_region, LocationName.valley_of_bowser_3_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.valley_of_bowser_3_region, LocationName.valley_of_bowser_3_powerup_block_2)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.valley_ghost_house_region, LocationName.valley_ghost_house_pswitch_coin_block_1,
 | |
|                         lambda state: state.has(ItemName.p_switch, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.valley_ghost_house_region, LocationName.valley_ghost_house_multi_coin_block_1,
 | |
|                         lambda state: state.has(ItemName.p_switch, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.valley_ghost_house_region, LocationName.valley_ghost_house_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.valley_ghost_house_region, LocationName.valley_ghost_house_directional_coin_block_1,
 | |
|                         lambda state: state.has(ItemName.p_switch, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.valley_of_bowser_2_region, LocationName.valley_of_bowser_2_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.valley_of_bowser_2_region, LocationName.valley_of_bowser_2_yellow_block_1,
 | |
|                         lambda state: state.has(ItemName.yellow_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.valley_of_bowser_2_region, LocationName.valley_of_bowser_2_powerup_block_2)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.valley_of_bowser_2_region, LocationName.valley_of_bowser_2_wings_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.valley_of_bowser_1_region, LocationName.valley_of_bowser_1_green_block_1,
 | |
|                         lambda state: state.has(ItemName.green_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.valley_of_bowser_1_region, LocationName.valley_of_bowser_1_invis_coin_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.valley_of_bowser_1_region, LocationName.valley_of_bowser_1_invis_coin_block_2)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.valley_of_bowser_1_region, LocationName.valley_of_bowser_1_invis_coin_block_3)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.valley_of_bowser_1_region, LocationName.valley_of_bowser_1_yellow_block_1,
 | |
|                         lambda state: (state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.valley_of_bowser_1_region, LocationName.valley_of_bowser_1_yellow_block_2,
 | |
|                         lambda state: (state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.valley_of_bowser_1_region, LocationName.valley_of_bowser_1_yellow_block_3,
 | |
|                         lambda state: (state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.valley_of_bowser_1_region, LocationName.valley_of_bowser_1_yellow_block_4,
 | |
|                         lambda state: (state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.valley_of_bowser_1_region, LocationName.valley_of_bowser_1_vine_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_secret_region, LocationName.chocolate_secret_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.chocolate_secret_region, LocationName.chocolate_secret_powerup_block_2,
 | |
|                         lambda state: state.has(ItemName.mario_run, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_2_region, LocationName.vanilla_dome_2_coin_block_1,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_2_region, LocationName.vanilla_dome_2_powerup_block_1,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_2_region, LocationName.vanilla_dome_2_coin_block_2,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_2_region, LocationName.vanilla_dome_2_coin_block_3,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_2_region, LocationName.vanilla_dome_2_vine_block_1,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_2_region, LocationName.vanilla_dome_2_invis_life_block_1,
 | |
|                         lambda state:( ((state.has(ItemName.mario_swim, player) and state.has(ItemName.mario_climb, player))) or  ((state.has(ItemName.mario_swim, player) and state.has(ItemName.yoshi_activate, player)))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_2_region, LocationName.vanilla_dome_2_coin_block_4,
 | |
|                         lambda state:( ((state.has(ItemName.mario_swim, player) and state.has(ItemName.mario_climb, player))) or  ((state.has(ItemName.mario_swim, player) and state.has(ItemName.yoshi_activate, player)))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_2_region, LocationName.vanilla_dome_2_coin_block_5,
 | |
|                         lambda state:( ((state.has(ItemName.mario_swim, player) and state.has(ItemName.mario_climb, player))) or  ((state.has(ItemName.mario_swim, player) and state.has(ItemName.yoshi_activate, player)))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_2_region, LocationName.vanilla_dome_2_powerup_block_2,
 | |
|                         lambda state:( ((state.has(ItemName.mario_swim, player) and state.has(ItemName.mario_climb, player))) or  ((state.has(ItemName.mario_swim, player) and state.has(ItemName.yoshi_activate, player)))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_2_region, LocationName.vanilla_dome_2_powerup_block_3,
 | |
|                         lambda state:( ((state.has(ItemName.mario_swim, player) and state.has(ItemName.mario_climb, player))) or  ((state.has(ItemName.mario_swim, player) and state.has(ItemName.yoshi_activate, player)))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_2_region, LocationName.vanilla_dome_2_powerup_block_4,
 | |
|                         lambda state:( ((state.has(ItemName.mario_swim, player) and state.has(ItemName.mario_climb, player))) or  ((state.has(ItemName.mario_swim, player) and state.has(ItemName.yoshi_activate, player)))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_2_region, LocationName.vanilla_dome_2_powerup_block_5,
 | |
|                         lambda state:( ((state.has(ItemName.mario_swim, player) and state.has(ItemName.mario_climb, player))) or  ((state.has(ItemName.mario_swim, player) and state.has(ItemName.yoshi_activate, player)))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_2_region, LocationName.vanilla_dome_2_multi_coin_block_1,
 | |
|                         lambda state:( ((state.has(ItemName.mario_swim, player) and state.has(ItemName.mario_climb, player))) or  ((state.has(ItemName.mario_swim, player) and state.has(ItemName.yoshi_activate, player)))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_2_region, LocationName.vanilla_dome_2_multi_coin_block_2,
 | |
|                         lambda state:( ((state.has(ItemName.mario_swim, player) and state.has(ItemName.mario_climb, player))) or  ((state.has(ItemName.mario_swim, player) and state.has(ItemName.yoshi_activate, player)))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_4_region, LocationName.vanilla_dome_4_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_4_region, LocationName.vanilla_dome_4_powerup_block_2)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_4_region, LocationName.vanilla_dome_4_coin_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_4_region, LocationName.vanilla_dome_4_coin_block_2)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_4_region, LocationName.vanilla_dome_4_coin_block_3)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_4_region, LocationName.vanilla_dome_4_life_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_4_region, LocationName.vanilla_dome_4_coin_block_4)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_4_region, LocationName.vanilla_dome_4_coin_block_5)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_4_region, LocationName.vanilla_dome_4_coin_block_6)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_4_region, LocationName.vanilla_dome_4_coin_block_7)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_4_region, LocationName.vanilla_dome_4_coin_block_8,
 | |
|                         lambda state: state.has(ItemName.mario_carry, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_1_region, LocationName.vanilla_dome_1_flying_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_1_region, LocationName.vanilla_dome_1_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_1_region, LocationName.vanilla_dome_1_powerup_block_2)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_1_region, LocationName.vanilla_dome_1_coin_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_1_region, LocationName.vanilla_dome_1_life_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_1_region, LocationName.vanilla_dome_1_powerup_block_3)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_1_region, LocationName.vanilla_dome_1_vine_block_1,
 | |
|                         lambda state:( (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.red_switch_palace, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_1_region, LocationName.vanilla_dome_1_star_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_1_region, LocationName.vanilla_dome_1_powerup_block_4,
 | |
|                         lambda state:( ((state.has(ItemName.mario_run, player) and state.has(ItemName.super_star_active, player))) or  ((state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 1)))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_1_region, LocationName.vanilla_dome_1_coin_block_2,
 | |
|                         lambda state:( ((state.has(ItemName.mario_run, player) and state.has(ItemName.super_star_active, player))) or  ((state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 1)))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_castle_region, LocationName.vanilla_dome_castle_life_block_1,
 | |
|                         lambda state:( (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.progressive_powerup, player, 1))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_castle_region, LocationName.vanilla_dome_castle_life_block_2,
 | |
|                         lambda state:( (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.progressive_powerup, player, 1))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_castle_region, LocationName.vanilla_dome_castle_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_castle_region, LocationName.vanilla_dome_castle_life_block_3,
 | |
|                         lambda state: state.has(ItemName.p_switch, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.vanilla_dome_castle_region, LocationName.vanilla_dome_castle_green_block_1,
 | |
|                         lambda state: state.has(ItemName.green_switch_palace, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_ghost_house_region, LocationName.forest_ghost_house_coin_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_ghost_house_region, LocationName.forest_ghost_house_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_ghost_house_region, LocationName.forest_ghost_house_flying_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_ghost_house_region, LocationName.forest_ghost_house_powerup_block_2)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_ghost_house_region, LocationName.forest_ghost_house_life_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_1_region, LocationName.forest_of_illusion_1_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_1_region, LocationName.forest_of_illusion_1_yoshi_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_1_region, LocationName.forest_of_illusion_1_powerup_block_2)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_1_region, LocationName.forest_of_illusion_1_key_block_1,
 | |
|                         lambda state: state.has(ItemName.p_balloon, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_1_region, LocationName.forest_of_illusion_1_life_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_4_region, LocationName.forest_of_illusion_4_multi_coin_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_4_region, LocationName.forest_of_illusion_4_coin_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_4_region, LocationName.forest_of_illusion_4_coin_block_2)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_4_region, LocationName.forest_of_illusion_4_coin_block_3)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_4_region, LocationName.forest_of_illusion_4_coin_block_4)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_4_region, LocationName.forest_of_illusion_4_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_4_region, LocationName.forest_of_illusion_4_coin_block_5)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_4_region, LocationName.forest_of_illusion_4_coin_block_6)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_4_region, LocationName.forest_of_illusion_4_coin_block_7)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_4_region, LocationName.forest_of_illusion_4_powerup_block_2)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_4_region, LocationName.forest_of_illusion_4_coin_block_8)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_4_region, LocationName.forest_of_illusion_4_coin_block_9)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_4_region, LocationName.forest_of_illusion_4_coin_block_10)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_2_region, LocationName.forest_of_illusion_2_green_block_1,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.mario_swim, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_2_region, LocationName.forest_of_illusion_2_powerup_block_1,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_2_region, LocationName.forest_of_illusion_2_invis_coin_block_1,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_2_region, LocationName.forest_of_illusion_2_invis_coin_block_2,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_2_region, LocationName.forest_of_illusion_2_invis_life_block_1,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_2_region, LocationName.forest_of_illusion_2_invis_coin_block_3,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_2_region, LocationName.forest_of_illusion_2_yellow_block_1,
 | |
|                         lambda state: (state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.mario_swim, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_secret_region, LocationName.forest_secret_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_secret_region, LocationName.forest_secret_powerup_block_2)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_secret_region, LocationName.forest_secret_life_block_1,
 | |
|                         lambda state:( (state.has(ItemName.blue_switch_palace, player)) or  (state.has(ItemName.mario_carry, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_region, LocationName.forest_of_illusion_3_yoshi_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_region, LocationName.forest_of_illusion_3_coin_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_region, LocationName.forest_of_illusion_3_multi_coin_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_region, LocationName.forest_of_illusion_3_coin_block_2,
 | |
|                         lambda state:( (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_region, LocationName.forest_of_illusion_3_multi_coin_block_2,
 | |
|                         lambda state:( (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_region, LocationName.forest_of_illusion_3_coin_block_3,
 | |
|                         lambda state:( (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_region, LocationName.forest_of_illusion_3_coin_block_4,
 | |
|                         lambda state:( (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_region, LocationName.forest_of_illusion_3_coin_block_5,
 | |
|                         lambda state:( (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_region, LocationName.forest_of_illusion_3_coin_block_6,
 | |
|                         lambda state:( (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_region, LocationName.forest_of_illusion_3_coin_block_7,
 | |
|                         lambda state:( (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_region, LocationName.forest_of_illusion_3_coin_block_8,
 | |
|                         lambda state:( (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_region, LocationName.forest_of_illusion_3_coin_block_9,
 | |
|                         lambda state:( (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_region, LocationName.forest_of_illusion_3_coin_block_10,
 | |
|                         lambda state:( (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_region, LocationName.forest_of_illusion_3_coin_block_11,
 | |
|                         lambda state:( (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_region, LocationName.forest_of_illusion_3_coin_block_12,
 | |
|                         lambda state:( (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_region, LocationName.forest_of_illusion_3_coin_block_13,
 | |
|                         lambda state:( (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_region, LocationName.forest_of_illusion_3_coin_block_14,
 | |
|                         lambda state:( (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_region, LocationName.forest_of_illusion_3_coin_block_15,
 | |
|                         lambda state:( (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_region, LocationName.forest_of_illusion_3_coin_block_16,
 | |
|                         lambda state:( (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_region, LocationName.forest_of_illusion_3_coin_block_17,
 | |
|                         lambda state:( (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_region, LocationName.forest_of_illusion_3_coin_block_18,
 | |
|                         lambda state:( (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_region, LocationName.forest_of_illusion_3_coin_block_19,
 | |
|                         lambda state:( (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_region, LocationName.forest_of_illusion_3_coin_block_20,
 | |
|                         lambda state:( (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_region, LocationName.forest_of_illusion_3_coin_block_21,
 | |
|                         lambda state:( (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_region, LocationName.forest_of_illusion_3_coin_block_22,
 | |
|                         lambda state:( (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_region, LocationName.forest_of_illusion_3_coin_block_23,
 | |
|                         lambda state:( (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.forest_of_illusion_3_region, LocationName.forest_of_illusion_3_coin_block_24,
 | |
|                         lambda state:( (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_8_region, LocationName.special_zone_8_yoshi_block_1,
 | |
|                         lambda state:( (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_8_region, LocationName.special_zone_8_coin_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_8_region, LocationName.special_zone_8_coin_block_2)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_8_region, LocationName.special_zone_8_coin_block_3)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_8_region, LocationName.special_zone_8_coin_block_4)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_8_region, LocationName.special_zone_8_coin_block_5)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_8_region, LocationName.special_zone_8_blue_pow_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_8_region, LocationName.special_zone_8_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_8_region, LocationName.special_zone_8_star_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_8_region, LocationName.special_zone_8_coin_block_6,
 | |
|                         lambda state:( ((state.has(ItemName.progressive_powerup, player, 1) and state.has(ItemName.mario_spin_jump, player))) or  (state.has(ItemName.progressive_powerup, player, 3)) or  (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_8_region, LocationName.special_zone_8_coin_block_7,
 | |
|                         lambda state:( ((state.has(ItemName.progressive_powerup, player, 1) and state.has(ItemName.mario_spin_jump, player))) or  (state.has(ItemName.progressive_powerup, player, 3)) or  (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_8_region, LocationName.special_zone_8_coin_block_8,
 | |
|                         lambda state:( ((state.has(ItemName.progressive_powerup, player, 1) and state.has(ItemName.mario_spin_jump, player))) or  (state.has(ItemName.progressive_powerup, player, 3)) or  (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_8_region, LocationName.special_zone_8_coin_block_9,
 | |
|                         lambda state:( ((state.has(ItemName.progressive_powerup, player, 1) and state.has(ItemName.mario_spin_jump, player))) or  (state.has(ItemName.progressive_powerup, player, 3)) or  (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_8_region, LocationName.special_zone_8_coin_block_10,
 | |
|                         lambda state:( ((state.has(ItemName.progressive_powerup, player, 1) and state.has(ItemName.mario_spin_jump, player))) or  (state.has(ItemName.progressive_powerup, player, 3)) or  (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_8_region, LocationName.special_zone_8_coin_block_11,
 | |
|                         lambda state:( ((state.has(ItemName.progressive_powerup, player, 1) and state.has(ItemName.mario_spin_jump, player))) or  (state.has(ItemName.progressive_powerup, player, 3)) or  (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_8_region, LocationName.special_zone_8_coin_block_12,
 | |
|                         lambda state:( ((state.has(ItemName.progressive_powerup, player, 1) and state.has(ItemName.mario_spin_jump, player))) or  (state.has(ItemName.progressive_powerup, player, 3)) or  (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_8_region, LocationName.special_zone_8_coin_block_13,
 | |
|                         lambda state:( ((state.has(ItemName.progressive_powerup, player, 1) and state.has(ItemName.mario_spin_jump, player))) or  (state.has(ItemName.progressive_powerup, player, 3)) or  (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_8_region, LocationName.special_zone_8_coin_block_14,
 | |
|                         lambda state:( ((state.has(ItemName.progressive_powerup, player, 1) and state.has(ItemName.mario_spin_jump, player))) or  (state.has(ItemName.progressive_powerup, player, 3)) or  (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_8_region, LocationName.special_zone_8_coin_block_15,
 | |
|                         lambda state:( ((state.has(ItemName.progressive_powerup, player, 1) and state.has(ItemName.mario_spin_jump, player))) or  (state.has(ItemName.progressive_powerup, player, 3)) or  (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_8_region, LocationName.special_zone_8_coin_block_16,
 | |
|                         lambda state:( ((state.has(ItemName.progressive_powerup, player, 1) and state.has(ItemName.mario_spin_jump, player))) or  (state.has(ItemName.progressive_powerup, player, 3)) or  (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_8_region, LocationName.special_zone_8_coin_block_17,
 | |
|                         lambda state:( ((state.has(ItemName.progressive_powerup, player, 1) and state.has(ItemName.mario_spin_jump, player))) or  (state.has(ItemName.progressive_powerup, player, 3)) or  (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_8_region, LocationName.special_zone_8_coin_block_18,
 | |
|                         lambda state:( ((state.has(ItemName.progressive_powerup, player, 1) and state.has(ItemName.mario_spin_jump, player))) or  (state.has(ItemName.progressive_powerup, player, 3)) or  (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_8_region, LocationName.special_zone_8_multi_coin_block_1,
 | |
|                         lambda state:( ((state.has(ItemName.progressive_powerup, player, 1) and state.has(ItemName.mario_spin_jump, player))) or  (state.has(ItemName.progressive_powerup, player, 3)) or  (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_8_region, LocationName.special_zone_8_coin_block_19,
 | |
|                         lambda state:( ((state.has(ItemName.progressive_powerup, player, 1) and state.has(ItemName.mario_spin_jump, player))) or  (state.has(ItemName.progressive_powerup, player, 3)) or  (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_8_region, LocationName.special_zone_8_coin_block_20,
 | |
|                         lambda state:( ((state.has(ItemName.progressive_powerup, player, 1) and state.has(ItemName.mario_spin_jump, player))) or  (state.has(ItemName.progressive_powerup, player, 3)) or  (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_8_region, LocationName.special_zone_8_coin_block_21,
 | |
|                         lambda state:( ((state.has(ItemName.progressive_powerup, player, 1) and state.has(ItemName.mario_spin_jump, player))) or  (state.has(ItemName.progressive_powerup, player, 3)) or  (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_8_region, LocationName.special_zone_8_coin_block_22,
 | |
|                         lambda state:( ((state.has(ItemName.progressive_powerup, player, 1) and state.has(ItemName.mario_spin_jump, player))) or  (state.has(ItemName.progressive_powerup, player, 3)) or  (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_8_region, LocationName.special_zone_8_coin_block_23,
 | |
|                         lambda state:( ((state.has(ItemName.progressive_powerup, player, 1) and state.has(ItemName.mario_spin_jump, player))) or  (state.has(ItemName.progressive_powerup, player, 3)) or  (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_8_region, LocationName.special_zone_8_powerup_block_2,
 | |
|                         lambda state:( ((state.has(ItemName.progressive_powerup, player, 1) and state.has(ItemName.mario_spin_jump, player))) or  (state.has(ItemName.progressive_powerup, player, 3)) or  (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_8_region, LocationName.special_zone_8_flying_block_1,
 | |
|                         lambda state:( ((state.has(ItemName.progressive_powerup, player, 1) and state.has(ItemName.mario_spin_jump, player))) or  (state.has(ItemName.progressive_powerup, player, 3)) or  (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.yoshi_activate, player))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_7_region, LocationName.special_zone_7_powerup_block_1,
 | |
|                         lambda state: state.has(ItemName.progressive_powerup, player, 1))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_7_region, LocationName.special_zone_7_yoshi_block_1,
 | |
|                         lambda state: state.has(ItemName.progressive_powerup, player, 1))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_7_region, LocationName.special_zone_7_coin_block_1,
 | |
|                         lambda state: state.has(ItemName.progressive_powerup, player, 1))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_7_region, LocationName.special_zone_7_powerup_block_2,
 | |
|                         lambda state: state.has(ItemName.progressive_powerup, player, 1))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_7_region, LocationName.special_zone_7_coin_block_2,
 | |
|                         lambda state: state.has(ItemName.progressive_powerup, player, 1))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_powerup_block_1,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_coin_block_1,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_coin_block_2,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_yoshi_block_1,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_life_block_1,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_multi_coin_block_1,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_coin_block_3,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_coin_block_4,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_coin_block_5,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_coin_block_6,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_coin_block_7,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_coin_block_8,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_coin_block_9,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_coin_block_10,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_coin_block_11,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_coin_block_12,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_coin_block_13,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_coin_block_14,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_coin_block_15,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_coin_block_16,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_coin_block_17,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_coin_block_18,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_coin_block_19,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_coin_block_20,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_coin_block_21,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_coin_block_22,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_coin_block_23,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_coin_block_24,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_coin_block_25,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_coin_block_26,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_coin_block_27,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_coin_block_28,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_powerup_block_2,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_coin_block_29,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_coin_block_30,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_coin_block_31,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_coin_block_32,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_6_region, LocationName.special_zone_6_coin_block_33,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_5_region, LocationName.special_zone_5_yoshi_block_1,
 | |
|                         lambda state: state.has(ItemName.progressive_powerup, player, 1))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_1_region, LocationName.special_zone_1_vine_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_1_region, LocationName.special_zone_1_vine_block_2)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_1_region, LocationName.special_zone_1_vine_block_3)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_1_region, LocationName.special_zone_1_vine_block_4)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_1_region, LocationName.special_zone_1_life_block_1,
 | |
|                         lambda state: state.has(ItemName.mario_climb, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_1_region, LocationName.special_zone_1_vine_block_5,
 | |
|                         lambda state: state.has(ItemName.mario_climb, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_1_region, LocationName.special_zone_1_blue_pow_block_1,
 | |
|                         lambda state: state.has(ItemName.mario_climb, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_1_region, LocationName.special_zone_1_vine_block_6,
 | |
|                         lambda state: state.has(ItemName.mario_climb, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_1_region, LocationName.special_zone_1_powerup_block_1,
 | |
|                         lambda state: state.has(ItemName.mario_climb, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_1_region, LocationName.special_zone_1_pswitch_coin_block_1,
 | |
|                         lambda state: (state.has(ItemName.mario_climb, player) and state.has(ItemName.p_switch, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_1_region, LocationName.special_zone_1_pswitch_coin_block_2,
 | |
|                         lambda state: (state.has(ItemName.mario_climb, player) and state.has(ItemName.p_switch, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_1_region, LocationName.special_zone_1_pswitch_coin_block_3,
 | |
|                         lambda state: (state.has(ItemName.mario_climb, player) and state.has(ItemName.p_switch, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_1_region, LocationName.special_zone_1_pswitch_coin_block_4,
 | |
|                         lambda state: (state.has(ItemName.mario_climb, player) and state.has(ItemName.p_switch, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_1_region, LocationName.special_zone_1_pswitch_coin_block_5,
 | |
|                         lambda state: (state.has(ItemName.mario_climb, player) and state.has(ItemName.p_switch, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_1_region, LocationName.special_zone_1_pswitch_coin_block_6,
 | |
|                         lambda state: (state.has(ItemName.mario_climb, player) and state.has(ItemName.p_switch, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_1_region, LocationName.special_zone_1_pswitch_coin_block_7,
 | |
|                         lambda state: (state.has(ItemName.mario_climb, player) and state.has(ItemName.p_switch, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_1_region, LocationName.special_zone_1_pswitch_coin_block_8,
 | |
|                         lambda state: (state.has(ItemName.mario_climb, player) and state.has(ItemName.p_switch, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_1_region, LocationName.special_zone_1_pswitch_coin_block_9,
 | |
|                         lambda state: (state.has(ItemName.mario_climb, player) and state.has(ItemName.p_switch, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_1_region, LocationName.special_zone_1_pswitch_coin_block_10,
 | |
|                         lambda state:( ((state.has(ItemName.mario_climb, player) and state.has(ItemName.p_switch, player) and state.has(ItemName.progressive_powerup, player, 3))) or  ((state.has(ItemName.mario_climb, player) and state.has(ItemName.p_switch, player) and state.has(ItemName.mario_carry, player)))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_1_region, LocationName.special_zone_1_pswitch_coin_block_11,
 | |
|                         lambda state:( ((state.has(ItemName.mario_climb, player) and state.has(ItemName.p_switch, player) and state.has(ItemName.progressive_powerup, player, 3))) or  ((state.has(ItemName.mario_climb, player) and state.has(ItemName.p_switch, player) and state.has(ItemName.mario_carry, player)))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_1_region, LocationName.special_zone_1_pswitch_coin_block_12,
 | |
|                         lambda state:( ((state.has(ItemName.mario_climb, player) and state.has(ItemName.p_switch, player) and state.has(ItemName.progressive_powerup, player, 3))) or  ((state.has(ItemName.mario_climb, player) and state.has(ItemName.p_switch, player) and state.has(ItemName.mario_carry, player)))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_1_region, LocationName.special_zone_1_pswitch_coin_block_13,
 | |
|                         lambda state:( ((state.has(ItemName.mario_climb, player) and state.has(ItemName.p_switch, player) and state.has(ItemName.progressive_powerup, player, 3))) or  ((state.has(ItemName.mario_climb, player) and state.has(ItemName.p_switch, player) and state.has(ItemName.mario_carry, player)))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_2_region, LocationName.special_zone_2_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_2_region, LocationName.special_zone_2_coin_block_1,
 | |
|                         lambda state: state.has(ItemName.p_balloon, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_2_region, LocationName.special_zone_2_coin_block_2,
 | |
|                         lambda state: state.has(ItemName.p_balloon, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_2_region, LocationName.special_zone_2_powerup_block_2,
 | |
|                         lambda state: state.has(ItemName.p_balloon, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_2_region, LocationName.special_zone_2_coin_block_3,
 | |
|                         lambda state: state.has(ItemName.p_balloon, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_2_region, LocationName.special_zone_2_coin_block_4,
 | |
|                         lambda state: state.has(ItemName.p_balloon, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_2_region, LocationName.special_zone_2_powerup_block_3,
 | |
|                         lambda state: state.has(ItemName.p_balloon, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_2_region, LocationName.special_zone_2_multi_coin_block_1,
 | |
|                         lambda state: state.has(ItemName.p_balloon, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_2_region, LocationName.special_zone_2_coin_block_5,
 | |
|                         lambda state: state.has(ItemName.p_balloon, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_2_region, LocationName.special_zone_2_coin_block_6,
 | |
|                         lambda state: state.has(ItemName.p_balloon, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_3_region, LocationName.special_zone_3_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_3_region, LocationName.special_zone_3_yoshi_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_3_region, LocationName.special_zone_3_wings_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_4_region, LocationName.special_zone_4_powerup_block_1,
 | |
|                         lambda state: state.has(ItemName.progressive_powerup, player, 2))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.special_zone_4_region, LocationName.special_zone_4_star_block_1,
 | |
|                         lambda state:( ((state.has(ItemName.progressive_powerup, player, 2) and state.has(ItemName.mario_carry, player))) or  ((state.has(ItemName.progressive_powerup, player, 2) and state.has(ItemName.p_switch, player)))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_2_region, LocationName.star_road_2_star_block_1,
 | |
|                         lambda state: state.has(ItemName.mario_swim, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_3_region, LocationName.star_road_3_key_block_1,
 | |
|                         lambda state:( (state.has(ItemName.mario_carry, player)) or  (state.has(ItemName.progressive_powerup, player, 2))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_4_region, LocationName.star_road_4_powerup_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_4_region, LocationName.star_road_4_green_block_1,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_4_region, LocationName.star_road_4_green_block_2,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_4_region, LocationName.star_road_4_green_block_3,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_4_region, LocationName.star_road_4_green_block_4,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_4_region, LocationName.star_road_4_green_block_5,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_4_region, LocationName.star_road_4_green_block_6,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_4_region, LocationName.star_road_4_green_block_7,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_4_region, LocationName.star_road_4_key_block_1,
 | |
|                         lambda state:( ((state.has(ItemName.mario_carry, player) and state.has(ItemName.yoshi_activate, player))) or  ((state.has(ItemName.green_switch_palace, player) and state.has(ItemName.red_switch_palace, player) and state.has(ItemName.mario_carry, player)))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_directional_coin_block_1)
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_life_block_1,
 | |
|                         lambda state: state.has(ItemName.p_switch, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_vine_block_1,
 | |
|                         lambda state: state.has(ItemName.p_switch, player))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_yellow_block_1,
 | |
|                         lambda state:( ((state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.p_switch, player) and state.has(ItemName.mario_climb, player) and state.has(ItemName.mario_carry, player))) or  ((state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player)))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_yellow_block_2,
 | |
|                         lambda state: (state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_yellow_block_3,
 | |
|                         lambda state: (state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_yellow_block_4,
 | |
|                         lambda state: (state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_yellow_block_5,
 | |
|                         lambda state: (state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_yellow_block_6,
 | |
|                         lambda state: (state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_yellow_block_7,
 | |
|                         lambda state: (state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_yellow_block_8,
 | |
|                         lambda state: (state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_yellow_block_9,
 | |
|                         lambda state: (state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_yellow_block_10,
 | |
|                         lambda state: (state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_yellow_block_11,
 | |
|                         lambda state: (state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_yellow_block_12,
 | |
|                         lambda state: (state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_yellow_block_13,
 | |
|                         lambda state: (state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_yellow_block_14,
 | |
|                         lambda state: (state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_yellow_block_15,
 | |
|                         lambda state: (state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_yellow_block_16,
 | |
|                         lambda state: (state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_yellow_block_17,
 | |
|                         lambda state: (state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_yellow_block_18,
 | |
|                         lambda state: (state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_yellow_block_19,
 | |
|                         lambda state:( ((state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.green_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player))) or  ((state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.green_switch_palace, player) and state.has(ItemName.p_switch, player) and state.has(ItemName.mario_climb, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.progressive_powerup, player, 3)))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_yellow_block_20,
 | |
|                         lambda state:( ((state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.green_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player))) or  ((state.has(ItemName.yellow_switch_palace, player) and state.has(ItemName.green_switch_palace, player) and state.has(ItemName.p_switch, player) and state.has(ItemName.mario_climb, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.progressive_powerup, player, 3)))))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_green_block_1,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_green_block_2,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_green_block_3,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_green_block_4,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_green_block_5,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_green_block_6,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_green_block_7,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_green_block_8,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_green_block_9,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_green_block_10,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_green_block_11,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_green_block_12,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_green_block_13,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_green_block_14,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_green_block_15,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_green_block_16,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_green_block_17,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_green_block_18,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_green_block_19,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player)))
 | |
|         add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_green_block_20,
 | |
|                         lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player)))
 | |
| 
 | |
| def connect_regions(world: World, level_to_tile_dict):
 | |
|     multiworld: MultiWorld = world.multiworld
 | |
|     player: int = world.player
 | |
| 
 | |
|     names: typing.Dict[str, int] = {}
 | |
| 
 | |
|     connect(world, "Menu", LocationName.yoshis_island_region)
 | |
|     connect(world, LocationName.yoshis_island_region, LocationName.yoshis_house_tile)
 | |
|     connect(world, LocationName.yoshis_island_region, LocationName.yoshis_island_1_tile)
 | |
|     connect(world, LocationName.yoshis_island_region, LocationName.yoshis_island_2_tile)
 | |
| 
 | |
|     # Connect regions within levels using rules
 | |
|     connect(world, LocationName.yoshis_island_1_region, LocationName.yoshis_island_1_exit_1)
 | |
|     connect(world, LocationName.yoshis_island_2_region, LocationName.yoshis_island_2_exit_1)
 | |
|     connect(world, LocationName.yoshis_island_3_region, LocationName.yoshis_island_3_exit_1)
 | |
|     connect(world, LocationName.yoshis_island_4_region, LocationName.yoshis_island_4_exit_1)
 | |
|     connect(world, LocationName.yoshis_island_castle_region, LocationName.yoshis_island_castle,
 | |
|             lambda state: (state.has(ItemName.mario_climb, player)))
 | |
| 
 | |
|     connect(world, LocationName.donut_plains_1_region, LocationName.donut_plains_1_exit_1)
 | |
|     connect(world, LocationName.donut_plains_1_region, LocationName.donut_plains_1_exit_2,
 | |
|             lambda state: (state.has(ItemName.mario_carry, player) and
 | |
|                            (state.has(ItemName.yoshi_activate, player) or
 | |
|                            state.has(ItemName.green_switch_palace, player) or
 | |
|                            (state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3)))))
 | |
|     connect(world, LocationName.donut_plains_2_region, LocationName.donut_plains_2_exit_1)
 | |
|     connect(world, LocationName.donut_plains_2_region, LocationName.donut_plains_2_exit_2,
 | |
|             lambda state: (state.has(ItemName.mario_carry, player) and
 | |
|                            (state.has(ItemName.yoshi_activate, player) or
 | |
|                            (state.has(ItemName.mario_spin_jump, player) and state.has(ItemName.mario_climb, player) and state.has(ItemName.progressive_powerup, player, 1)))))
 | |
|     connect(world, LocationName.donut_secret_1_region, LocationName.donut_secret_1_exit_1,
 | |
|             lambda state: state.has(ItemName.mario_swim, player))
 | |
|     connect(world, LocationName.donut_secret_1_region, LocationName.donut_secret_1_exit_2,
 | |
|             lambda state: (state.has(ItemName.mario_carry, player) and
 | |
|                            state.has(ItemName.mario_swim, player) and
 | |
|                            state.has(ItemName.p_switch, player)))
 | |
|     connect(world, LocationName.donut_ghost_house_region, LocationName.donut_ghost_house_exit_1,
 | |
|             lambda state: (state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|     connect(world, LocationName.donut_ghost_house_region, LocationName.donut_ghost_house_exit_2,
 | |
|             lambda state: (state.has(ItemName.mario_climb, player) or
 | |
|                            (state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3))))
 | |
|     connect(world, LocationName.donut_secret_house_region, LocationName.donut_secret_house_exit_1,
 | |
|             lambda state: state.has(ItemName.p_switch, player))
 | |
|     connect(world, LocationName.donut_secret_house_region, LocationName.donut_secret_house_exit_2,
 | |
|             lambda state: (state.has(ItemName.p_switch, player) and state.has(ItemName.mario_carry, player) and
 | |
|                            (state.has(ItemName.mario_climb, player) or
 | |
|                             (state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3)))))
 | |
|     connect(world, LocationName.donut_plains_3_region, LocationName.donut_plains_3_exit_1)
 | |
|     connect(world, LocationName.donut_plains_4_region, LocationName.donut_plains_4_exit_1)
 | |
|     connect(world, LocationName.donut_secret_2_region, LocationName.donut_secret_2_exit_1)
 | |
|     connect(world, LocationName.donut_plains_castle_region, LocationName.donut_plains_castle)
 | |
|     
 | |
|     connect(world, LocationName.vanilla_dome_1_region, LocationName.vanilla_dome_1_exit_1,
 | |
|             lambda state: (state.has(ItemName.mario_run, player) and
 | |
|                            (state.has(ItemName.super_star_active, player) or
 | |
|                             state.has(ItemName.progressive_powerup, player, 1))))
 | |
|     connect(world, LocationName.vanilla_dome_1_region, LocationName.vanilla_dome_1_exit_2,
 | |
|             lambda state: (state.has(ItemName.mario_carry, player) and
 | |
|                            ((state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_climb, player)) or
 | |
|                             (state.has(ItemName.yoshi_activate, player) and state.has(ItemName.red_switch_palace, player)) or
 | |
|                             (state.has(ItemName.red_switch_palace, player) and state.has(ItemName.mario_climb, player)))))
 | |
|     connect(world, LocationName.vanilla_dome_2_region, LocationName.vanilla_dome_2_exit_1,
 | |
|             lambda state: (state.has(ItemName.mario_swim, player) and
 | |
|                            (state.has(ItemName.mario_climb, player) or state.has(ItemName.yoshi_activate, player))))
 | |
|     connect(world, LocationName.vanilla_dome_2_region, LocationName.vanilla_dome_2_exit_2,
 | |
|             lambda state: (state.has(ItemName.mario_swim, player) and
 | |
|                            state.has(ItemName.p_switch, player) and
 | |
|                            state.has(ItemName.mario_carry, player) and
 | |
|                            (state.has(ItemName.mario_climb, player) or state.has(ItemName.yoshi_activate, player))))
 | |
|     connect(world, LocationName.vanilla_secret_1_region, LocationName.vanilla_secret_1_exit_1,
 | |
|             lambda state: state.has(ItemName.mario_climb, player))
 | |
|     connect(world, LocationName.vanilla_secret_1_region, LocationName.vanilla_secret_1_exit_2,
 | |
|             lambda state: (state.has(ItemName.mario_climb, player) and
 | |
|                            (state.has(ItemName.mario_carry, player) and state.has(ItemName.blue_switch_palace, player))))
 | |
|     connect(world, LocationName.vanilla_ghost_house_region, LocationName.vanilla_ghost_house_exit_1,
 | |
|             lambda state: state.has(ItemName.p_switch, player))
 | |
|     connect(world, LocationName.vanilla_dome_3_region, LocationName.vanilla_dome_3_exit_1)
 | |
|     connect(world, LocationName.vanilla_dome_4_region, LocationName.vanilla_dome_4_exit_1)
 | |
|     connect(world, LocationName.vanilla_secret_2_region, LocationName.vanilla_secret_2_exit_1)
 | |
|     connect(world, LocationName.vanilla_secret_3_region, LocationName.vanilla_secret_3_exit_1,
 | |
|             lambda state: state.has(ItemName.mario_swim, player))
 | |
|     connect(world, LocationName.vanilla_fortress_region, LocationName.vanilla_fortress,
 | |
|             lambda state: state.has(ItemName.mario_swim, player))
 | |
|     connect(world, LocationName.vanilla_dome_castle_region, LocationName.vanilla_dome_castle)
 | |
|     
 | |
|     connect(world, LocationName.butter_bridge_1_region, LocationName.butter_bridge_1_exit_1)
 | |
|     connect(world, LocationName.butter_bridge_2_region, LocationName.butter_bridge_2_exit_1)
 | |
|     connect(world, LocationName.cheese_bridge_region, LocationName.cheese_bridge_exit_1,
 | |
|             lambda state: state.has(ItemName.mario_climb, player))
 | |
|     connect(world, LocationName.cheese_bridge_region, LocationName.cheese_bridge_exit_2,
 | |
|             lambda state: (state.has(ItemName.mario_run, player) and
 | |
|                            (state.has(ItemName.progressive_powerup, player, 3) or
 | |
|                            state.has(ItemName.yoshi_activate, player))))
 | |
|     connect(world, LocationName.soda_lake_region, LocationName.soda_lake_exit_1,
 | |
|             lambda state: state.has(ItemName.mario_swim, player))
 | |
|     connect(world, LocationName.cookie_mountain_region, LocationName.cookie_mountain_exit_1)
 | |
|     connect(world, LocationName.twin_bridges_castle_region, LocationName.twin_bridges_castle,
 | |
|             lambda state: (state.has(ItemName.mario_run, player) and
 | |
|                            state.has(ItemName.mario_climb, player)))
 | |
|                            
 | |
|     connect(world, LocationName.forest_of_illusion_1_region, LocationName.forest_of_illusion_1_exit_1)
 | |
|     connect(world, LocationName.forest_of_illusion_1_region, LocationName.forest_of_illusion_1_exit_2,
 | |
|             lambda state: (state.has(ItemName.mario_carry, player) and
 | |
|                            state.has(ItemName.p_balloon, player)))
 | |
|     connect(world, LocationName.forest_of_illusion_2_region, LocationName.forest_of_illusion_2_exit_1,
 | |
|             lambda state: state.has(ItemName.mario_swim, player))
 | |
|     connect(world, LocationName.forest_of_illusion_2_region, LocationName.forest_of_illusion_2_exit_2,
 | |
|             lambda state: (state.has(ItemName.mario_swim, player) and
 | |
|                            state.has(ItemName.mario_carry, player)))
 | |
|     connect(world, LocationName.forest_of_illusion_3_region, LocationName.forest_of_illusion_3_exit_1,
 | |
|             lambda state: (state.has(ItemName.mario_carry, player) or
 | |
|                            state.has(ItemName.yoshi_activate, player)))
 | |
|     connect(world, LocationName.forest_of_illusion_3_region, LocationName.forest_of_illusion_3_exit_2,
 | |
|             lambda state: (state.has(ItemName.mario_spin_jump, player) and
 | |
|                            state.has(ItemName.mario_carry, player) and
 | |
|                            state.has(ItemName.progressive_powerup, player, 1)))
 | |
|     connect(world, LocationName.forest_of_illusion_4_region, LocationName.forest_of_illusion_4_exit_1)
 | |
|     connect(world, LocationName.forest_of_illusion_4_region, LocationName.forest_of_illusion_4_exit_2,
 | |
|             lambda state: state.has(ItemName.mario_carry, player))
 | |
|     connect(world, LocationName.forest_ghost_house_region, LocationName.forest_ghost_house_exit_1,
 | |
|             lambda state: state.has(ItemName.p_switch, player))
 | |
|     connect(world, LocationName.forest_ghost_house_region, LocationName.forest_ghost_house_exit_2,
 | |
|             lambda state: state.has(ItemName.p_switch, player))
 | |
|     connect(world, LocationName.forest_secret_region, LocationName.forest_secret_exit_1)
 | |
|     connect(world, LocationName.forest_fortress_region, LocationName.forest_fortress)
 | |
|     connect(world, LocationName.forest_castle_region, LocationName.forest_castle)
 | |
|     
 | |
|     connect(world, LocationName.chocolate_island_1_region, LocationName.chocolate_island_1_exit_1,
 | |
|             lambda state: state.has(ItemName.p_switch, player))
 | |
|     connect(world, LocationName.chocolate_island_2_region, LocationName.chocolate_island_2_exit_1)
 | |
|     connect(world, LocationName.chocolate_island_2_region, LocationName.chocolate_island_2_exit_2,
 | |
|             lambda state: state.has(ItemName.mario_carry, player))
 | |
|     connect(world, LocationName.chocolate_island_3_region, LocationName.chocolate_island_3_exit_1,
 | |
|             lambda state: (state.has(ItemName.mario_climb, player) or
 | |
|                            (state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3))))
 | |
|     connect(world, LocationName.chocolate_island_3_region, LocationName.chocolate_island_3_exit_2,
 | |
|             lambda state: (state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3)))
 | |
|     connect(world, LocationName.chocolate_island_4_region, LocationName.chocolate_island_4_exit_1)
 | |
|     connect(world, LocationName.chocolate_island_5_region, LocationName.chocolate_island_5_exit_1)
 | |
|     connect(world, LocationName.chocolate_ghost_house_region, LocationName.chocolate_ghost_house_exit_1)
 | |
|     connect(world, LocationName.chocolate_fortress_region, LocationName.chocolate_fortress)
 | |
|     connect(world, LocationName.chocolate_secret_region, LocationName.chocolate_secret_exit_1,
 | |
|             lambda state: state.has(ItemName.mario_run, player))
 | |
|     connect(world, LocationName.chocolate_castle_region, LocationName.chocolate_castle,
 | |
|             lambda state: (state.has(ItemName.progressive_powerup, player, 1)))
 | |
|             
 | |
|     connect(world, LocationName.sunken_ghost_ship_region, LocationName.sunken_ghost_ship,
 | |
|             lambda state: state.has(ItemName.mario_swim, player))
 | |
|     connect(world, LocationName.valley_of_bowser_1_region, LocationName.valley_of_bowser_1_exit_1)
 | |
|     connect(world, LocationName.valley_of_bowser_2_region, LocationName.valley_of_bowser_2_exit_1)
 | |
|     connect(world, LocationName.valley_of_bowser_2_region, LocationName.valley_of_bowser_2_exit_2,
 | |
|             lambda state: state.has(ItemName.mario_carry, player))
 | |
|     connect(world, LocationName.valley_of_bowser_3_region, LocationName.valley_of_bowser_3_exit_1)
 | |
|     connect(world, LocationName.valley_of_bowser_4_region, LocationName.valley_of_bowser_4_exit_1,
 | |
|             lambda state: state.has(ItemName.mario_climb, player))
 | |
|     connect(world, LocationName.valley_of_bowser_4_region, LocationName.valley_of_bowser_4_exit_2,
 | |
|             lambda state: (state.has(ItemName.mario_climb, player) and
 | |
|                            state.has(ItemName.mario_carry, player) and
 | |
|                            state.has(ItemName.yoshi_activate, player)))
 | |
|     connect(world, LocationName.valley_ghost_house_region, LocationName.valley_ghost_house_exit_1,
 | |
|             lambda state: state.has(ItemName.p_switch, player))
 | |
|     connect(world, LocationName.valley_ghost_house_region, LocationName.valley_ghost_house_exit_2,
 | |
|             lambda state: (state.has(ItemName.p_switch, player) and
 | |
|                            state.has(ItemName.mario_carry, player) and
 | |
|                            state.has(ItemName.mario_run, player)))
 | |
|     connect(world, LocationName.valley_fortress_region, LocationName.valley_fortress,
 | |
|             lambda state: state.has(ItemName.progressive_powerup, player, 1))
 | |
|     connect(world, LocationName.valley_castle_region, LocationName.valley_castle)
 | |
|     connect(world, LocationName.front_door, LocationName.bowser_region,
 | |
|             lambda state: (state.has(ItemName.mario_climb, player) and
 | |
|                            state.has(ItemName.mario_run, player) and
 | |
|                            state.has(ItemName.mario_swim, player) and
 | |
|                            state.has(ItemName.progressive_powerup, player, 1) and
 | |
|                            state.has(ItemName.koopaling, player, world.options.bosses_required.value)))
 | |
|     connect(world, LocationName.back_door, LocationName.bowser_region,
 | |
|             lambda state: state.has(ItemName.koopaling, player, world.options.bosses_required.value))
 | |
| 
 | |
|     connect(world, LocationName.star_road_1_region, LocationName.star_road_1_exit_1,
 | |
|             lambda state: (state.has(ItemName.mario_spin_jump, player) and
 | |
|                            state.has(ItemName.progressive_powerup, player, 1)))
 | |
|     connect(world, LocationName.star_road_1_region, LocationName.star_road_1_exit_2,
 | |
|             lambda state: (state.has(ItemName.mario_spin_jump, player) and
 | |
|                            state.has(ItemName.mario_carry, player) and
 | |
|                            state.has(ItemName.progressive_powerup, player, 1)))
 | |
|     connect(world, LocationName.star_road_2_region, LocationName.star_road_2_exit_1,
 | |
|             lambda state: state.has(ItemName.mario_swim, player))
 | |
|     connect(world, LocationName.star_road_2_region, LocationName.star_road_2_exit_2,
 | |
|             lambda state: (state.has(ItemName.mario_swim, player) and
 | |
|                            state.has(ItemName.mario_carry, player)))
 | |
|     connect(world, LocationName.star_road_3_region, LocationName.star_road_3_exit_1)
 | |
|     connect(world, LocationName.star_road_3_region, LocationName.star_road_3_exit_2,
 | |
|             lambda state: state.has(ItemName.mario_carry, player))
 | |
|     connect(world, LocationName.star_road_4_region, LocationName.star_road_4_exit_1)
 | |
|     connect(world, LocationName.star_road_4_region, LocationName.star_road_4_exit_2,
 | |
|             lambda state: (state.has(ItemName.mario_carry, player) and
 | |
|                            (state.has(ItemName.yoshi_activate, player) or
 | |
|                             (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.red_switch_palace, player)))))
 | |
|     connect(world, LocationName.star_road_5_region, LocationName.star_road_5_exit_1,
 | |
|             lambda state: state.has(ItemName.p_switch, player))
 | |
|     connect(world, LocationName.star_road_5_region, LocationName.star_road_5_exit_2,
 | |
|             lambda state: (state.has(ItemName.mario_carry, player) and
 | |
|                            state.has(ItemName.mario_climb, player) and
 | |
|                            state.has(ItemName.p_switch, player) and
 | |
|                            state.has(ItemName.yellow_switch_palace, player) and
 | |
|                            state.has(ItemName.green_switch_palace, player) and
 | |
|                            state.has(ItemName.red_switch_palace, player) and
 | |
|                            state.has(ItemName.blue_switch_palace, player)))
 | |
| 
 | |
|     connect(world, LocationName.special_zone_1_region, LocationName.special_zone_1_exit_1,
 | |
|             lambda state: (state.has(ItemName.mario_climb, player) and
 | |
|                            (state.has(ItemName.p_switch, player) or
 | |
|                             (state.has(ItemName.mario_run, player) and state.has(ItemName.progressive_powerup, player, 3)))))
 | |
|     connect(world, LocationName.special_zone_2_region, LocationName.special_zone_2_exit_1,
 | |
|             lambda state: state.has(ItemName.p_balloon, player))
 | |
|     connect(world, LocationName.special_zone_3_region, LocationName.special_zone_3_exit_1,
 | |
|             lambda state: (state.has(ItemName.mario_climb, player) or
 | |
|                            state.has(ItemName.yoshi_activate, player)))
 | |
|     connect(world, LocationName.special_zone_4_region, LocationName.special_zone_4_exit_1,
 | |
|             lambda state: (state.has(ItemName.progressive_powerup, player, 2) or
 | |
|                            state.has(ItemName.super_star_active, player)))
 | |
|     connect(world, LocationName.special_zone_5_region, LocationName.special_zone_5_exit_1,
 | |
|             lambda state: state.has(ItemName.progressive_powerup, player, 1))
 | |
|     connect(world, LocationName.special_zone_6_region, LocationName.special_zone_6_exit_1,
 | |
|             lambda state: state.has(ItemName.mario_swim, player))
 | |
|     connect(world, LocationName.special_zone_7_region, LocationName.special_zone_7_exit_1,
 | |
|             lambda state: state.has(ItemName.progressive_powerup, player, 1))
 | |
|     connect(world, LocationName.special_zone_8_region, LocationName.special_zone_8_exit_1,
 | |
|             lambda state: ((state.has(ItemName.progressive_powerup, player, 1) and state.has(ItemName.mario_spin_jump, player)) or
 | |
|                            state.has(ItemName.progressive_powerup, player, 3) or
 | |
|                            state.has(ItemName.yoshi_activate, player) or
 | |
|                            state.has(ItemName.mario_carry, player)))
 | |
| 
 | |
| 
 | |
| 
 | |
|     # Connect levels to each other
 | |
|     for current_level_id, current_level_data in level_info_dict.items():
 | |
|         # Connect tile regions to correct level regions
 | |
| 
 | |
|         if current_level_id not in level_to_tile_dict.keys():
 | |
|             continue
 | |
| 
 | |
|         current_tile_id = level_to_tile_dict[current_level_id]
 | |
|         current_tile_data = level_info_dict[current_tile_id]
 | |
|         current_tile_name = current_tile_data.levelName
 | |
|         if ("Star Road - " not in current_tile_name) and (" - Star Road" not in current_tile_name):
 | |
|             current_tile_name += " - Tile"
 | |
|             connect(world, current_tile_name, current_level_data.levelName)
 | |
|         # Connect Exit regions to next tile regions
 | |
|         if current_tile_data.exit1Path:
 | |
|             next_tile_id = current_tile_data.exit1Path.otherLevelID
 | |
|             if world.options.swap_donut_gh_exits and current_tile_id == 0x04:
 | |
|                 next_tile_id = current_tile_data.exit2Path.otherLevelID
 | |
|             next_tile_name = level_info_dict[next_tile_id].levelName
 | |
|             if ("Star Road - " not in next_tile_name) and (" - Star Road" not in next_tile_name):
 | |
|                 next_tile_name += " - Tile"
 | |
|             current_exit_name = (current_level_data.levelName + " - Normal Exit")
 | |
|             connect(world, current_exit_name, next_tile_name)
 | |
|         if current_tile_data.exit2Path:
 | |
|             next_tile_id = current_tile_data.exit2Path.otherLevelID
 | |
|             if world.options.swap_donut_gh_exits and current_tile_id == 0x04:
 | |
|                 next_tile_id = current_tile_data.exit1Path.otherLevelID
 | |
|             next_tile_name = level_info_dict[next_tile_id].levelName
 | |
|             if ("Star Road - " not in next_tile_name) and (" - Star Road" not in next_tile_name):
 | |
|                 next_tile_name += " - Tile"
 | |
|             current_exit_name = (current_level_data.levelName + " - Secret Exit")
 | |
|             connect(world, current_exit_name, next_tile_name)
 | |
| 
 | |
|     connect(world, LocationName.donut_plains_star_road, LocationName.star_road_donut)
 | |
|     connect(world, LocationName.star_road_donut, LocationName.donut_plains_star_road)
 | |
|     connect(world, LocationName.star_road_donut, LocationName.star_road_1_tile)
 | |
|     connect(world, LocationName.vanilla_dome_star_road, LocationName.star_road_vanilla)
 | |
|     connect(world, LocationName.star_road_vanilla, LocationName.vanilla_dome_star_road)
 | |
|     connect(world, LocationName.star_road_vanilla, LocationName.star_road_2_tile)
 | |
|     connect(world, LocationName.twin_bridges_star_road, LocationName.star_road_twin_bridges)
 | |
|     connect(world, LocationName.star_road_twin_bridges, LocationName.twin_bridges_star_road)
 | |
|     connect(world, LocationName.star_road_twin_bridges, LocationName.star_road_3_tile)
 | |
|     connect(world, LocationName.forest_star_road, LocationName.star_road_forest)
 | |
|     connect(world, LocationName.star_road_forest, LocationName.forest_star_road)
 | |
|     connect(world, LocationName.star_road_forest, LocationName.star_road_4_tile)
 | |
|     connect(world, LocationName.valley_star_road, LocationName.star_road_valley)
 | |
|     connect(world, LocationName.star_road_valley, LocationName.valley_star_road)
 | |
|     connect(world, LocationName.star_road_valley, LocationName.star_road_5_tile)
 | |
|     connect(world, LocationName.star_road_special, LocationName.special_star_road)
 | |
|     connect(world, LocationName.special_star_road, LocationName.star_road_special)
 | |
|     connect(world, LocationName.special_star_road, LocationName.special_zone_1_tile)
 | |
|     
 | |
|     connect(world, LocationName.star_road_valley, LocationName.front_door_tile)
 | |
| 
 | |
| 
 | |
| 
 | |
| def create_region(multiworld: MultiWorld, player: int, active_locations, name: str, locations=None):
 | |
|     ret = Region(name, player, multiworld)
 | |
|     if locations:
 | |
|         for locationName in locations:
 | |
|             loc_id = active_locations.get(locationName, 0)
 | |
|             if loc_id:
 | |
|                 location = SMWLocation(player, locationName, loc_id, ret)
 | |
|                 ret.locations.append(location)
 | |
| 
 | |
|     return ret
 | |
| 
 | |
| def add_location_to_region(multiworld: MultiWorld, player: int, active_locations, region_name: str, location_name: str,
 | |
|                            rule: typing.Optional[typing.Callable] = None):
 | |
|     region = multiworld.get_region(region_name, player)
 | |
|     loc_id = active_locations.get(location_name, 0)
 | |
|     if loc_id:
 | |
|         location = SMWLocation(player, location_name, loc_id, region)
 | |
|         region.locations.append(location)
 | |
|         if rule:
 | |
|             add_rule(location, rule)
 | |
| 
 | |
| 
 | |
| def connect(world: World, source: str, target: str,
 | |
|             rule: typing.Optional[typing.Callable] = None):
 | |
|     source_region: Region = world.get_region(source)
 | |
|     target_region: Region = world.get_region(target)
 | |
|     source_region.connect(target_region, rule=rule)
 | 
