Bonk fairy (light) standard er restriction

This commit is contained in:
aerinon
2021-10-27 13:29:07 -06:00
parent 62c348fe7c
commit 3b3fe7f8ca
3 changed files with 42 additions and 3 deletions

View File

@@ -215,6 +215,13 @@ def link_entrances(world, player):
if bomb_shop in dw_entrances:
dw_entrances.remove(bomb_shop)
# standard mode cannot have Bonk Fairy Light be a connector in case of starting boots
# or boots are in links house, etc.
removed = False
if world.mode[player] == 'standard' and 'Bonk Fairy (Light)' in lw_entrances:
lw_entrances.remove('Bonk Fairy (Light)')
removed = True
# place the old man cave's entrance somewhere in the light world
random.shuffle(lw_entrances)
old_man_entrance = lw_entrances.pop()
@@ -226,6 +233,8 @@ def link_entrances(world, player):
# now scramble the rest
connect_caves(world, lw_entrances, dw_entrances, caves, player)
if removed:
lw_entrances.append('Bonk Fairy (Light)')
# scramble holes
scramble_holes(world, player)
@@ -395,14 +404,23 @@ def link_entrances(world, player):
if bomb_shop in dw_entrances:
dw_entrances.remove(bomb_shop)
# standard mode cannot have Bonk Fairy Light be a connector in case of
# starting boots or boots are in links house, etc.
removed = False
if world.mode[player] == 'standard' and 'Bonk Fairy (Light)' in lw_entrances:
lw_entrances.remove('Bonk Fairy (Light)')
removed = True
# place the old man cave's entrance somewhere in the light world
old_man_entrance = lw_entrances.pop()
connect_two_way(world, old_man_entrance, 'Old Man Cave Exit (West)', player)
# now scramble the rest
connect_caves(world, lw_entrances, dw_entrances, caves, player)
if removed:
lw_entrances.append('Bonk Fairy (Light)')
# scramble holes
scramble_holes(world, player)
@@ -487,16 +505,24 @@ def link_entrances(world, player):
connect_entrance(world, bomb_shop, 'Big Bomb Shop', player)
entrances.remove(bomb_shop)
# standard mode cannot have Bonk Fairy Light be a connector in case of
# starting boots or boots are in links house, etc.
removed = False
if world.mode[player] == 'standard' and 'Bonk Fairy (Light)' in entrances:
entrances.remove('Bonk Fairy (Light)')
removed = True
# place the old man cave's entrance somewhere
random.shuffle(entrances)
old_man_entrance = entrances.pop()
connect_two_way(world, old_man_entrance, 'Old Man Cave Exit (West)', player)
# now scramble the rest
connect_caves(world, entrances, [], caves, player)
if removed:
entrances.append('Bonk Fairy (Light)')
# scramble holes
scramble_holes(world, player)
@@ -971,6 +997,13 @@ def link_entrances(world, player):
connect_entrance(world, bomb_shop, 'Big Bomb Shop', player)
doors.remove(bomb_shop)
# standard mode cannot have Bonk Fairy Light be a connector in case of
# starting boots or boots are in links house, etc.
removed = False
if world.mode[player] == 'standard' and 'Bonk Fairy (Light)' in doors:
doors.remove('Bonk Fairy (Light)')
removed = True
# handle remaining caves
for cave in caves:
if isinstance(cave, str):
@@ -980,6 +1013,9 @@ def link_entrances(world, player):
connect_exit(world, exit, exit_pool.pop(), player)
connect_entrance(world, doors.pop(), exit, player)
if removed:
doors.append('Bonk Fairy (Light)')
# place remaining doors
connect_doors(world, doors, door_targets, player)
elif world.shuffle[player] == 'insanity_legacy':