ToH Crystal Switch Region WIP
This commit is contained in:
@@ -701,6 +701,16 @@ class CollectionState(object):
|
||||
or self.has('Ice Rod', player)
|
||||
or self.has('Cane of Somaria', player)
|
||||
or self.has('Cane of Byrna', player))
|
||||
|
||||
def can_hit_switch_through_barrier(self, player):
|
||||
return (self.can_use_bombs(player)
|
||||
or self.can_shoot_arrows(player)
|
||||
or self.has_beam_sword(player)
|
||||
or self.has('Blue Boomerang', player)
|
||||
or self.has('Red Boomerang', player)
|
||||
or self.has('Fire Rod', player)
|
||||
or self.has('Ice Rod', player)
|
||||
or self.has('Cane of Somaria', player))
|
||||
|
||||
def can_shoot_arrows(self, player):
|
||||
if self.world.retro[player]:
|
||||
|
||||
@@ -1986,6 +1986,16 @@ logical_connections = [
|
||||
('Desert Main Lobby Right Path', 'Desert Right Alcove'),
|
||||
('Desert Left Alcove Path', 'Desert Main Lobby'),
|
||||
('Desert Right Alcove Path', 'Desert Main Lobby'),
|
||||
|
||||
('Hera Lobby to Front Barrier - Blue', 'Hera Front'),
|
||||
('Hera Front to Lobby Barrier - Blue', 'Hera Lobby'),
|
||||
('Hera Front to Down Stairs Barrier - Blue', 'Hera Down Stairs Landing'),
|
||||
('Hera Front to Up Stairs Barrier - Orange', 'Hera Up Stairs Landing'),
|
||||
('Hera Front to Back Barrier - Orange', 'Hera Back'),
|
||||
('Hera Down Stairs to Front Barrier - Blue', 'Hera Front'),
|
||||
('Hera Up Stairs to Front Barrier - Orange', 'Hera Front'),
|
||||
('Hera Back to Front Barrier - Orange', 'Hera Front'),
|
||||
|
||||
('Hera Big Chest Hook Path', 'Hera Big Chest Landing'),
|
||||
('Hera Big Chest Landing Exit', 'Hera 4F'),
|
||||
('PoD Pit Room Block Path N', 'PoD Pit Room Blocked'),
|
||||
@@ -2217,10 +2227,12 @@ open_edges = [
|
||||
|
||||
falldown_pits = [
|
||||
('Eastern Courtyard Potholes', 'Eastern Fairies'),
|
||||
('Hera Beetles Holes', 'Hera Lobby'),
|
||||
('Hera Startile Corner Holes', 'Hera Lobby'),
|
||||
('Hera Startile Wide Holes', 'Hera Lobby'),
|
||||
('Hera 4F Holes', 'Hera Lobby'), # failed bomb jump
|
||||
('Hera Beetles Holes Front', 'Hera Front'),
|
||||
('Hera Beetles Holes Landing', 'Hera Up Stairs Landing'),
|
||||
('Hera Startile Corner Holes Front', 'Hera Front'),
|
||||
('Hera Startile Corner Holes Landing', 'Hera Down Stairs Landing'),
|
||||
('Hera Startile Wide Holes', 'Hera Back'),
|
||||
('Hera 4F Holes', 'Hera Back'), # failed bomb jump
|
||||
('Hera Big Chest Landing Holes', 'Hera Startile Wide'), # the other holes near big chest
|
||||
('Hera 5F Star Hole', 'Hera Big Chest Landing'),
|
||||
('Hera 5F Pothole Chain', 'Hera Fairies'),
|
||||
|
||||
28
Doors.py
28
Doors.py
@@ -252,6 +252,14 @@ def create_doors(world, player):
|
||||
|
||||
# Hera
|
||||
create_door(player, 'Hera Lobby S', Nrml).dir(So, 0x77, Mid, Low).pos(0).portal(Z, 0x22, 1),
|
||||
create_door(player, 'Hera Lobby to Front Barrier - Blue', Lgcl),
|
||||
create_door(player, 'Hera Front to Lobby Barrier - Blue', Lgcl),
|
||||
create_door(player, 'Hera Front to Down Stairs Barrier - Blue', Lgcl),
|
||||
create_door(player, 'Hera Down Stairs to Front Barrier - Blue', Lgcl),
|
||||
create_door(player, 'Hera Front to Up Stairs Barrier - Orange', Lgcl),
|
||||
create_door(player, 'Hera Up Stairs to Front Barrier - Orange', Lgcl),
|
||||
create_door(player, 'Hera Front to Back Barrier - Orange', Lgcl),
|
||||
create_door(player, 'Hera Back to Front Barrier - Orange', Lgcl),
|
||||
create_door(player, 'Hera Lobby Down Stairs', Sprl).dir(Dn, 0x77, 3, HTL).ss(Z, 0x21, 0x90, False, True),
|
||||
create_door(player, 'Hera Lobby Key Stairs', Sprl).dir(Dn, 0x77, 1, HTL).ss(A, 0x12, 0x80).small_key().pos(1),
|
||||
create_door(player, 'Hera Lobby Up Stairs', Sprl).dir(Up, 0x77, 2, HTL).ss(X, 0x2b, 0x5c, False, True),
|
||||
@@ -263,10 +271,12 @@ def create_doors(world, player):
|
||||
create_door(player, 'Hera Torches NE', Intr).dir(No, 0x87, Right, High).pos(1),
|
||||
create_door(player, 'Hera Beetles Down Stairs', Sprl).dir(Dn, 0x31, 2, LTH).ss(X, 0x3a, 0x70, True, True),
|
||||
create_door(player, 'Hera Beetles WS', Intr).dir(We, 0x31, Bot, High).pos(1),
|
||||
create_door(player, 'Hera Beetles Holes', Hole),
|
||||
create_door(player, 'Hera Beetles Holes Front', Hole),
|
||||
create_door(player, 'Hera Beetles Holes Landing', Hole),
|
||||
create_door(player, 'Hera Startile Corner ES', Intr).dir(Ea, 0x31, Bot, High).pos(1),
|
||||
create_door(player, 'Hera Startile Corner NW', Intr).dir(No, 0x31, Left, High).big_key().pos(0),
|
||||
create_door(player, 'Hera Startile Corner Holes', Hole),
|
||||
create_door(player, 'Hera Startile Corner Holes Front', Hole),
|
||||
create_door(player, 'Hera Startile Corner Holes Landing', Hole),
|
||||
# technically ugly but causes lots of failures in basic
|
||||
create_door(player, 'Hera Startile Wide SW', Intr).dir(So, 0x31, Left, High).pos(0),
|
||||
create_door(player, 'Hera Startile Wide Up Stairs', Sprl).dir(Up, 0x31, 0, HTH).ss(S, 0x6b, 0xac, False, True),
|
||||
@@ -1128,9 +1138,14 @@ def create_doors(world, player):
|
||||
world.get_door('Hyrule Castle Tapestry Backwards', player).event('Zelda Pickup')
|
||||
|
||||
# crystal switches and barriers
|
||||
world.get_door('Hera Lobby Down Stairs', player).c_switch()
|
||||
world.get_door('Hera Lobby Key Stairs', player).c_switch()
|
||||
world.get_door('Hera Lobby Up Stairs', player).c_switch()
|
||||
world.get_door('Hera Lobby to Front Barrier - Blue', player).barrier(CrystalBarrier.Blue)
|
||||
world.get_door('Hera Front to Lobby Barrier - Blue', player).barrier(CrystalBarrier.Blue)
|
||||
world.get_door('Hera Front to Down Stairs Barrier - Blue', player).barrier(CrystalBarrier.Blue)
|
||||
world.get_door('Hera Down Stairs to Front Barrier - Blue', player).barrier(CrystalBarrier.Blue)
|
||||
world.get_door('Hera Front to Up Stairs Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||
world.get_door('Hera Up Stairs to Front Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||
world.get_door('Hera Front to Back Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||
world.get_door('Hera Back to Front Barrier - Orange', player).barrier(CrystalBarrier.Orange)
|
||||
world.get_door('Hera Basement Cage Up Stairs', player).c_switch()
|
||||
world.get_door('Hera Tile Room Up Stairs', player).c_switch()
|
||||
world.get_door('Hera Tile Room EN', player).c_switch()
|
||||
@@ -1138,7 +1153,8 @@ def create_doors(world, player):
|
||||
world.get_door('Hera Tridorm SE', player).c_switch()
|
||||
world.get_door('Hera Beetles Down Stairs', player).c_switch()
|
||||
world.get_door('Hera Beetles WS', player).c_switch()
|
||||
world.get_door('Hera Beetles Holes', player).c_switch()
|
||||
world.get_door('Hera Beetles Holes Front', player).c_switch()
|
||||
world.get_door('Hera Beetles Holes Landing', player).c_switch()
|
||||
world.get_door('Hera Startile Wide SW', player).c_switch()
|
||||
world.get_door('Hera Startile Wide Up Stairs', player).c_switch()
|
||||
world.get_door('Hera Startile Wide Holes', player).c_switch()
|
||||
|
||||
@@ -195,7 +195,8 @@ desert_regions = [
|
||||
]
|
||||
|
||||
hera_regions = [
|
||||
'Hera Lobby', 'Hera Basement Cage', 'Hera Tile Room', 'Hera Tridorm', 'Hera Torches', 'Hera Beetles',
|
||||
'Hera Lobby', 'Hera Front', 'Hera Back', 'Hera Down Stairs Landing', 'Hera Up Stairs Landing',
|
||||
'Hera Basement Cage', 'Hera Tile Room', 'Hera Tridorm', 'Hera Torches', 'Hera Beetles',
|
||||
'Hera Startile Corner', 'Hera Startile Wide', 'Hera 4F', 'Hera Big Chest Landing', 'Hera 5F',
|
||||
'Hera Fairies', 'Hera Boss', 'Hera Portal'
|
||||
]
|
||||
|
||||
@@ -2271,7 +2271,7 @@ Cave_Exits_Base = [['Elder House Exit (East)', 'Elder House Exit (West)'],
|
||||
['Death Mountain Return Cave Exit (West)', 'Death Mountain Return Cave Exit (East)'],
|
||||
['Fairy Ascension Cave Exit (Bottom)', 'Fairy Ascension Cave Exit (Top)'],
|
||||
['Bumper Cave Exit (Top)', 'Bumper Cave Exit (Bottom)'],
|
||||
['Hookshot Cave Exit (South)', 'Hookshot Cave Exit (North)']]
|
||||
['Hookshot Cave Exit (South)', 'Hookshot Cave Back Exit']]
|
||||
|
||||
Cave_Exits_Base += [('Superbunny Cave Exit (Bottom)', 'Superbunny Cave Exit (Top)'),
|
||||
('Spiral Cave Exit (Top)', 'Spiral Cave Exit')]
|
||||
@@ -3252,9 +3252,13 @@ default_connections = [('Waterfall of Wishing', 'Waterfall of Wishing'),
|
||||
('Superbunny Cave (Bottom)', 'Superbunny Cave'),
|
||||
('Superbunny Cave Exit (Top)', 'Dark Death Mountain (Top)'),
|
||||
('Superbunny Cave Exit (Bottom)', 'Dark Death Mountain (East Bottom)'),
|
||||
|
||||
('Hookshot Cave Exit (South)', 'Dark Death Mountain (Top)'),
|
||||
('Hookshot Cave Exit (North)', 'Death Mountain Floating Island (Dark World)'),
|
||||
('Hookshot Cave Back Entrance', 'Hookshot Cave'),
|
||||
('Hookshot Cave Bombable Wall', 'Hookshot Cave Back'),
|
||||
('Hookshot Cave Back Exit', 'Death Mountain Floating Island (Dark World)'),
|
||||
('Hookshot Cave Back Bombable Wall', 'Hookshot Cave'),
|
||||
('Hookshot Cave Back Entrance', 'Hookshot Cave Back'),
|
||||
|
||||
('Mimic Cave', 'Mimic Cave'),
|
||||
|
||||
('Pyramid Hole', 'Pyramid'),
|
||||
@@ -3384,8 +3388,10 @@ inverted_default_connections = [('Waterfall of Wishing', 'Waterfall of Wishing'
|
||||
('Cave Shop (Dark Death Mountain)', 'Cave Shop (Dark Death Mountain)'),
|
||||
('Superbunny Cave (Bottom)', 'Superbunny Cave'),
|
||||
('Superbunny Cave Exit (Bottom)', 'Dark Death Mountain (East Bottom)'),
|
||||
('Hookshot Cave Exit (North)', 'Death Mountain Floating Island (Dark World)'),
|
||||
('Hookshot Cave Back Entrance', 'Hookshot Cave'),
|
||||
('Hookshot Cave Bombable Wall', 'Hookshot Cave Back'),
|
||||
('Hookshot Cave Back Bombable Wall', 'Hookshot Cave'),
|
||||
('Hookshot Cave Back Exit', 'Death Mountain Floating Island (Dark World'),
|
||||
('Hookshot Cave Back Entrance', 'Hookshot Cave Back'),
|
||||
('Mimic Cave', 'Mimic Cave'),
|
||||
('Inverted Pyramid Hole', 'Pyramid'),
|
||||
('Inverted Links House', 'Inverted Links House'),
|
||||
@@ -3755,7 +3761,7 @@ exit_ids = {'Links House Exit': (0x01, 0x00),
|
||||
'Superbunny Cave Exit (Top)': (0x14, 0x15),
|
||||
'Superbunny Cave Exit (Bottom)': (0x13, 0x14),
|
||||
'Hookshot Cave Exit (South)': (0x3A, 0x3B),
|
||||
'Hookshot Cave Exit (North)': (0x3B, 0x3C),
|
||||
'Hookshot Cave Back Exit': (0x3B, 0x3C),
|
||||
'Ganons Tower Exit': (0x37, 0x38),
|
||||
'Inverted Ganons Tower Exit': (0x37, 0x38),
|
||||
'Pyramid Exit': (0x36, 0x37),
|
||||
|
||||
@@ -197,7 +197,8 @@ def create_inverted_regions(world, player):
|
||||
['Superbunny Cave Exit (Top)', 'Superbunny Cave Exit (Bottom)']),
|
||||
create_cave_region(player, 'Spike Cave', 'Spike Cave', ['Spike Cave']),
|
||||
create_cave_region(player, 'Hookshot Cave', 'a connector', ['Hookshot Cave - Top Right', 'Hookshot Cave - Top Left', 'Hookshot Cave - Bottom Right', 'Hookshot Cave - Bottom Left'],
|
||||
['Hookshot Cave Exit (South)', 'Hookshot Cave Exit (North)']),
|
||||
['Hookshot Cave Exit (South)', 'Hookshot Cave Bombable Wall']),
|
||||
create_cave_region(player, 'Hookshot Cave Back', 'a connector', None, ['Hookshot Cave Back Exit', 'Hookshot Cave Back Bombable Wall']),
|
||||
create_dw_region(player, 'Death Mountain Floating Island (Dark World)', None, ['Floating Island Drop', 'Hookshot Cave Back Entrance']),
|
||||
create_cave_region(player, 'Mimic Cave', 'Mimic Cave', ['Mimic Cave']),
|
||||
|
||||
|
||||
14
Regions.py
14
Regions.py
@@ -187,7 +187,8 @@ def create_regions(world, player):
|
||||
['Superbunny Cave Exit (Top)', 'Superbunny Cave Exit (Bottom)']),
|
||||
create_cave_region(player, 'Spike Cave', 'Spike Cave', ['Spike Cave']),
|
||||
create_cave_region(player, 'Hookshot Cave', 'a connector', ['Hookshot Cave - Top Right', 'Hookshot Cave - Top Left', 'Hookshot Cave - Bottom Right', 'Hookshot Cave - Bottom Left'],
|
||||
['Hookshot Cave Exit (South)', 'Hookshot Cave Exit (North)']),
|
||||
['Hookshot Cave Exit (South)', 'Hookshot Cave Bombable Wall']),
|
||||
create_cave_region(player, 'Hookshot Cave Back', 'a connector', None, ['Hookshot Cave Back Exit', 'Hookshot Cave Back Bombable Wall']),
|
||||
create_dw_region(player, 'Death Mountain Floating Island (Dark World)', None, ['Floating Island Drop', 'Hookshot Cave Back Entrance', 'Floating Island Mirror Spot']),
|
||||
create_lw_region(player, 'Death Mountain Floating Island (Light World)', ['Floating Island']),
|
||||
create_dw_region(player, 'Turtle Rock (Top)', None, ['Turtle Rock Drop']),
|
||||
@@ -337,13 +338,17 @@ def create_dungeon_regions(world, player):
|
||||
create_dungeon_region(player, 'Desert Boss', 'Desert Palace', ['Desert Palace - Boss', 'Desert Palace - Prize'], ['Desert Boss SW']),
|
||||
|
||||
# Hera
|
||||
create_dungeon_region(player, 'Hera Lobby', 'Tower of Hera', ['Tower of Hera - Map Chest'], ['Hera Lobby Down Stairs', 'Hera Lobby Key Stairs', 'Hera Lobby Up Stairs', 'Hera Lobby S']),
|
||||
create_dungeon_region(player, 'Hera Lobby', 'Tower of Hera', None, ['Hera Lobby S', 'Hera Lobby to Front Barrier - Blue']),
|
||||
create_dungeon_region(player, 'Hera Front', 'Tower of Hera', None, ['Hera Front to Lobby Barrier - Blue', 'Hera Front to Down Stairs Barrier - Blue', 'Hera Front to Up Stairs Barrier - Orange', 'Hera Front to Back Barrier - Orange']),
|
||||
create_dungeon_region(player, 'Hera Down Stairs Landing', 'Tower of Hera', None, ['Hera Lobby Down Stairs', 'Hera Down Stairs to Front Barrier - Blue']),
|
||||
create_dungeon_region(player, 'Hera Up Stairs Landing', 'Tower of Hera', None, ['Hera Up Stairs to Front Barrier - Orange', 'Hera Lobby Up Stairs']),
|
||||
create_dungeon_region(player, 'Hera Back', 'Tower of Hera', ['Tower of Hera - Map Chest'], ['Hera Back to Front Barrier - Orange', 'Hera Lobby Key Stairs']),
|
||||
create_dungeon_region(player, 'Hera Basement Cage', 'Tower of Hera', ['Tower of Hera - Basement Cage'], ['Hera Basement Cage Up Stairs']),
|
||||
create_dungeon_region(player, 'Hera Tile Room', 'Tower of Hera', None, ['Hera Tile Room Up Stairs', 'Hera Tile Room EN']),
|
||||
create_dungeon_region(player, 'Hera Tridorm', 'Tower of Hera', None, ['Hera Tridorm WN', 'Hera Tridorm SE']),
|
||||
create_dungeon_region(player, 'Hera Torches', 'Tower of Hera', ['Tower of Hera - Big Key Chest'], ['Hera Torches NE']),
|
||||
create_dungeon_region(player, 'Hera Beetles', 'Tower of Hera', None, ['Hera Beetles Down Stairs', 'Hera Beetles WS', 'Hera Beetles Holes']),
|
||||
create_dungeon_region(player, 'Hera Startile Corner', 'Tower of Hera', None, ['Hera Startile Corner ES', 'Hera Startile Corner NW', 'Hera Startile Corner Holes']),
|
||||
create_dungeon_region(player, 'Hera Beetles', 'Tower of Hera', None, ['Hera Beetles Down Stairs', 'Hera Beetles WS', 'Hera Beetles Holes Front', 'Hera Beetles Holes Landing']),
|
||||
create_dungeon_region(player, 'Hera Startile Corner', 'Tower of Hera', None, ['Hera Startile Corner ES', 'Hera Startile Corner NW', 'Hera Startile Corner Holes Front', 'Hera Startile Corner Holes Landing']),
|
||||
create_dungeon_region(player, 'Hera Startile Wide', 'Tower of Hera', None, ['Hera Startile Wide SW', 'Hera Startile Wide Up Stairs', 'Hera Startile Wide Holes']),
|
||||
create_dungeon_region(player, 'Hera 4F', 'Tower of Hera', ['Tower of Hera - Compass Chest'], ['Hera 4F Down Stairs', 'Hera 4F Up Stairs', 'Hera Big Chest Hook Path', 'Hera 4F Holes']),
|
||||
create_dungeon_region(player, 'Hera Big Chest Landing', 'Tower of Hera', ['Tower of Hera - Big Chest'], ['Hera Big Chest Landing Exit', 'Hera Big Chest Landing Holes']),
|
||||
@@ -755,6 +760,7 @@ def create_dungeon_regions(world, player):
|
||||
|
||||
world.initialize_regions()
|
||||
world.get_region('Hera Lobby', player).crystal_switch = True
|
||||
world.get_region('Hera Front', player).crystal_switch = True
|
||||
world.get_region('Hera Basement Cage', player).crystal_switch = True
|
||||
world.get_region('Hera Tile Room', player).crystal_switch = True # INTERIOR not accessible (maybe with cane)
|
||||
world.get_region('Hera Tridorm', player).crystal_switch = True
|
||||
|
||||
31
Rules.py
31
Rules.py
@@ -349,6 +349,14 @@ def global_rules(world, player):
|
||||
else:
|
||||
set_rule(world.get_entrance('Thieves Attic ES', player), lambda state: state.can_reach_orange(world.get_region('Thieves Attic', player), player))
|
||||
|
||||
set_rule(world.get_entrance('Hera Lobby to Front Barrier - Blue', player), lambda state: state.can_hit_switch(player))
|
||||
set_rule(world.get_entrance('Hera Front to Lobby Barrier - Blue', player), lambda state: state.can_hit_switch(player))
|
||||
set_rule(world.get_entrance('Hera Front to Down Stairs Barrier - Blue', player), lambda state: lambda state: state.can_hit_switch(player))
|
||||
set_rule(world.get_entrance('Hera Down Stairs to Front Barrier - Blue', player), lambda state: lambda state: state.can_hit_switch_through_barrier(player) or state.can_reach_blue(world.get_region('Hera Down Stairs Landing', player), player))
|
||||
set_rule(world.get_entrance('Hera Front to Up Stairs Barrier - Orange', player), lambda state: lambda state: state.can_hit_switch(player))
|
||||
set_rule(world.get_entrance('Hera Up Stairs to Front Barrier - Orange', player), lambda state: lambda state: state.can_hit_switch_through_barrier(player) or state.can_reach_orange(world.get_region('Hera Up Stairs Landing', player), player))
|
||||
set_rule(world.get_entrance('Hera Front to Back Barrier - Orange', player), lambda state: lambda state: state.can_hit_switch(player))
|
||||
set_rule(world.get_entrance('Hera Back to Front Barrier - Orange', player), lambda state: state.has_beam_sword(player) or state.can_shoot_arrows(player) or state.has('Fire Rod', player) or state.has('Ice Rod', player) or state.has('Cane of Somaria', player) or state.can_reach_orange(world.get_region('Hera Back', player), player))
|
||||
set_rule(world.get_entrance('PoD Arena Crystal Path', player), lambda state: state.can_reach_blue(world.get_region('PoD Arena Crystal', player), player))
|
||||
set_rule(world.get_entrance('Swamp Trench 2 Pots Blue Barrier', player), lambda state: state.can_reach_blue(world.get_region('Swamp Trench 2 Pots', player), player))
|
||||
set_rule(world.get_entrance('Swamp Shortcut Blue Barrier', player), lambda state: state.can_reach_blue(world.get_region('Swamp Shortcut', player), player))
|
||||
@@ -407,17 +415,17 @@ def global_rules(world, player):
|
||||
|
||||
def bomb_rules(world, player):
|
||||
bonkable_doors = ['Two Brothers House Exit (West)', 'Two Brothers House Exit (East)'] # Technically this is incorrectly defined, but functionally the same as what is intended.
|
||||
bombable_doors = ['Ice Rod Cave', 'Light World Bomb Hut', 'Light World Death Mountain Shop', 'Hookshot Cave Exit (North)', 'Mini Moldorm Cave',
|
||||
'Dark Lake Hylia Ledge Fairy', 'Hype Cave', 'Brewery']
|
||||
bombable_doors = ['Ice Rod Cave', 'Light World Bomb Hut', 'Light World Death Mountain Shop', 'Mini Moldorm Cave',
|
||||
'Hookshot Cave Bombable Wall', 'Hookshot Cave Back Bombable Wall', 'Dark Lake Hylia Ledge Fairy', 'Hype Cave', 'Brewery']
|
||||
for entrance in bonkable_doors:
|
||||
add_rule(world.get_entrance(entrance, player), lambda state: state.can_use_bombs(player) or state.has_Boots(player))
|
||||
for entrance in bombable_doors:
|
||||
add_rule(world.get_entrance(entrance, player), lambda state: state.can_use_bombs(player))
|
||||
|
||||
bonkable_items = ["Sahasrahla's Hut - Left", "Sahasrahla's Hut - Middle", "Sahasrahla's Hut - Right"]
|
||||
bombable_items = ["Blind's Hideout - Top", "Kakariko Well - Top", 'Chicken House', "Aginah's Cave", 'Graveyard Cave',
|
||||
'Paradox Cave Upper - Left', 'Paradox Cave Upper - Right',
|
||||
'Hype Cave - Top', 'Hype Cave - Middle Right', 'Hype Cave - Middle Left', 'Hype Cave - Bottom']
|
||||
bonkable_items = ['Sahasrahla\'s Hut - Left', 'Sahasrahla\'s Hut - Middle', 'Sahasrahla\'s Hut - Right']
|
||||
bombable_items = ['Blind\'s Hideout - Top', 'Kakariko Well - Top', 'Chicken House', 'Aginah\'s Cave', 'Graveyard Cave',
|
||||
'Paradox Cave Upper - Left', 'Paradox Cave Upper - Right',
|
||||
'Hype Cave - Top', 'Hype Cave - Middle Right', 'Hype Cave - Middle Left', 'Hype Cave - Bottom']
|
||||
for location in bonkable_items:
|
||||
add_rule(world.get_location(location, player), lambda state: state.can_use_bombs(player) or state.has_Boots(player))
|
||||
for location in bombable_items:
|
||||
@@ -429,10 +437,7 @@ def bomb_rules(world, player):
|
||||
|
||||
paradox_switch_chests = ['Paradox Cave Lower - Far Left', 'Paradox Cave Lower - Left', 'Paradox Cave Lower - Right', 'Paradox Cave Lower - Far Right', 'Paradox Cave Lower - Middle']
|
||||
for location in paradox_switch_chests:
|
||||
add_rule(world.get_location(location, player), lambda state: \
|
||||
state.can_use_bombs(player) or state.can_shoot_arrows(player) or state.has_beam_sword(player) \
|
||||
or state.has('Blue Boomerang', player) or state.has('Red Boomerang', player) \
|
||||
or state.has('Fire Rod', player) or state.has('Ice Rod', player) or state.has('Cane of Somaria', player))
|
||||
add_rule(world.get_location(location, player), lambda state: state.can_hit_switch_through_barrier(player))
|
||||
|
||||
# Dungeon bomb logic
|
||||
for _,entrances in std_kill_rooms.items():
|
||||
@@ -1591,8 +1596,10 @@ bunny_impassible_doors = {
|
||||
'Eastern Attic Start WS', 'Eastern Single Eyegore NE', 'Eastern Duo Eyegores NE', 'Desert Main Lobby Left Path',
|
||||
'Desert Main Lobby Right Path', 'Desert Left Alcove Path', 'Desert Right Alcove Path', 'Desert Compass NW',
|
||||
'Desert West Lobby NW', 'Desert Back Lobby NW', 'Desert Four Statues NW', 'Desert Four Statues ES',
|
||||
'Desert Beamos Hall WS', 'Desert Beamos Hall NE', 'Desert Wall Slide NW', 'Hera Lobby Down Stairs',
|
||||
'Hera Lobby Key Stairs', 'Hera Lobby Up Stairs', 'Hera Tile Room EN', 'Hera Tridorm SE', 'Hera Beetles WS',
|
||||
'Desert Beamos Hall WS', 'Desert Beamos Hall NE', 'Desert Wall Slide NW',
|
||||
'Hera Lobby to Front Barrier - Blue', 'Hera Front to Lobby Barrier - Blue', 'Hera Front to Down Stairs Barrier - Blue',
|
||||
'Hera Front to Up Stairs Barrier - Orange', 'Hera Front to Back Barrier - Orange', 'Hera Down Stairs to Front Barrier - Blue',
|
||||
'Hera Up Stairs to Front Barrier - Orange', 'Hera Back to Front Barrier - Orange', 'Hera Tile Room EN', 'Hera Tridorm SE', 'Hera Beetles WS',
|
||||
'Hera 4F Down Stairs', 'Tower Gold Knights SW', 'Tower Dark Maze EN', 'Tower Dark Pits ES', 'Tower Dark Archers WN',
|
||||
'Tower Red Spears WN', 'Tower Red Guards EN', 'Tower Red Guards SW', 'Tower Circle of Pots NW', 'Tower Altar NW',
|
||||
'PoD Left Cage SW', 'PoD Middle Cage SE', 'PoD Pit Room Bomb Hole', 'PoD Pit Room Block Path N',
|
||||
|
||||
Reference in New Issue
Block a user