Tower of Hera crystal regions working

This commit is contained in:
StructuralMike
2021-03-06 19:38:12 +01:00
parent 5ef1ceb136
commit bf78758ade
5 changed files with 25 additions and 13 deletions

View File

@@ -1989,6 +1989,10 @@ logical_connections = [
('Hera Lobby to Front Barrier - Blue', 'Hera Front'),
('Hera Front to Lobby Barrier - Blue', 'Hera Lobby'),
('Hera Lobby to Crystal', 'Hera Lobby Crystal'),
('Hera Lobby Crystal Exit', 'Hera Lobby'),
('Hera Front to Crystal', 'Hera Front Crystal'),
('Hera Front Crystal Exit', 'Hera Front'),
('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'),

View File

@@ -253,7 +253,11 @@ 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 Lobby - Crystal', Lgcl),
create_door(player, 'Hera Lobby - Crystal Exit', Lgcl),
create_door(player, 'Hera Front to Lobby Barrier - Blue', Lgcl),
create_door(player, 'Hera Front - Crystal', Lgcl),
create_door(player, 'Hera Front - Crystal Exit', 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),
@@ -1138,8 +1142,10 @@ 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 - Crystal Exit', 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 - Crystal Exit', player).c_switch()
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)

View File

@@ -195,7 +195,7 @@ desert_regions = [
]
hera_regions = [
'Hera Lobby', 'Hera Front', 'Hera Back', 'Hera Down Stairs Landing', 'Hera Up Stairs Landing',
'Hera Lobby', 'Hera Lobby Crystal', 'Hera Front', 'Hera Back', 'Hera Front Crystal', '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'

View File

@@ -338,8 +338,10 @@ 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', 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 Lobby', 'Tower of Hera', None, ['Hera Lobby S', 'Hera Lobby to Crystal', 'Hera Lobby to Front Barrier - Blue']),
create_dungeon_region(player, 'Hera Lobby Crystal', 'Tower of Hera', None, ['Hera Lobby Crystal Exit']),
create_dungeon_region(player, 'Hera Front', 'Tower of Hera', None, ['Hera Front to Crystal', '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 Front Crystal', 'Tower of Hera', None, ['Hera Front Crystal Exit']),
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']),
@@ -759,8 +761,8 @@ 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 Lobby Crystal', player).crystal_switch = True
world.get_region('Hera Front Crystal', 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

View File

@@ -349,14 +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('Hera Lobby to Front Barrier - Blue', player), lambda state: state.can_reach_blue(world.get_region('Hera Lobby', player), player))
set_rule(world.get_entrance('Hera Front to Lobby Barrier - Blue', player), lambda state: state.can_reach_blue(world.get_region('Hera Front', player), player))
set_rule(world.get_entrance('Hera Front to Down Stairs Barrier - Blue', player), lambda state: state.can_reach_blue(world.get_region('Hera Front', player), player))
set_rule(world.get_entrance('Hera Down Stairs to Front Barrier - Blue', player), lambda state: 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: state.can_reach_orange(world.get_region('Hera Front', player), player))
set_rule(world.get_entrance('Hera Up Stairs to Front Barrier - Orange', player), lambda state: 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: state.can_reach_orange(world.get_region('Hera Front', player), player))
set_rule(world.get_entrance('Hera Back to Front Barrier - Orange', player), lambda state: 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))