diff options
author | Star Rauchenberger <fefferburbia@gmail.com> | 2025-09-02 14:09:35 -0400 |
---|---|---|
committer | Star Rauchenberger <fefferburbia@gmail.com> | 2025-09-02 14:09:35 -0400 |
commit | 7f82beb120e222ace6c258fc3982b5988f9ae070 (patch) | |
tree | 6a9fdf65badf1ed5e7d26b9a07bf0b0e840ca10e /apworld/player_logic.py | |
parent | 7f5f14ddb5a67e1ccfdc7aa3d68d829473d0b745 (diff) | |
download | lingo2-archipelago-7f82beb120e222ace6c258fc3982b5988f9ae070.tar.gz lingo2-archipelago-7f82beb120e222ace6c258fc3982b5988f9ae070.tar.bz2 lingo2-archipelago-7f82beb120e222ace6c258fc3982b5988f9ae070.zip |
Added keyholder sanity
Diffstat (limited to 'apworld/player_logic.py')
-rw-r--r-- | apworld/player_logic.py | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/apworld/player_logic.py b/apworld/player_logic.py index e08f644..dc1bdf0 100644 --- a/apworld/player_logic.py +++ b/apworld/player_logic.py | |||
@@ -166,6 +166,15 @@ class Lingo2PlayerLogic: | |||
166 | 166 | ||
167 | self.event_loc_item_by_room.setdefault(ending.room_id, {})[event_name] = item_name | 167 | self.event_loc_item_by_room.setdefault(ending.room_id, {})[event_name] = item_name |
168 | 168 | ||
169 | if self.world.options.keyholder_sanity: | ||
170 | for keyholder in world.static_logic.objects.keyholders: | ||
171 | if keyholder.HasField("key"): | ||
172 | reqs = AccessRequirements() | ||
173 | reqs.letters[keyholder.key.upper()] = 1 | ||
174 | |||
175 | self.locations_by_room.setdefault(keyholder.room_id, []).append(PlayerLocation(keyholder.ap_id, | ||
176 | reqs)) | ||
177 | |||
169 | def get_panel_reqs(self, panel_id: int, answer: str | None) -> AccessRequirements: | 178 | def get_panel_reqs(self, panel_id: int, answer: str | None) -> AccessRequirements: |
170 | if answer is None: | 179 | if answer is None: |
171 | if panel_id not in self.panel_reqs: | 180 | if panel_id not in self.panel_reqs: |