feat: Laser bridge logic accounts for item functionality for Byrna

This commit is contained in:
aerinon
2024-01-04 11:57:52 -07:00
parent 2b505df429
commit 4201d5d067
3 changed files with 7 additions and 5 deletions

View File

@@ -1262,7 +1262,8 @@ class CollectionState(object):
return self.has('Fire Rod', player) or (self.has('Bombos', player) and self.has_sword(player)) return self.has('Fire Rod', player) or (self.has('Bombos', player) and self.has_sword(player))
def can_avoid_lasers(self, player): def can_avoid_lasers(self, player):
return self.has('Mirror Shield', player) or self.has('Cane of Byrna', player) or self.has('Cape', player) return (self.has('Mirror Shield', player) or self.has('Cape', player)
or (self.has('Cane of Byrna', player) and self.world.difficulty_adjustments[player] not in ['hard', 'expert']))
def is_not_bunny(self, region, player): def is_not_bunny(self, region, player):
if self.has_Pearl(player): if self.has_Pearl(player):

View File

@@ -143,6 +143,7 @@ These are now independent of retro mode and have three options: None, Random, an
* 1.4.1.0v * 1.4.1.0v
* Glitched modes: Aga 1 should be vulnerable in rain state for glitched modes * Glitched modes: Aga 1 should be vulnerable in rain state for glitched modes
* Logic: Byrna not in logic for laser bridge when item functionality is set to hard or expert
* Enemy AI: Terrorpin AI code removed. May help with unusual enemy behavior? * Enemy AI: Terrorpin AI code removed. May help with unusual enemy behavior?
* 1.4.0.1v * 1.4.0.1v
* Key logic: Vanilla key logic fixes. Statically set some HC logic and PoD front door * Key logic: Vanilla key logic fixes. Statically set some HC logic and PoD front door

View File

@@ -504,10 +504,10 @@ def global_rules(world, player):
set_rule(location, lambda state: state.has('Cane of Somaria', player)) set_rule(location, lambda state: state.has('Cane of Somaria', player))
set_rule(world.get_entrance('TR Final Abyss Balcony Path', player), lambda state: state.has('Cane of Somaria', player)) set_rule(world.get_entrance('TR Final Abyss Balcony Path', player), lambda state: state.has('Cane of Somaria', player))
set_rule(world.get_entrance('TR Final Abyss Ledge Path', player), lambda state: state.has('Cane of Somaria', player)) set_rule(world.get_entrance('TR Final Abyss Ledge Path', player), lambda state: state.has('Cane of Somaria', player))
set_rule(world.get_location('Turtle Rock - Eye Bridge - Bottom Left', player), lambda state: state.has('Cane of Byrna', player) or state.has('Cape', player) or state.has('Mirror Shield', player)) set_rule(world.get_location('Turtle Rock - Eye Bridge - Bottom Left', player), lambda state: state.can_avoid_lasers(player))
set_rule(world.get_location('Turtle Rock - Eye Bridge - Bottom Right', player), lambda state: state.has('Cane of Byrna', player) or state.has('Cape', player) or state.has('Mirror Shield', player)) set_rule(world.get_location('Turtle Rock - Eye Bridge - Bottom Right', player), lambda state: state.can_avoid_lasers(player))
set_rule(world.get_location('Turtle Rock - Eye Bridge - Top Left', player), lambda state: state.has('Cane of Byrna', player) or state.has('Cape', player) or state.has('Mirror Shield', player)) set_rule(world.get_location('Turtle Rock - Eye Bridge - Top Left', player), lambda state: state.can_avoid_lasers(player))
set_rule(world.get_location('Turtle Rock - Eye Bridge - Top Right', player), lambda state: state.has('Cane of Byrna', player) or state.has('Cape', player) or state.has('Mirror Shield', player)) set_rule(world.get_location('Turtle Rock - Eye Bridge - Top Right', player), lambda state: state.can_avoid_lasers(player))
set_defeat_dungeon_boss_rule(world.get_location('Turtle Rock - Boss', player)) set_defeat_dungeon_boss_rule(world.get_location('Turtle Rock - Boss', player))
set_defeat_dungeon_boss_rule(world.get_location('Turtle Rock - Prize', player)) set_defeat_dungeon_boss_rule(world.get_location('Turtle Rock - Prize', player))