diff --git a/Main.py b/Main.py index 0afcd26b..2fdcb2b5 100644 --- a/Main.py +++ b/Main.py @@ -676,7 +676,7 @@ def create_playthrough(world): for player in range(1, world.players + 1): world.spoiler.paths.update( {str(location): get_path(state, location.parent_region) for sphere in collection_spheres for location in - sphere if location.player == player}) + sphere if location.player == player and world.worlds[player].topology_present}) if player in world.alttp_player_ids: for path in dict(world.spoiler.paths).values(): if any(exit == 'Pyramid Fairy' for (_, exit) in path): diff --git a/worlds/AutoWorld.py b/worlds/AutoWorld.py index da14d6e8..58462a8d 100644 --- a/worlds/AutoWorld.py +++ b/worlds/AutoWorld.py @@ -28,6 +28,7 @@ class World(metaclass=AutoWorldRegister): world: MultiWorld player: int options: dict = {} + topology_present: bool = False # indicate if world type has any meaningful layout/pathing def __init__(self, world: MultiWorld, player: int): self.world = world diff --git a/worlds/alttp/__init__.py b/worlds/alttp/__init__.py index 6dc1c4f0..5d428db3 100644 --- a/worlds/alttp/__init__.py +++ b/worlds/alttp/__init__.py @@ -7,6 +7,8 @@ from .Options import alttp_options class ALTTPWorld(World): game: str = "A Link to the Past" options = alttp_options + topology_present = True + def collect(self, state: CollectionState, item: Item) -> bool: if item.name.startswith('Progressive '): if 'Sword' in item.name: diff --git a/worlds/minecraft/__init__.py b/worlds/minecraft/__init__.py index 1dba29f5..08f3d13b 100644 --- a/worlds/minecraft/__init__.py +++ b/worlds/minecraft/__init__.py @@ -12,7 +12,7 @@ client_version = (0, 4) class MinecraftWorld(World): game: str = "Minecraft" options = minecraft_options - + topology_present = True def _get_mc_data(self): exits = ["Overworld Structure 1", "Overworld Structure 2", "Nether Structure 1", "Nether Structure 2",