From 6bf3479e08d7e48d16514d2755dc4dcd6a5821bc Mon Sep 17 00:00:00 2001 From: StructuralMike <66819228+StructuralMike@users.noreply.github.com> Date: Tue, 16 Mar 2021 14:15:56 +0100 Subject: [PATCH 1/2] TFH playthrough fix copy_world overwrites Murahdahla's logic and either needs to be reset through set_rules to work properly. --- ItemList.py | 1 - Rules.py | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/ItemList.py b/ItemList.py index ddb629ab..dacd47b9 100644 --- a/ItemList.py +++ b/ItemList.py @@ -196,7 +196,6 @@ def generate_itempool(world, player): region = world.get_region('Light World',player) loc = Location(player, "Murahdahla", parent=region) - loc.access_rule = lambda state: state.item_count('Triforce Piece', player) + state.item_count('Power Star', player) >= state.world.treasure_hunt_count[player] region.locations.append(loc) world.dynamic_locations.append(loc) diff --git a/Rules.py b/Rules.py index ceeeecbf..d61f1a14 100644 --- a/Rules.py +++ b/Rules.py @@ -41,6 +41,8 @@ def set_rules(world, player): elif world.goal[player] == 'ganon': # require aga2 to beat ganon add_rule(world.get_location('Ganon', player), lambda state: state.has('Beat Agahnim 2', player)) + elif world.goal[player] == 'triforcehunt': + add_rule(world.get_location('Murahdahla', player), lambda state: state.item_count('Triforce Piece', player) + state.item_count('Power Star', player) >= state.world.treasure_hunt_count[player]) if world.mode[player] != 'inverted': set_big_bomb_rules(world, player) From 40119b3a5fc6992c9de76f8e830d32179ca19907 Mon Sep 17 00:00:00 2001 From: StructuralMike <66819228+StructuralMike@users.noreply.github.com> Date: Tue, 16 Mar 2021 17:34:08 +0100 Subject: [PATCH 2/2] Retro-Standard can't have bow on uncle I don't know if the best solution is to exclude the bow from the options, or to have uncle give bow + arrows. I think the former is better as buying your arrow is part of retro. --- ItemList.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ItemList.py b/ItemList.py index dacd47b9..a1edaded 100644 --- a/ItemList.py +++ b/ItemList.py @@ -283,7 +283,7 @@ def generate_itempool(world, player): if not found_sword and world.swords[player] != 'swordless': found_sword = True possible_weapons.append(item) - if item in ['Progressive Bow', 'Bow'] and not found_bow: + if item in ['Progressive Bow', 'Bow'] and not found_bow and not world.retro[player]: found_bow = True possible_weapons.append(item) if item in ['Hammer', 'Fire Rod', 'Cane of Somaria', 'Cane of Byrna']: