From 40c3ef35c760b821eb2fd202b071124ad279abb3 Mon Sep 17 00:00:00 2001 From: Fabian Dill Date: Thu, 20 Oct 2022 03:35:28 +0200 Subject: [PATCH] LttP: fix Inverted Big Bomb Shop indirect connection rule --- worlds/alttp/EntranceShuffle.py | 23 +++++++++++++++-------- worlds/alttp/__init__.py | 10 +++++++++- 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/worlds/alttp/EntranceShuffle.py b/worlds/alttp/EntranceShuffle.py index c2b56d6f..e10f4d54 100644 --- a/worlds/alttp/EntranceShuffle.py +++ b/worlds/alttp/EntranceShuffle.py @@ -3834,14 +3834,21 @@ inverted_default_dungeon_connections = [('Desert Palace Entrance (South)', 'Dese # Regions that can be required to access entrances through rules, not paths indirect_connections = { - 'Turtle Rock (Top)': 'Turtle Rock', - 'East Dark World': 'Pyramid Fairy', - 'Big Bomb Shop': 'Pyramid Fairy', - 'Dark Desert': 'Pyramid Fairy', - 'West Dark World': 'Pyramid Fairy', - 'South Dark World': 'Pyramid Fairy', - 'Light World': 'Pyramid Fairy', - 'Old Man Cave': 'Old Man S&Q' + "Turtle Rock (Top)": "Turtle Rock", + "East Dark World": "Pyramid Fairy", + "Dark Desert": "Pyramid Fairy", + "West Dark World": "Pyramid Fairy", + "South Dark World": "Pyramid Fairy", + "Light World": "Pyramid Fairy", + "Old Man Cave": "Old Man S&Q" +} + +indirect_connections_inverted = { + "Inverted Big Bomb Shop": "Pyramid Fairy", +} + +indirect_connections_not_inverted = { + "Big Bomb Shop": "Pyramid Fairy", } # format: diff --git a/worlds/alttp/__init__.py b/worlds/alttp/__init__.py index 561b489b..ce53154e 100644 --- a/worlds/alttp/__init__.py +++ b/worlds/alttp/__init__.py @@ -7,7 +7,8 @@ import typing import Utils from BaseClasses import Item, CollectionState, Tutorial from .Dungeons import create_dungeons -from .EntranceShuffle import link_entrances, link_inverted_entrances, plando_connect, indirect_connections +from .EntranceShuffle import link_entrances, link_inverted_entrances, plando_connect, \ + indirect_connections, indirect_connections_inverted, indirect_connections_not_inverted from .InvertedRegions import create_inverted_regions, mark_dark_world_regions from .ItemPool import generate_itempool, difficulties from .Items import item_init_table, item_name_groups, item_table, GetBeemizerItem @@ -216,9 +217,15 @@ class ALTTPWorld(World): if world.mode[player] != 'inverted': link_entrances(world, player) mark_light_world_regions(world, player) + for region_name, entrance_name in indirect_connections_not_inverted.items(): + world.register_indirect_condition(self.world.get_region(region_name, player), + self.world.get_entrance(entrance_name, player)) else: link_inverted_entrances(world, player) mark_dark_world_regions(world, player) + for region_name, entrance_name in indirect_connections_inverted.items(): + world.register_indirect_condition(self.world.get_region(region_name, player), + self.world.get_entrance(entrance_name, player)) world.random = old_random plando_connect(world, player) @@ -227,6 +234,7 @@ class ALTTPWorld(World): world.register_indirect_condition(self.world.get_region(region_name, player), self.world.get_entrance(entrance_name, player)) + def collect_item(self, state: CollectionState, item: Item, remove=False): item_name = item.name if item_name.startswith('Progressive '):