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':

View File

@@ -15,6 +15,9 @@ CLI: ```--bombbag```
# Bug Fixes and Notes.
* 0.5.1.5
* Fix for hard pool capacity upgrades missing
* Bonk Fairy (Light) is no longer in logic for ER Standard and is forbidden to be a connector, so rain state isn't exitable
* 0.5.1.4
* Revert quadrant glitch fix for baserom
* Fix for inverted

View File

@@ -1212,7 +1212,7 @@ def standard_rules(world, player):
'North Fairy Cave', 'North Fairy Cave Drop', 'Lost Woods Gamble', 'Snitch Lady (East)',
'Snitch Lady (West)', 'Tavern (Front)', 'Bush Covered House', 'Light World Bomb Hut',
'Kakariko Shop', 'Long Fairy Cave', 'Good Bee Cave', '20 Rupee Cave', 'Cave Shop (Lake Hylia)',
'Waterfall of Wishing', 'Hyrule Castle Main Gate', '50 Rupee Cave',
'Waterfall of Wishing', 'Hyrule Castle Main Gate', '50 Rupee Cave', 'Bonk Fairy (Light)',
'Fortune Teller (Light)', 'Lake Hylia Fairy', 'Light Hype Fairy', 'Desert Fairy',
'Lumberjack House', 'Lake Hylia Fortune Teller', 'Kakariko Gamble Game', 'Top of Pyramid']:
add_rule(world.get_entrance(entrance, player), lambda state: state.has('Zelda Delivered', player))