The Messenger: speed up generation for large multiworlds (#2359)
This commit is contained in:
		
							parent
							
								
									e5554f8630
								
							
						
					
					
						commit
						be959c05a6
					
				| 
						 | 
					@ -82,9 +82,7 @@ class MessengerWorld(World):
 | 
				
			||||||
        self.shop_prices, self.figurine_prices = shuffle_shop_prices(self)
 | 
					        self.shop_prices, self.figurine_prices = shuffle_shop_prices(self)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def create_regions(self) -> None:
 | 
					    def create_regions(self) -> None:
 | 
				
			||||||
        for region in [MessengerRegion(reg_name, self) for reg_name in REGIONS]:
 | 
					        self.multiworld.regions += [MessengerRegion(reg_name, self) for reg_name in REGIONS]
 | 
				
			||||||
            if region.name in REGION_CONNECTIONS:
 | 
					 | 
				
			||||||
                region.add_exits(REGION_CONNECTIONS[region.name])
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def create_items(self) -> None:
 | 
					    def create_items(self) -> None:
 | 
				
			||||||
        # create items that are always in the item pool
 | 
					        # create items that are always in the item pool
 | 
				
			||||||
| 
						 | 
					@ -138,6 +136,8 @@ class MessengerWorld(World):
 | 
				
			||||||
        self.multiworld.itempool += itempool
 | 
					        self.multiworld.itempool += itempool
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def set_rules(self) -> None:
 | 
					    def set_rules(self) -> None:
 | 
				
			||||||
 | 
					        for reg_name, connections in REGION_CONNECTIONS.items():
 | 
				
			||||||
 | 
					            self.multiworld.get_region(reg_name, self.player).add_exits(connections)
 | 
				
			||||||
        logic = self.options.logic_level
 | 
					        logic = self.options.logic_level
 | 
				
			||||||
        if logic == Logic.option_normal:
 | 
					        if logic == Logic.option_normal:
 | 
				
			||||||
            MessengerRules(self).set_messenger_rules()
 | 
					            MessengerRules(self).set_messenger_rules()
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -32,7 +32,6 @@ class MessengerRegion(Region):
 | 
				
			||||||
        loc_dict = {loc: world.location_name_to_id[loc] if loc in world.location_name_to_id else None
 | 
					        loc_dict = {loc: world.location_name_to_id[loc] if loc in world.location_name_to_id else None
 | 
				
			||||||
                    for loc in locations}
 | 
					                    for loc in locations}
 | 
				
			||||||
        self.add_locations(loc_dict, MessengerLocation)
 | 
					        self.add_locations(loc_dict, MessengerLocation)
 | 
				
			||||||
        world.multiworld.regions.append(self)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class MessengerLocation(Location):
 | 
					class MessengerLocation(Location):
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue