Core: correct typing info for item_in_locations

Core: rename item_in_locations to item_name_in_location_names
Core: add actual item_name_in_locations
This commit is contained in:
Fabian Dill
2023-04-23 22:12:55 +02:00
committed by Fabian Dill
parent b950af09a6
commit dcc628f878
2 changed files with 17 additions and 9 deletions

View File

@@ -140,14 +140,22 @@ def add_item_rule(location: "BaseClasses.Location", rule: ItemRule, combine: str
location.item_rule = lambda item: rule(item) or old_rule(item)
def item_in_locations(state: "BaseClasses.CollectionState", item: str, player: int,
locations: typing.Sequence["BaseClasses.Location"]) -> bool:
for location in locations:
def item_name_in_location_names(state: "BaseClasses.CollectionState", item: str, player: int,
location_name_player_pairs: typing.Sequence[typing.Tuple[str, int]]) -> bool:
for location in location_name_player_pairs:
if location_item_name(state, location[0], location[1]) == (item, player):
return True
return False
def item_name_in_locations(item: str, player: int,
locations: typing.Sequence["BaseClasses.Location"]) -> bool:
for location in locations:
if location.item and location.item.name == item and location.item.player == player:
return True
return False
def location_item_name(state: "BaseClasses.CollectionState", location: str, player: int) -> \
typing.Optional[typing.Tuple[str, int]]:
location = state.multiworld.get_location(location, player)