The Messenger: speed up generation for large multiworlds (#2359)

This commit is contained in:
Aaron Wagener 2023-10-25 02:56:56 -05:00 committed by GitHub
parent e5554f8630
commit be959c05a6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 3 additions and 4 deletions

View File

@ -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()

View File

@ -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):