From 8d3aa7e2d254bcf87a260e020e5d6f03e84e9ab3 Mon Sep 17 00:00:00 2001 From: CookieCat Date: Thu, 19 Oct 2023 15:38:33 -0400 Subject: [PATCH] Final touch-ups for 1.3 --- AHITClient.py | 4 ---- worlds/ahit/Locations.py | 2 +- worlds/ahit/Rules.py | 18 ++++++++++++++---- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/AHITClient.py b/AHITClient.py index 5ea3aff85c..64d1e998bd 100644 --- a/AHITClient.py +++ b/AHITClient.py @@ -128,10 +128,6 @@ class AHITContext(CommonContext): if cmd != "PrintJSON": self.server_msgs.append(encode([args])) - # def on_deathlink(self, data: Dict[str, Any]): - # self.server_msgs.append(encode([data])) - # super().on_deathlink(data) - def run_gui(self): from kvui import GameManager diff --git a/worlds/ahit/Locations.py b/worlds/ahit/Locations.py index 64f1074d7f..b398ffbfd2 100644 --- a/worlds/ahit/Locations.py +++ b/worlds/ahit/Locations.py @@ -494,7 +494,7 @@ storybook_pages = { "Rumbi Factory - Page: Manhole": LocData(2000345891, "Time Rift - Rumbi Factory", dlc_flags=HatDLC.dlc2), "Rumbi Factory - Page: Shutter Doors": LocData(2000345888, "Time Rift - Rumbi Factory", dlc_flags=HatDLC.dlc2), "Rumbi Factory - Page: Toxic Waste Dispenser": LocData(2000345892, "Time Rift - Rumbi Factory", dlc_flags=HatDLC.dlc2), - "Rumbi Factory - Page: 20003rd Area Ledge": LocData(2000345889, "Time Rift - Rumbi Factory", dlc_flags=HatDLC.dlc2), + "Rumbi Factory - Page: 3rd Area Ledge": LocData(2000345889, "Time Rift - Rumbi Factory", dlc_flags=HatDLC.dlc2), "Rumbi Factory - Page: Green Box Assembly Line": LocData(2000345884, "Time Rift - Rumbi Factory", dlc_flags=HatDLC.dlc2), "Rumbi Factory - Page: Broken Window": LocData(2000345885, "Time Rift - Rumbi Factory", dlc_flags=HatDLC.dlc2), "Rumbi Factory - Page: Money Vault": LocData(2000345890, "Time Rift - Rumbi Factory", dlc_flags=HatDLC.dlc2), diff --git a/worlds/ahit/Rules.py b/worlds/ahit/Rules.py index 5d0377e235..d08c1411a0 100644 --- a/worlds/ahit/Rules.py +++ b/worlds/ahit/Rules.py @@ -372,6 +372,7 @@ def set_specific_rules(world: World): lambda state: state.has("Time Piece", world.player, 4)) set_mafia_town_rules(world) + set_botb_rules(world) set_subcon_rules(world) set_alps_rules(world) @@ -428,6 +429,10 @@ def set_moderate_rules(world: World): # Moderate: Twilight Path without Dweller Mask set_rule(world.multiworld.get_location("Alpine Skyline - The Twilight Path", world.player), lambda state: True) + # Moderate: Mystifying Time Mesa time trial without hats + set_rule(world.multiworld.get_location("Alpine Skyline - Mystifying Time Mesa: Zipline", world.player), + lambda state: can_use_hookshot(state, world)) + # Moderate: Finale without Hookshot set_rule(world.multiworld.get_location("Act Completion (The Finale)", world.player), lambda state: can_use_hat(state, world, HatType.DWELLER)) @@ -486,10 +491,6 @@ def set_hard_rules(world: World): add_rule(world.multiworld.get_location("Act Completion (Time Rift - Curly Tail Trail)", world.player), lambda state: can_sdj(state, world), "or") - # Hard: Mystifying Time Mesa time trial without hats - set_rule(world.multiworld.get_location("Alpine Skyline - Mystifying Time Mesa: Zipline", world.player), - lambda state: can_use_hookshot(state, world)) - # Finale Telescope with only Ice Hat add_rule(world.multiworld.get_entrance("Telescope -> Time's End", world.player), lambda state: can_use_hat(state, world, HatType.ICE), "or") @@ -639,6 +640,15 @@ def set_mafia_town_rules(world: World): and state.has("Scooter Badge", world.player), "or") +def set_botb_rules(world: World): + if world.multiworld.UmbrellaLogic[world.player].value == 0 and get_difficulty(world) < Difficulty.MODERATE: + for loc in world.multiworld.get_region("Dead Bird Studio - Post Elevator Area", world.player).locations: + set_rule(loc, lambda state: state.has("Umbrella", world.player) or can_use_hat(state, world, HatType.BREWING)) + + set_rule(world.multiworld.get_location("Act Completion (Dead Bird Studio)", world.player), + lambda state: state.has("Umbrella", world.player) or can_use_hat(state, world, HatType.BREWING)) + + def set_subcon_rules(world: World): set_rule(world.multiworld.get_location("Act Completion (Time Rift - Village)", world.player), lambda state: can_use_hat(state, world, HatType.BREWING) or state.has("Umbrella", world.player)