Core: do not error on location exclusion if the location has an ID value

This commit is contained in:
espeon65536 2021-10-05 17:52:03 -05:00 committed by Fabian Dill
parent 6ade832029
commit 0fed7f1295
1 changed files with 7 additions and 4 deletions
worlds/generic

View File

@ -23,10 +23,13 @@ def locality_rules(world, player: int):
def exclusion_rules(world, player: int, exclude_locations: typing.Set[str]):
for loc_name in exclude_locations:
location = world.get_location(loc_name, player)
add_item_rule(location, lambda i: not (i.advancement or i.never_exclude))
location.excluded = True
try:
location = world.get_location(loc_name, player)
add_item_rule(location, lambda i: not (i.advancement or i.never_exclude))
location.excluded = True
except KeyError as e: # failed to find the given location. Check if it's a legitimate location
if loc_name not in world.worlds[player].location_name_to_id:
raise Exception(f"Could not find location {loc_name} in player {player}'s world.") from e
def set_rule(spot, rule: CollectionRule):
spot.access_rule = rule