Changing Big Bomb Shop start to be independent of ER modes
This commit is contained in:
@@ -310,7 +310,7 @@ class World(object):
|
||||
return self.is_tile_swapped(0x03, player) and self.is_tile_swapped(0x1b, player)
|
||||
|
||||
def is_bombshop_start(self, player):
|
||||
return self.is_tile_swapped(0x2c, player) and (self.shuffle[player] in ['vanilla', 'dungeonssimple', 'dungeonsfull'] or not self.shufflelinks[player])
|
||||
return self.is_tile_swapped(0x2c, player)
|
||||
|
||||
def is_pyramid_open(self, player):
|
||||
if self.open_pyramid[player] == 'yes':
|
||||
|
||||
@@ -1620,10 +1620,11 @@ def validate_layout(world, player):
|
||||
# check if entrances in region could be used to access region
|
||||
if world.shuffle[player] != 'vanilla':
|
||||
for entrance in [e for e in unreachable_regions[region_name].exits if e.spot_type == 'Entrance']:
|
||||
if (entrance.name == 'Links House' and (world.mode[player] == 'inverted' or not world.shufflelinks[player] or world.shuffle[player] in ['dungeonssimple', 'dungeonsfull', 'lite', 'lean'])) \
|
||||
or (entrance.name == 'Big Bomb Shop' and (world.mode[player] != 'inverted' or not world.shufflelinks[player] or world.shuffle[player] in ['dungeonssimple', 'dungeonsfull', 'lite', 'lean'])) \
|
||||
or (entrance.name == 'Ganons Tower' and (world.mode[player] != 'inverted' and not world.shuffle_ganon[player])) \
|
||||
or (entrance.name in ['Skull Woods First Section Door', 'Skull Woods Second Section Door (East)', 'Skull Woods Second Section Door (West)'] and world.shuffle[player] not in ['insanity']) \
|
||||
if (entrance.name == 'Links House' and ((not world.is_bombshop_start(player) and not world.shufflelinks[player]) or world.shuffle[player] in ['dungeonssimple', 'dungeonsfull', 'lite', 'lean'])) \
|
||||
or (entrance.name == 'Big Bomb Shop' and ((world.is_bombshop_start(player) and not world.shufflelinks[player]) or world.shuffle[player] in ['dungeonssimple', 'dungeonsfull', 'lite', 'lean'])) \
|
||||
or (entrance.name == 'Ganons Tower' and (not world.is_atgt_swapped(player) and not world.shuffle_ganon[player])) \
|
||||
or (entrance.name == 'Agahnims Tower' and (world.is_atgt_swapped(player) and not world.shuffle_ganon[player])) \
|
||||
or (entrance.name == 'Tavern North' and not world.shuffletavern[player]):
|
||||
continue # these are fixed entrances and cannot be used for gaining access to region
|
||||
if entrance.name not in drop_entrances \
|
||||
|
||||
@@ -129,7 +129,7 @@ def link_entrances_new(world, player):
|
||||
elif special_shuffle == 'skull':
|
||||
entrances, exits = find_entrances_and_exits(avail_pool, pool['entrances'])
|
||||
rem_ent = None
|
||||
if avail_pool.world.shuffle[avail_pool.player] in ['dungeons-simple', 'simple', 'restricted'] \
|
||||
if avail_pool.world.shuffle[avail_pool.player] in ['dungeonssimple', 'simple', 'restricted'] \
|
||||
and not avail_pool.world.is_tile_swapped(0x00, avail_pool.player):
|
||||
rem_ent = random.choice(['Skull Woods First Section Door', 'Skull Woods Second Section Door (East)'])
|
||||
entrances.remove(rem_ent)
|
||||
@@ -1148,9 +1148,12 @@ def do_fixed_shuffle(avail, entrance_list):
|
||||
new_x = 'Agahnims Tower Exit'
|
||||
elif x == 'Agahnims Tower Exit':
|
||||
new_x = 'Ganons Tower Exit'
|
||||
if avail.world.is_bombshop_start(avail.player):
|
||||
if x == 'Links House Exit':
|
||||
new_x = 'Big Bomb Shop'
|
||||
elif x == 'Big Bomb Shop':
|
||||
new_x = 'Links House Exit'
|
||||
lw_exits.add(new_x)
|
||||
if avail.world.shufflelinks[avail.player] or avail.world.shuffle[avail.player] not in ['vanilla', 'dungeonssimple', 'dungeonsfull']:
|
||||
lw_exits.update({'Big Bomb Shop'} if avail.world.is_bombshop_start(avail.player) else {'Links House Exit'})
|
||||
filtered_choices = {i: opt for i, opt in choices.items() if all(t in lw_exits for t in opt[2])}
|
||||
_, choice = random.choice(list(filtered_choices.items()))
|
||||
else:
|
||||
@@ -2125,7 +2128,7 @@ drop_map = {
|
||||
}
|
||||
|
||||
linked_drop_map = {
|
||||
'Hyrule Castle Secret Entrance Drop': 'Hyrule Castle Secret Entrance Stairs',
|
||||
'Hyrule Castle Secret Entrance Drop': 'Hyrule Castle Secret Entrance Stairs',
|
||||
'Kakariko Well Drop': 'Kakariko Well Cave',
|
||||
'Bat Cave Drop': 'Bat Cave Cave',
|
||||
'North Fairy Cave Drop': 'North Fairy Cave',
|
||||
@@ -2169,7 +2172,7 @@ entrance_map = {
|
||||
'Links House': 'Links House Exit',
|
||||
|
||||
|
||||
'Hyrule Castle Secret Entrance Stairs': 'Hyrule Castle Secret Entrance Exit',
|
||||
'Hyrule Castle Secret Entrance Stairs': 'Hyrule Castle Secret Entrance Exit',
|
||||
'Kakariko Well Cave': 'Kakariko Well Exit',
|
||||
'Bat Cave Cave': 'Bat Cave Exit',
|
||||
'North Fairy Cave': 'North Fairy Cave Exit',
|
||||
|
||||
Reference in New Issue
Block a user