26 lines
		
	
	
		
			566 B
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			26 lines
		
	
	
		
			566 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def shuffle_random_entrances(ootworld):
							 | 
						||
| 
								 | 
							
								    world = ootworld.world
							 | 
						||
| 
								 | 
							
								    player = ootworld.player
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # Gather locations to keep reachable for validation
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # Set entrance data for all entrances
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # Determine entrance pools based on settings
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # Mark shuffled entrances
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # Build target entrance pools
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # Place priority entrances
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # Delete priority targets from one-way pools
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # Shuffle all entrance pools, in order
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # Verification steps: 
							 | 
						||
| 
								 | 
							
								    # All entrances are properly connected to a region
							 | 
						||
| 
								 | 
							
								    # Game is beatable
							 | 
						||
| 
								 | 
							
								    # Validate world
							 |