summary refs log tree commit diff stats
path: root/apworld/regions.py
diff options
context:
space:
mode:
authorStar Rauchenberger <fefferburbia@gmail.com>2025-08-14 12:30:12 -0400
committerStar Rauchenberger <fefferburbia@gmail.com>2025-08-14 12:32:43 -0400
commita17b7e1cbfb43141af21263f838f9593836a9c52 (patch)
tree453b8a6193e9c9c22863d6de5ecf6bffe3f6dfc6 /apworld/regions.py
parent0fbaff9e15d1214192bd2b70bf4bc90d873727b6 (diff)
downloadlingo2-archipelago-a17b7e1cbfb43141af21263f838f9593836a9c52.tar.gz
lingo2-archipelago-a17b7e1cbfb43141af21263f838f9593836a9c52.tar.bz2
lingo2-archipelago-a17b7e1cbfb43141af21263f838f9593836a9c52.zip
Fixed some issues with door logic
If a door is shuffled, the door's item should be used in connections and
in requirements specified by panels, ports, paintings, and other doors.
However, the original requirements still need to be used for locations.
Diffstat (limited to 'apworld/regions.py')
-rw-r--r--apworld/regions.py6
1 files changed, 3 insertions, 3 deletions
diff --git a/apworld/regions.py b/apworld/regions.py index 2a850ef..14fcaac 100644 --- a/apworld/regions.py +++ b/apworld/regions.py
@@ -41,7 +41,7 @@ def create_regions(world: "Lingo2World"):
41 reqs = AccessRequirements() 41 reqs = AccessRequirements()
42 42
43 if connection.HasField("required_door"): 43 if connection.HasField("required_door"):
44 reqs.merge(world.player_logic.get_door_reqs(connection.required_door)) 44 reqs.merge(world.player_logic.get_door_open_reqs(connection.required_door))
45 45
46 door = world.static_logic.objects.doors[connection.required_door] 46 door = world.static_logic.objects.doors[connection.required_door]
47 wmap = world.static_logic.objects.maps[door.map_id] 47 wmap = world.static_logic.objects.maps[door.map_id]
@@ -52,14 +52,14 @@ def create_regions(world: "Lingo2World"):
52 connection_name = f"{connection_name} (via port {port.name})" 52 connection_name = f"{connection_name} (via port {port.name})"
53 53
54 if port.HasField("required_door"): 54 if port.HasField("required_door"):
55 reqs.merge(world.player_logic.get_door_reqs(port.required_door)) 55 reqs.merge(world.player_logic.get_door_open_reqs(port.required_door))
56 56
57 if connection.HasField("painting"): 57 if connection.HasField("painting"):
58 painting = world.static_logic.objects.paintings[connection.painting] 58 painting = world.static_logic.objects.paintings[connection.painting]
59 connection_name = f"{connection_name} (via painting {painting.name})" 59 connection_name = f"{connection_name} (via painting {painting.name})"
60 60
61 if painting.HasField("required_door"): 61 if painting.HasField("required_door"):
62 reqs.merge(world.player_logic.get_door_reqs(painting.required_door)) 62 reqs.merge(world.player_logic.get_door_open_reqs(painting.required_door))
63 63
64 if connection.HasField("panel"): 64 if connection.HasField("panel"):
65 proxy = connection.panel 65 proxy = connection.panel