42 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			42 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | def create_regions(self, world, player: int): | ||
|  |     from . import create_region | ||
|  |     from BaseClasses import Entrance | ||
|  |     from logic.logic import Logic | ||
|  |     from graph.vanilla.graph_locations import locationsDict | ||
|  | 
 | ||
|  |     regions = [] | ||
|  |     for accessPoint in Logic.accessPoints: | ||
|  |         regions.append(create_region(   self,  | ||
|  |                                         world,  | ||
|  |                                         player,  | ||
|  |                                         accessPoint.Name,  | ||
|  |                                         None, | ||
|  |                                         [accessPoint.Name + "->" + key for key in accessPoint.intraTransitions.keys()])) | ||
|  | 
 | ||
|  |     world.regions += regions | ||
|  | 
 | ||
|  |     # create a region for each location and link each to what the location has access | ||
|  |     # we make them one way so that the filler (and spoiler log) doesnt try to use those region as intermediary path | ||
|  |     # this is required in AP because a location cant have multiple parent regions | ||
|  |     locationRegions = [] | ||
|  |     for locationName, value in locationsDict.items(): | ||
|  |         locationRegions.append(create_region(   self,  | ||
|  |                                                 world,  | ||
|  |                                                 player,  | ||
|  |                                                 locationName,  | ||
|  |                                                 [locationName])) | ||
|  |         for key in value.AccessFrom.keys(): | ||
|  |             currentRegion =world.get_region(key, player) | ||
|  |             currentRegion.exits.append(Entrance(player, key + "->"+ locationName, currentRegion)) | ||
|  | 
 | ||
|  |     world.regions += locationRegions | ||
|  |     #create entrances | ||
|  |     regionConcat = regions + locationRegions | ||
|  |     for region in regionConcat: | ||
|  |         for exit in region.exits: | ||
|  |             exit.connect(world.get_region(exit.name[exit.name.find("->") + 2:], player)) | ||
|  | 
 | ||
|  |     world.regions += [ | ||
|  |         create_region(self, world, player, 'Menu', None, ['StartAP']) | ||
|  |     ] |