diff --git a/BaseClasses.py b/BaseClasses.py index 73882607..384ce313 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -1262,7 +1262,8 @@ class CollectionState(object): return self.has('Fire Rod', player) or (self.has('Bombos', player) and self.has_sword(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): if self.has_Pearl(player): diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 5d8f02b2..a127018c 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -143,6 +143,7 @@ These are now independent of retro mode and have three options: None, Random, an * 1.4.1.0v * 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? * 1.4.0.1v * Key logic: Vanilla key logic fixes. Statically set some HC logic and PoD front door diff --git a/Rules.py b/Rules.py index f5977389..9abc4887 100644 --- a/Rules.py +++ b/Rules.py @@ -504,10 +504,10 @@ def global_rules(world, 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 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 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 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 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 Left', player), lambda state: state.can_avoid_lasers(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.can_avoid_lasers(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 - Prize', player))