From 2ec597f668505c0f146bdf7700e5ff707ffeeb3b Mon Sep 17 00:00:00 2001 From: Scipio Wright Date: Thu, 11 Jul 2024 16:27:51 -0400 Subject: [PATCH] Update to filter out unreachable regions outside of ER --- worlds/tunic/er_scripts.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/worlds/tunic/er_scripts.py b/worlds/tunic/er_scripts.py index 340bf479fb..b59dcd9a41 100644 --- a/worlds/tunic/er_scripts.py +++ b/worlds/tunic/er_scripts.py @@ -22,16 +22,23 @@ class TunicERLocation(Location): def create_er_regions(world: "TunicWorld") -> Dict[Portal, Portal]: regions: Dict[str, Region] = {} - for region_name, region_data in tunic_er_regions.items(): - regions[region_name] = Region(region_name, world.player, world.multiworld) if world.options.entrance_rando: + for region_name, region_data in tunic_er_regions.items(): + regions[region_name] = Region(region_name, world.player, world.multiworld) + portal_pairs = pair_portals(world, regions) # output the entrances to the spoiler log here for convenience for portal1, portal2 in portal_pairs.items(): world.multiworld.spoiler.set_entrance(portal1.name, portal2.name, "both", world.player) else: + # todo: test this change + for region_name, region_data in tunic_er_regions.items(): + # filter out regions that are inaccessible in non-er + if region_name not in ["Zig Skip Exit", "Purgatory"]: + regions[region_name] = Region(region_name, world.player, world.multiworld) + portal_pairs = vanilla_portals(world, regions) set_er_region_rules(world, regions, portal_pairs) @@ -81,7 +88,7 @@ tunic_events: Dict[str, str] = { "Eastern Vault West Fuses": "Eastern Vault Fortress", "Eastern Vault East Fuse": "Eastern Vault Fortress", "Quarry Connector Fuse": "Quarry Connector", - "Quarry Fuse": "Quarry", + "Quarry Fuse": "Quarry Entry", "Ziggurat Fuse": "Rooted Ziggurat Lower Back", "West Garden Fuse": "West Garden South Checkpoint", "Library Fuse": "Library Lab", @@ -120,7 +127,7 @@ def create_shop_region(world: "TunicWorld", regions: Dict[str, Region]) -> None: def vanilla_portals(world: "TunicWorld", regions: Dict[str, Region]) -> Dict[Portal, Portal]: portal_pairs: Dict[Portal, Portal] = {} # we don't want the zig skip exit for vanilla portals, since it shouldn't be considered for logic here - portal_map = [portal for portal in portal_mapping if portal.name != "Ziggurat Lower Falling Entrance"] + portal_map = [portal for portal in portal_mapping if portal.name not in ["Ziggurat Lower Falling Entrance", "Purgatory Bottom Exit", "Purgatory Top Exit"]] while portal_map: portal1 = portal_map[0] @@ -133,9 +140,6 @@ def vanilla_portals(world: "TunicWorld", regions: Dict[str, Region]) -> Dict[Por destination="Previous Region", tag="_") create_shop_region(world, regions) - elif portal2_sdt == "Purgatory, Purgatory_bottom": - portal2_sdt = "Purgatory, Purgatory_top" - for portal in portal_map: if portal.scene_destination() == portal2_sdt: portal2 = portal