|
1 |
| -from typing import Dict, List, TYPE_CHECKING |
| 1 | +from typing import Dict, TYPE_CHECKING |
2 | 2 | from collections.abc import Callable
|
3 | 3 | from BaseClasses import CollectionState
|
4 | 4 | from worlds.generic.Rules import forbid_item
|
@@ -78,7 +78,7 @@ def all_skull_dials_available(state: CollectionState, player: int) -> bool:
|
78 | 78 |
|
79 | 79 |
|
80 | 80 | def get_rules_lookup(player: int):
|
81 |
| - rules_lookup: Dict[str, List[Callable[[CollectionState], bool]]] = { |
| 81 | + rules_lookup: Dict[str, Dict[str, Callable[[CollectionState], bool]]] = { |
82 | 82 | "entrances": {
|
83 | 83 | "To Office Elevator From Underground Blue Tunnels": lambda state: state.has("Key for Office Elevator", player),
|
84 | 84 | "To Office Elevator From Office": lambda state: state.has("Key for Office Elevator", player),
|
@@ -195,6 +195,15 @@ def set_rules(world: "ShiversWorld") -> None:
|
195 | 195 | for location_name, rule in rules_lookup["lightning"].items():
|
196 | 196 | multiworld.get_location(location_name, player).access_rule = rule
|
197 | 197 |
|
| 198 | + # Register indirect conditions |
| 199 | + multiworld.register_indirect_condition(world.get_region("Burial"), world.get_entrance("To Slide Room")) |
| 200 | + multiworld.register_indirect_condition(world.get_region("Egypt"), world.get_entrance("To Slide Room")) |
| 201 | + multiworld.register_indirect_condition(world.get_region("Gods Room"), world.get_entrance("To Slide Room")) |
| 202 | + multiworld.register_indirect_condition(world.get_region("Prehistoric"), world.get_entrance("To Slide Room")) |
| 203 | + multiworld.register_indirect_condition(world.get_region("Tar River"), world.get_entrance("To Slide Room")) |
| 204 | + multiworld.register_indirect_condition(world.get_region("Werewolf"), world.get_entrance("To Slide Room")) |
| 205 | + multiworld.register_indirect_condition(world.get_region("Prehistoric"), world.get_entrance("To Tar River From Lobby")) |
| 206 | + |
198 | 207 | # forbid cloth in janitor closet and oil in tar river
|
199 | 208 | forbid_item(multiworld.get_location("Accessible: Storage: Janitor Closet", player), "Cloth Pot Bottom DUPE", player)
|
200 | 209 | forbid_item(multiworld.get_location("Accessible: Storage: Janitor Closet", player), "Cloth Pot Top DUPE", player)
|
@@ -226,7 +235,3 @@ def set_rules(world: "ShiversWorld") -> None:
|
226 | 235 |
|
227 | 236 | # Set completion condition
|
228 | 237 | multiworld.completion_condition[player] = lambda state: (first_nine_ixupi_capturable(state, player) and lightning_capturable(state, player))
|
229 |
| - |
230 |
| - |
231 |
| - |
232 |
| - |
|
0 commit comments