LttP: fix Inverted Big Bomb Shop indirect connection rule

This commit is contained in:
Fabian Dill 2022-10-20 03:35:28 +02:00 committed by Fabian Dill
parent 28483a6c14
commit 40c3ef35c7
2 changed files with 24 additions and 9 deletions

View File

@ -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 # Regions that can be required to access entrances through rules, not paths
indirect_connections = { indirect_connections = {
'Turtle Rock (Top)': 'Turtle Rock', "Turtle Rock (Top)": "Turtle Rock",
'East Dark World': 'Pyramid Fairy', "East Dark World": "Pyramid Fairy",
'Big Bomb Shop': 'Pyramid Fairy', "Dark Desert": "Pyramid Fairy",
'Dark Desert': 'Pyramid Fairy', "West Dark World": "Pyramid Fairy",
'West Dark World': 'Pyramid Fairy', "South Dark World": "Pyramid Fairy",
'South Dark World': 'Pyramid Fairy', "Light World": "Pyramid Fairy",
'Light World': 'Pyramid Fairy', "Old Man Cave": "Old Man S&Q"
'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: # format:

View File

@ -7,7 +7,8 @@ import typing
import Utils import Utils
from BaseClasses import Item, CollectionState, Tutorial from BaseClasses import Item, CollectionState, Tutorial
from .Dungeons import create_dungeons 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 .InvertedRegions import create_inverted_regions, mark_dark_world_regions
from .ItemPool import generate_itempool, difficulties from .ItemPool import generate_itempool, difficulties
from .Items import item_init_table, item_name_groups, item_table, GetBeemizerItem from .Items import item_init_table, item_name_groups, item_table, GetBeemizerItem
@ -216,9 +217,15 @@ class ALTTPWorld(World):
if world.mode[player] != 'inverted': if world.mode[player] != 'inverted':
link_entrances(world, player) link_entrances(world, player)
mark_light_world_regions(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: else:
link_inverted_entrances(world, player) link_inverted_entrances(world, player)
mark_dark_world_regions(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 world.random = old_random
plando_connect(world, player) plando_connect(world, player)
@ -227,6 +234,7 @@ class ALTTPWorld(World):
world.register_indirect_condition(self.world.get_region(region_name, player), world.register_indirect_condition(self.world.get_region(region_name, player),
self.world.get_entrance(entrance_name, player)) self.world.get_entrance(entrance_name, player))
def collect_item(self, state: CollectionState, item: Item, remove=False): def collect_item(self, state: CollectionState, item: Item, remove=False):
item_name = item.name item_name = item.name
if item_name.startswith('Progressive '): if item_name.startswith('Progressive '):