From ed5c27db2726d1780c4b2468857c06e863312794 Mon Sep 17 00:00:00 2001 From: Brent Kerby Date: Thu, 7 Aug 2025 20:10:11 -0600 Subject: [PATCH 1/2] Volcano Room and Speed Booster Hall CFs --- helpers.json | 8 ++-- region/norfair/east/Speed Booster Hall.json | 44 +++++++++++++++++++++ region/norfair/east/Volcano Room.json | 13 ++++++ 3 files changed, 61 insertions(+), 4 deletions(-) diff --git a/helpers.json b/helpers.json index 33d0f2e95b..cf6e3a7088 100644 --- a/helpers.json +++ b/helpers.json @@ -816,7 +816,7 @@ { "name": "h_heatedCrystalFlash", "requires": [ - {"heatFrames": 185}, + {"simpleHeatFrames": 185}, {"or": [ {"and": [ "h_heatProof", @@ -825,7 +825,7 @@ "canHeatedCrystalFlash" ]}, "h_heatedCrystalFlashRefill", - {"heatFrames": 20} + {"simpleHeatFrames": 20} ], "devNote": [ "These requirements are tight but include time to morph before laying the Power Bomb and to land after the Crystal Flash refill completes." @@ -834,7 +834,7 @@ { "name": "h_heatedLavaCrystalFlash", "requires": [ - {"heatFrames": 185}, + {"simpleHeatFrames": 185}, {"lavaFrames": 185}, {"or": [ {"and": [ @@ -862,7 +862,7 @@ { "name": "h_heatedAcidCrystalFlash", "requires": [ - {"heatFrames": 185}, + {"simpleHeatFrames": 185}, {"acidFrames": 185}, "canHeatedCrystalFlash", "h_heatedAcidCrystalFlashRefill", diff --git a/region/norfair/east/Speed Booster Hall.json b/region/norfair/east/Speed Booster Hall.json index b6497659ab..ff1075166b 100644 --- a/region/norfair/east/Speed Booster Hall.json +++ b/region/norfair/east/Speed Booster Hall.json @@ -277,6 +277,28 @@ ], "note": "Shoot from the middle of the second set of crumble blocks from the left." }, + { + "link": [1, 2], + "name": "Double Crystal Flash", + "requires": [ + {"simpleHeatFrames": 160}, + {"heatFrames": 40}, + "h_heatedCrystalFlash", + {"simpleHeatFrames": 140}, + {"heatFrames": 40}, + "h_heatedCrystalFlash", + {"simpleHeatFrames": 240}, + {"heatFrames": 30} + ], + "note": [ + "Use a Crystal Flash after crossing 3 crumble block bridges,", + "and a second Crystal Flash after crossing 3 more." + ], + "detailNote": [ + "In order to cross without tanks or Speed Booster,", + "some arm pumping is helpful but not required." + ] + }, { "id": 10, "link": [1, 2], @@ -557,6 +579,28 @@ "The obstacle being broken means Samus has run far enough to charge a shinespark." ] }, + { + "link": [2, 1], + "name": "Double Crystal Flash", + "requires": [ + {"obstaclesNotCleared": ["A"]}, + {"simpleHeatFrames": 135}, + {"heatFrames": 40}, + "h_heatedCrystalFlash", + {"simpleHeatFrames": 130}, + {"heatFrames": 40}, + "h_heatedCrystalFlash", + {"simpleHeatFrames": 280}, + {"heatFrames": 30} + ], + "note": [ + "Use a Crystal Flash after crossing 4 crumble block bridges,", + "and a second Crystal Flash in the middle of the large ramp in the center of the room." + ], + "detailNote": [ + "This allows crossing the room without tanks or Speed Booster." + ] + }, { "id": 19, "link": [2, 1], diff --git a/region/norfair/east/Volcano Room.json b/region/norfair/east/Volcano Room.json index a47328c3fd..02aefffde4 100644 --- a/region/norfair/east/Volcano Room.json +++ b/region/norfair/east/Volcano Room.json @@ -378,6 +378,19 @@ } ] }, + { + "link": [2, 1], + "name": "Crystal Flash below Shot Blocks", + "requires": [ + {"heatFrames": 180}, + "h_heatedCrystalFlash", + {"heatFrames": 250} + ], + "devNote": [ + "FIXME: by adding a junction here, we could account for more ways of entering the room;", + "but a junction would complicate how the heated/unheated state of the room is tracked." + ] + }, { "id": 10, "link": [2, 1], From 119bdf94c817007bff81100e5d876aa0083c3bc9 Mon Sep 17 00:00:00 2001 From: Brent Kerby Date: Sat, 9 Aug 2025 20:25:32 -0600 Subject: [PATCH 2/2] more heated CFs --- .../lowernorfair/east/Mickey Mouse Room.json | 10 +++++ region/norfair/east/Single Chamber.json | 42 ++++++++++++++++--- region/norfair/east/Speed Booster Hall.json | 3 ++ .../norfair/east/Spiky Platforms Tunnel.json | 41 ++++++++++++++++++ .../east/Upper Norfair Farming Room.json | 9 ++++ region/norfair/west/Ice Beam Snake Room.json | 8 ++++ 6 files changed, 108 insertions(+), 5 deletions(-) diff --git a/region/lowernorfair/east/Mickey Mouse Room.json b/region/lowernorfair/east/Mickey Mouse Room.json index 6788e57947..f80d46975e 100644 --- a/region/lowernorfair/east/Mickey Mouse Room.json +++ b/region/lowernorfair/east/Mickey Mouse Room.json @@ -1211,6 +1211,16 @@ ], "clearsObstacles": ["D"] }, + { + "link": [4, 6], + "name": "Cross with Crystal Flash", + "requires": [ + "h_usePowerBomb", + {"heatFrames": 260}, + "h_heatedCrystalFlash", + {"heatFrames": 120} + ] + }, { "id": 52, "link": [6, 1], diff --git a/region/norfair/east/Single Chamber.json b/region/norfair/east/Single Chamber.json index 91f9eb542b..d79bfa9285 100644 --- a/region/norfair/east/Single Chamber.json +++ b/region/norfair/east/Single Chamber.json @@ -2151,7 +2151,7 @@ "requires": [ "Morph", "ScrewAttack", - {"heatFrames": 780} + {"heatFrames": 600} ] }, { @@ -2160,7 +2160,7 @@ "name": "Power Bomb", "requires": [ "h_usePowerBomb", - {"heatFrames": 850} + {"heatFrames": 660} ] }, { @@ -2169,7 +2169,36 @@ "name": "Bombs", "requires": [ "h_useMorphBombs", - {"heatFrames": 1130} + {"heatFrames": 730} + ] + }, + { + "link": [5, 6], + "name": "Cross with Crystal Flash (Early Position)", + "requires": [ + {"heatFrames": 250}, + "h_heatedCrystalFlash", + {"heatFrames": 380} + ] + }, + { + "link": [5, 6], + "name": "Cross with Crystal Flash (Later Position)", + "requires": [ + {"heatFrames": 450}, + {"or": [ + "ScrewAttack", + {"and": [ + "h_usePowerBomb", + {"heatFrames": 40} + ]}, + {"and": [ + "h_useMorphBombs", + {"heatFrames": 80} + ]} + ]}, + "h_heatedCrystalFlash", + {"heatFrames": 250} ] }, { @@ -2180,8 +2209,11 @@ {"or": [ "canWalljump", "HiJump", - "SpaceJump", - "h_crouchJumpDownGrab" + "h_crouchJumpDownGrab", + {"and": [ + "SpaceJump", + {"heatFrames": 40} + ]} ]}, {"heatFrames": 100} ], diff --git a/region/norfair/east/Speed Booster Hall.json b/region/norfair/east/Speed Booster Hall.json index ff1075166b..29b3105c6f 100644 --- a/region/norfair/east/Speed Booster Hall.json +++ b/region/norfair/east/Speed Booster Hall.json @@ -599,6 +599,9 @@ ], "detailNote": [ "This allows crossing the room without tanks or Speed Booster." + ], + "devNote": [ + "FIXME: this may not be possible if the lava is rising (with Speed Booster and the flag not yet set)." ] }, { diff --git a/region/norfair/east/Spiky Platforms Tunnel.json b/region/norfair/east/Spiky Platforms Tunnel.json index 1099fb0791..98cb695445 100644 --- a/region/norfair/east/Spiky Platforms Tunnel.json +++ b/region/norfair/east/Spiky Platforms Tunnel.json @@ -289,6 +289,27 @@ "Only one of these frames gives a normal IBJ, which shouldn't be expected (1 frame for the first Bomb, then 3 frames for the second)." ] }, + { + "link": [1, 2], + "name": "Crystal Flash and Lava Bath", + "requires": [ + "canSuitlessLavaDive", + {"heatFrames": 425}, + "h_heatedCrystalFlash", + {"heatFrames": 300}, + {"lavaFrames": 70} + ], + "note": [ + "Ride the first Tripper, using Morph to avoid spike damage, then perform a Crystal Flash.", + "The second Tripper will likely either be destroyed or in a bad pattern,", + "making it necessary to jump through the lava to cross the rest of the room." + ], + "detailNote": [ + "It may help to use the Tripper to do a big jump past the shutter before doing the Crystal Flash;", + "otherwise the shutter might end up closed and get in the way." + ] + }, + { "id": 9, "link": [2, 1], @@ -422,6 +443,26 @@ ], "note": ["Perform a bounceball to minimize lava damage.", "Ride the second Tripper."] }, + { + "link": [2, 1], + "name": "Crystal Flash and Lava Bath", + "requires": [ + "canSuitlessLavaDive", + {"heatFrames": 425}, + "h_heatedCrystalFlash", + {"heatFrames": 300}, + {"lavaFrames": 70} + ], + "note": [ + "Ride the first Tripper, using Morph to avoid spike damage, then perform a Crystal Flash.", + "The second Tripper will likely either be destroyed or in a bad pattern,", + "making it necessary to jump through the lava to cross the rest of the room." + ], + "detailNote": [ + "It may help to use the Tripper to do a big jump past the shutter before doing the Crystal Flash;", + "otherwise the shutter might end up closed and get in the way." + ] + }, { "id": 24, "link": [2, 1], diff --git a/region/norfair/east/Upper Norfair Farming Room.json b/region/norfair/east/Upper Norfair Farming Room.json index 2ccce374b7..1bfc5e2107 100644 --- a/region/norfair/east/Upper Norfair Farming Room.json +++ b/region/norfair/east/Upper Norfair Farming Room.json @@ -129,6 +129,7 @@ "to": [ {"id": 1}, {"id": 3}, + {"id": 4}, {"id": 5} ] }, @@ -1013,6 +1014,14 @@ } ] }, + { + "link": [4, 4], + "name": "Crystal Flash", + "requires": [ + "h_heatedCrystalFlash" + ], + "flashSuitChecked": true + }, { "id": 35, "link": [4, 5], diff --git a/region/norfair/west/Ice Beam Snake Room.json b/region/norfair/west/Ice Beam Snake Room.json index d9db1918be..2c2c3d2bdd 100644 --- a/region/norfair/west/Ice Beam Snake Room.json +++ b/region/norfair/west/Ice Beam Snake Room.json @@ -1584,6 +1584,14 @@ "requires": [ {"heatFrames": 50} ] + }, + { + "link": [5, 5], + "name": "Crystal Flash", + "requires": [ + "h_heatedCrystalFlash" + ], + "flashSuitChecked": true } ], "notables": [],