about summary refs log tree commit diff stats
path: root/apworld/rules.py
diff options
context:
space:
mode:
Diffstat (limited to 'apworld/rules.py')
-rw-r--r--apworld/rules.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/apworld/rules.py b/apworld/rules.py index c077858..f859e75 100644 --- a/apworld/rules.py +++ b/apworld/rules.py
@@ -54,10 +54,13 @@ def lingo2_can_satisfy_requirements(state: CollectionState, reqs: AccessRequirem
54 return True 54 return True
55 55
56def make_location_lambda(reqs: AccessRequirements, world: "Lingo2World", 56def make_location_lambda(reqs: AccessRequirements, world: "Lingo2World",
57 regions: dict[str, Region]) -> Callable[[CollectionState], bool]: 57 regions: dict[str, Region] | None) -> Callable[[CollectionState], bool]:
58 # Replace required rooms with regions for the top level requirement, which saves looking up the regions during rule 58 # Replace required rooms with regions for the top level requirement, which saves looking up the regions during rule
59 # checking. 59 # checking.
60 required_regions = [regions[room_name] for room_name in reqs.rooms] 60 if regions is not None:
61 required_regions = [regions[room_name] for room_name in reqs.rooms]
62 else:
63 required_regions = [world.multiworld.get_region(room_name, world.player) for room_name in reqs.rooms]
61 new_reqs = reqs.copy() 64 new_reqs = reqs.copy()
62 new_reqs.rooms.clear() 65 new_reqs.rooms.clear()
63 return lambda state: lingo2_can_satisfy_requirements(state, new_reqs, required_regions, world) 66 return lambda state: lingo2_can_satisfy_requirements(state, new_reqs, required_regions, world)