diff --git a/worlds/zork_grand_inquisitor/data/location_data.py b/worlds/zork_grand_inquisitor/data/location_data.py index 1dda0568d35a..004fe8eda24e 100644 --- a/worlds/zork_grand_inquisitor/data/location_data.py +++ b/worlds/zork_grand_inquisitor/data/location_data.py @@ -17,6 +17,7 @@ class ZorkGrandInquisitorLocationData(NamedTuple): Tuple[int, int], Tuple[int, Tuple[int, ...]], Tuple[Tuple[int, ...], int], + Tuple[str, Tuple[str, ...]], ], ..., ] @@ -669,7 +670,7 @@ class ZorkGrandInquisitorLocationData(NamedTuple): ), ), ZorkGrandInquisitorLocations.I_AM_NOT_IMPRESSED: ZorkGrandInquisitorLocationData( - game_state_trigger=(("location", "hp4f"), (8419, 1)), + game_state_trigger=(("location", ("hp4f", "hp1g")), (8419, 1)), archipelago_id=LOCATION_OFFSET + 63, region=ZorkGrandInquisitorRegions.HADES, tags=(ZorkGrandInquisitorTags.CORE,), diff --git a/worlds/zork_grand_inquisitor/game_controller.py b/worlds/zork_grand_inquisitor/game_controller.py index 542df3288a46..21c729a75cf7 100644 --- a/worlds/zork_grand_inquisitor/game_controller.py +++ b/worlds/zork_grand_inquisitor/game_controller.py @@ -598,12 +598,17 @@ def _check_for_completed_locations(self) -> None: is_location_completed: bool = True trigger: Union[str, int, Tuple[int, ...]] - value: Union[str, int, Tuple[int, ...]] + value: Union[str, int, Tuple[int, ...], Tuple[str, ...]] for trigger, value in data.game_state_trigger: if trigger == "location": - if not self._player_is_at(value): - is_location_completed = False - break + if isinstance(value, str): + if not self._player_is_at(value): + is_location_completed = False + break + elif isinstance(value, tuple): + if not any(self._player_is_at(key) for key in value): + is_location_completed = False + break elif isinstance(trigger, int): if isinstance(value, int): if self._read_game_state_value_for(trigger) != value: