From b5ed6150e8d16a9d1b08d28acbe78b1c4d8a4a89 Mon Sep 17 00:00:00 2001 From: NoiseCrush <168460988+NoiseCrush@users.noreply.github.com> Date: Tue, 20 Aug 2024 00:20:17 -0400 Subject: [PATCH] Fix some wrong assumptions about Lower Norfair --- locations.py | 2 +- logic.py | 11 +++++++++++ regions.py | 1 + rules.py | 27 ++++++++++++++++++++++++--- 4 files changed, 37 insertions(+), 4 deletions(-) diff --git a/locations.py b/locations.py index a5ea5df..6528508 100644 --- a/locations.py +++ b/locations.py @@ -137,7 +137,7 @@ def __init__(self, reg, id): "Chozodia Chozo Ghost Area Long Shinespark": LocationData("Chozodia Ruins Test Area", AP_MZM_ID_BASE + 94), "Chozodia Pirate Pitfall Trap": LocationData("Chozodia Mothership Central", AP_MZM_ID_BASE + 95), #TODO renamed "Chozodia Behind Workbot": LocationData("Chozodia Mothership Central", AP_MZM_ID_BASE + 96), #TODO Renamed - "Chozodia Mothership Ceiling Near ZSS Start": LocationData("Chozodia Mothership Central", AP_MZM_ID_BASE + 97), + "Chozodia Ceiling Near Map Station": LocationData("Chozodia Mothership Central", AP_MZM_ID_BASE + 97), #TODO renamed "Chozodia Under Mecha Ridley Hallway": LocationData("Chozodia Mecha Ridley Hallway", AP_MZM_ID_BASE + 98), "Chozodia Southeast Corner In Hull": LocationData("Chozodia Mothership Central", AP_MZM_ID_BASE + 99), "Chozo Ghost": LocationData("Chozodia Ruins Test Area", None), diff --git a/logic.py b/logic.py index ad606c8..747e122 100644 --- a/logic.py +++ b/logic.py @@ -480,6 +480,13 @@ def lower_norfair_to_screwattack(): ) +def screw_to_lower_norfair(): + return any( + MissileCount(4), + ScrewAttack + ) + + def lower_norfair_to_kraid(): return all( ScrewAttack, @@ -528,6 +535,10 @@ def lower_norfair_to_bottom_norfair(): return all( MissileCount(2), SpeedBooster, + any( + VariaSuit, + Hellrun(1) + ), any( WaveBeam, CanTrickySparks diff --git a/regions.py b/regions.py index 92397e6..81055d9 100644 --- a/regions.py +++ b/regions.py @@ -98,6 +98,7 @@ def create_regions_and_connections(world: MZMWorld): connect(multiworld, player, "Lower Norfair -> Bottom", "Lower Norfair", "Norfair Bottom", lower_norfair_to_bottom_norfair().create_rule(world)) connect(multiworld, player, "Norfair -> Ridley Elevator", "Norfair Bottom", "Ridley Main", bottom_norfair_to_ridley().create_rule(world)) connect(multiworld, player, "Norfair Bottom -> Screw Attack", "Norfair Bottom", "Norfair Screw Attack Area", bottom_norfair_to_screw().create_rule(world)) + connect(multiworld, player, "Norfair Screw Attack -> Lower Norfair", "Norfair Screw Attack Area", "Lower Norfair", screw_to_lower_norfair().create_rule(world)) connect(multiworld, player, "Ridley Elevator -> Left Shaft", "Ridley Main", "Ridley Left Shaft", ridley_main_to_left_shaft().create_rule(world)) connect(multiworld, player, "Ridley Elevator -> Right Shaft Shortcut", "Ridley Main", "Ridley Right Shaft", ridley_main_to_right_shaft().create_rule(world)) connect(multiworld, player, "Ridley Left Shaft -> SW Puzzle", "Ridley Left Shaft", "Ridley SW Puzzle", ridley_left_shaft_to_sw_puzzle().create_rule(world)) diff --git a/rules.py b/rules.py index 2d8ff88..005368f 100644 --- a/rules.py +++ b/rules.py @@ -334,8 +334,29 @@ CanVerticalWall, ), "Norfair Wave Beam": MissileCount(4), - "Norfair Heated Room Below Wave - Left": None, - "Norfair Heated Room Below Wave - Right": None, + "Norfair Heated Room Below Wave - Left": all( + CanVerticalWall, + any( + VariaSuit, + Hellrun(2) + ), + any( + CanIBJ, + HiJump, + PowerGrip, + all( + IceBeam, + Bomb + ) + ) + ), + "Norfair Heated Room Below Wave - Right": all( + CanVerticalWall, + any( + VariaSuit, + Hellrun(2) + ) + ), } norfair_screwattack = { @@ -725,7 +746,7 @@ ) ), "Chozodia Behind Workbot": MissileCount(5), - "Chozodia Mothership Ceiling Near ZSS Start": all( + "Chozodia Ceiling Near Map Station": all( Missiles, any( PowerBombs,