mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 04:01:32 -06:00
Core: Make excluded locations and priority locations excluded and remove unreachable code (#3424)
* Make excluded and priority locations excluded * Only pass on KeyError * Alternative/Clearer format
This commit is contained in:
13
Main.py
13
Main.py
@@ -124,14 +124,19 @@ def main(args, seed=None, baked_server_options: Optional[Dict[str, object]] = No
|
|||||||
for player in multiworld.player_ids:
|
for player in multiworld.player_ids:
|
||||||
exclusion_rules(multiworld, player, multiworld.worlds[player].options.exclude_locations.value)
|
exclusion_rules(multiworld, player, multiworld.worlds[player].options.exclude_locations.value)
|
||||||
multiworld.worlds[player].options.priority_locations.value -= multiworld.worlds[player].options.exclude_locations.value
|
multiworld.worlds[player].options.priority_locations.value -= multiworld.worlds[player].options.exclude_locations.value
|
||||||
|
world_excluded_locations = set()
|
||||||
for location_name in multiworld.worlds[player].options.priority_locations.value:
|
for location_name in multiworld.worlds[player].options.priority_locations.value:
|
||||||
try:
|
try:
|
||||||
location = multiworld.get_location(location_name, player)
|
location = multiworld.get_location(location_name, player)
|
||||||
except KeyError as e: # failed to find the given location. Check if it's a legitimate location
|
except KeyError:
|
||||||
if location_name not in multiworld.worlds[player].location_name_to_id:
|
continue
|
||||||
raise Exception(f"Unable to prioritize location {location_name} in player {player}'s world.") from e
|
|
||||||
else:
|
if location.progress_type != LocationProgressType.EXCLUDED:
|
||||||
location.progress_type = LocationProgressType.PRIORITY
|
location.progress_type = LocationProgressType.PRIORITY
|
||||||
|
else:
|
||||||
|
logger.warning(f"Unable to prioritize location \"{location_name}\" in player {player}'s world because the world excluded it.")
|
||||||
|
world_excluded_locations.add(location_name)
|
||||||
|
multiworld.worlds[player].options.priority_locations.value -= world_excluded_locations
|
||||||
|
|
||||||
# Set local and non-local item rules.
|
# Set local and non-local item rules.
|
||||||
if multiworld.players > 1:
|
if multiworld.players > 1:
|
||||||
|
Reference in New Issue
Block a user