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.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/apworld/rules.py b/apworld/rules.py index 05689e9..4a84acf 100644 --- a/apworld/rules.py +++ b/apworld/rules.py
@@ -15,10 +15,15 @@ def lingo2_can_satisfy_requirements(state: CollectionState, reqs: AccessRequirem
15 if not all(state.can_reach_region(region_name, world.player) for region_name in reqs.rooms): 15 if not all(state.can_reach_region(region_name, world.player) for region_name in reqs.rooms):
16 return False 16 return False
17 17
18 # TODO: symbols, letters 18 # TODO: symbols
19 19
20 for disjunction in reqs.or_logic: 20 for letter_key, letter_level in reqs.letters.items():
21 if not any(lingo2_can_satisfy_requirements(state, sub_reqs, world) for sub_reqs in disjunction): 21 if not state.has(letter_key, world.player, letter_level):
22 return False
23
24 if len(reqs.or_logic) > 0:
25 if not all(any(lingo2_can_satisfy_requirements(state, sub_reqs, world) for sub_reqs in subjunction)
26 for subjunction in reqs.or_logic):
22 return False 27 return False
23 28
24 return True 29 return True