Skip to content

Commit

Permalink
Fully update dungeonColor.py to LADXR-live (#28)
Browse files Browse the repository at this point in the history
Logic changes:
- Normal logic: Karakoros now need power bracelet to put them into their holes
- Hard logic: Karakoros without power bracelet but with weapon
- Hell logic: Karakoros with only bombs

Everything else is code cleanup
  • Loading branch information
palex00 authored Sep 16, 2024
1 parent c0d91f7 commit 956752b
Showing 1 changed file with 9 additions and 7 deletions.
16 changes: 9 additions & 7 deletions worlds/ladx/LADXR/logic/dungeonColor.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ def __init__(self, options, world_setup, r):
room2.add(DungeonChest(0x314)) # key
if options.owlstatues == "both" or options.owlstatues == "dungeon":
Location(dungeon=9).add(OwlStatue(0x308), OwlStatue(0x30F)).connect(room2, STONE_BEAK9)
room2_weapon = Location(dungeon=9).connect(room2, r.attack_hookshot)
room2_weapon = Location(dungeon=9).connect(room2, AND(r.attack_hookshot, POWER_BRACELET))
room2_weapon.add(DungeonChest(0x311)) # stone beak
room2_lights = Location(dungeon=9).connect(room2, OR(r.attack_hookshot, SHIELD))
room2_lights.add(DungeonChest(0x30F)) # compass chest
Expand All @@ -20,22 +20,24 @@ def __init__(self, options, world_setup, r):
room3 = Location(dungeon=9).connect(room2, AND(KEY9, FOUND(KEY9, 2), r.miniboss_requirements[world_setup.miniboss_mapping["c1"]])) # After the miniboss
room4 = Location(dungeon=9).connect(room3, POWER_BRACELET) # need to lift a pot to reveal button
room4.add(DungeonChest(0x306)) # map
room4karakoro = Location(dungeon=9).add(DroppedKey(0x307)).connect(room4, r.attack_hookshot) # require item to knock Karakoro enemies into shell
room4karakoro = Location(dungeon=9).add(DroppedKey(0x307)).connect(room4, AND(r.attack_hookshot, POWER_BRACELET)) # require item to knock Karakoro enemies into shell
if options.owlstatues == "both" or options.owlstatues == "dungeon":
Location(dungeon=9).add(OwlStatue(0x30A)).connect(room4, STONE_BEAK9)
room5 = Location(dungeon=9).connect(room4, OR(r.attack_hookshot, SHIELD)) # lights room
room6 = Location(dungeon=9).connect(room5, AND(KEY9, FOUND(KEY9, 3))) # room with switch and nightmare door
pre_boss = Location(dungeon=9).connect(room6, OR(r.attack_hookshot, AND(PEGASUS_BOOTS, FEATHER))) # before the boss, require item to hit switch or jump past raised blocks
pre_boss = Location(dungeon=9).connect(room6, OR(r.hit_switch, AND(PEGASUS_BOOTS, FEATHER))) # before the boss, require item to hit switch or jump past raised blocks
boss = Location(dungeon=9).connect(pre_boss, AND(NIGHTMARE_KEY9, r.boss_requirements[world_setup.boss_mapping[8]]))
boss.add(TunicFairy(0), TunicFairy(1))

if options.logic == 'hard' or options.logic == 'glitched' or options.logic == 'hell':
room2.connect(entrance, POWER_BRACELET) # throw pots at enemies
pre_boss.connect(room6, FEATHER) # before the boss, jump past raised blocks without boots
room2.connect(entrance, r.throw_pot) # throw pots at enemies
room2_weapon.connect(room2, r.attack_hookshot_no_bomb) # knock the karakoro into the pit without picking them up.
pre_boss.connect(room6, r.tight_jump) # before the boss, jump past raised blocks without boots

if options.logic == 'hell':
room2_weapon.connect(room2, SHIELD) # shield bump karakoro into the holes
room4karakoro.connect(room4, SHIELD) # shield bump karakoro into the holes
room2_weapon.connect(room2, r.attack_hookshot) # also have a bomb as option to knock the karakoro into the pit without bracelet
room2_weapon.connect(room2, r.shield_bump) # shield bump karakoro into the holes
room4karakoro.connect(room4, r.shield_bump) # shield bump karakoro into the holes

self.entrance = entrance

Expand Down

0 comments on commit 956752b

Please sign in to comment.