From c47687dd21719d548b31995192e72e3fa8424d83 Mon Sep 17 00:00:00 2001 From: Rosalie <61372066+Rosalie-A@users.noreply.github.com> Date: Sat, 31 Jan 2026 14:08:40 -0500 Subject: [PATCH] TLOZ: Move completion condition to be before set_rules is complete (#5391) --- worlds/tloz/Rules.py | 9 +++++++++ worlds/tloz/__init__.py | 8 +------- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/worlds/tloz/Rules.py b/worlds/tloz/Rules.py index de627a533b..6d9e474532 100644 --- a/worlds/tloz/Rules.py +++ b/worlds/tloz/Rules.py @@ -12,6 +12,15 @@ def set_rules(tloz_world: "TLoZWorld"): player = tloz_world.player options = tloz_world.options + tloz_world.multiworld.completion_condition[player] = lambda state: state.has("Rescued Zelda!", player) + ganon = tloz_world.multiworld.get_location("Ganon", player) + ganon.place_locked_item(tloz_world.create_event("Triforce of Power")) + add_rule(ganon, lambda state: state.has("Silver Arrow", player) and state.has("Bow", player)) + + tloz_world.multiworld.get_location("Zelda", player).place_locked_item(tloz_world.create_event("Rescued Zelda!")) + add_rule(tloz_world.multiworld.get_location("Zelda", player), + lambda state: state.has("Triforce of Power", player)) + # Boss events for a nicer spoiler log play through for level in range(1, 9): boss = tloz_world.get_location(f"Level {level} Boss") diff --git a/worlds/tloz/__init__.py b/worlds/tloz/__init__.py index c8c76bd85a..da347c752a 100644 --- a/worlds/tloz/__init__.py +++ b/worlds/tloz/__init__.py @@ -188,14 +188,8 @@ class TLoZWorld(World): set_rules = set_rules def generate_basic(self): - ganon = self.multiworld.get_location("Ganon", self.player) - ganon.place_locked_item(self.create_event("Triforce of Power")) - add_rule(ganon, lambda state: state.has("Silver Arrow", self.player) and state.has("Bow", self.player)) + pass - self.multiworld.get_location("Zelda", self.player).place_locked_item(self.create_event("Rescued Zelda!")) - add_rule(self.multiworld.get_location("Zelda", self.player), - lambda state: state.has("Triforce of Power", self.player)) - self.multiworld.completion_condition[self.player] = lambda state: state.has("Rescued Zelda!", self.player) def apply_base_patch(self, rom): # The base patch source is on a different repo, so here's the summary of changes: