DS3: Make your own region cache (#4040)
* Make your own region cache * Using a string
This commit is contained in:
parent
6287bc27a6
commit
2751ccdaab
|
@ -89,6 +89,7 @@ class DarkSouls3World(World):
|
|||
self.all_excluded_locations = set()
|
||||
|
||||
def generate_early(self) -> None:
|
||||
self.created_regions = set()
|
||||
self.all_excluded_locations.update(self.options.exclude_locations.value)
|
||||
|
||||
# Inform Universal Tracker where Yhorm is being randomized to.
|
||||
|
@ -294,6 +295,7 @@ class DarkSouls3World(World):
|
|||
new_region.locations.append(new_location)
|
||||
|
||||
self.multiworld.regions.append(new_region)
|
||||
self.created_regions.add(region_name)
|
||||
return new_region
|
||||
|
||||
def create_items(self) -> None:
|
||||
|
@ -1305,7 +1307,7 @@ class DarkSouls3World(World):
|
|||
def _add_entrance_rule(self, region: str, rule: Union[CollectionRule, str]) -> None:
|
||||
"""Sets a rule for the entrance to the given region."""
|
||||
assert region in location_tables
|
||||
if not any(region == reg for reg in self.multiworld.regions.region_cache[self.player]): return
|
||||
if region not in self.created_regions: return
|
||||
if isinstance(rule, str):
|
||||
if " -> " not in rule:
|
||||
assert item_dictionary[rule].classification == ItemClassification.progression
|
||||
|
|
Loading…
Reference in New Issue