diff --git a/helpers.json b/helpers.json index 1da8dab42..71ae0e2a3 100644 --- a/helpers.json +++ b/helpers.json @@ -1006,6 +1006,15 @@ ]} ] }, + { + "name": "h_carefullyDestroyBombWalls", + "requires": [ + {"or": [ + "h_bombThings", + "h_avoidScrewStuck" + ]} + ] + }, { "name": "h_additionalBomb", "requires": [ @@ -1034,6 +1043,19 @@ ]} ] }, + { + "name": "h_avoidScrewStuck", + "requires": [ + "ScrewAttack", + {"or": [ + "Morph", + "canCarefulJump" + ]} + ], + "devNote": [ + "ScrewAttack can create 2 tile high spaces with Samus in spinjump leading to a crouch, resulting in a potential softlock." + ] + }, { "name": "h_shinechargeMaxRunway", "requires": [ diff --git a/region/brinstar/pink/Dachora Room.json b/region/brinstar/pink/Dachora Room.json index 529982655..6ffd9881d 100644 --- a/region/brinstar/pink/Dachora Room.json +++ b/region/brinstar/pink/Dachora Room.json @@ -207,7 +207,7 @@ ]}, {"and": [ "canDash", - "ScrewAttack", + "h_avoidScrewStuck", {"cycleFrames": 620} ]}, {"and": [ @@ -404,7 +404,7 @@ "requires": [ {"or": [ "h_getBlueSpeedMaxRunway", - "h_destroyBombWalls", + "h_carefullyDestroyBombWalls", {"obstaclesCleared": ["A"]} ]} ], @@ -1106,7 +1106,7 @@ "h_getBlueSpeedMaxRunway", "canCarefulJump" ]}, - "h_destroyBombWalls", + "h_carefullyDestroyBombWalls", {"obstaclesCleared": ["A"]} ]} ], diff --git a/region/crateria/central/Landing Site.json b/region/crateria/central/Landing Site.json index a6e47ee59..c94b2c122 100644 --- a/region/crateria/central/Landing Site.json +++ b/region/crateria/central/Landing Site.json @@ -558,7 +558,7 @@ "name": "Base", "requires": [ {"or": [ - "h_destroyBombWalls", + "h_carefullyDestroyBombWalls", {"obstaclesCleared": ["A"]} ]} ], @@ -822,7 +822,7 @@ "requires": [ "canSpeedyJump", "canCarefulJump", - "ScrewAttack" + "h_avoidScrewStuck" ], "clearsObstacles": ["A"], "flashSuitChecked": true, @@ -1699,7 +1699,7 @@ ]} ]}, {"or": [ - "h_destroyBombWalls", + "h_carefullyDestroyBombWalls", {"obstaclesCleared": ["A"]} ]} ], @@ -1746,7 +1746,7 @@ "h_storedSpark", "canMidairShinespark", {"shinespark": {"frames": 31, "excessFrames": 2}}, - "h_destroyBombWalls" + "h_carefullyDestroyBombWalls" ], "clearsObstacles": ["A"], "flashSuitChecked": true, @@ -1951,7 +1951,7 @@ "canJumpIntoIBJ" ]}, {"or": [ - "h_destroyBombWalls", + "h_carefullyDestroyBombWalls", {"obstaclesCleared": ["A"]} ]} ], @@ -1969,9 +1969,9 @@ {"obstaclesCleared": ["A"]}, "h_bombThings", {"and": [ - "ScrewAttack", + "h_avoidScrewStuck", {"or": [ - "canTwoTileSqueeze", + "canTunnelCrawl", "canSpeedyJump", {"and": [ "canXRayStandUp", @@ -2008,7 +2008,7 @@ "requires": [ "h_storedSpark", {"shinespark": {"frames": 7, "excessFrames": 2}}, - "h_destroyBombWalls" + "h_carefullyDestroyBombWalls" ], "clearsObstacles": ["A"], "flashSuitChecked": true, diff --git a/region/crateria/west/Gauntlet Energy Tank Room.json b/region/crateria/west/Gauntlet Energy Tank Room.json index 30d4b45ec..8ad0cf876 100644 --- a/region/crateria/west/Gauntlet Energy Tank Room.json +++ b/region/crateria/west/Gauntlet Energy Tank Room.json @@ -569,7 +569,7 @@ {"acidFrames": 35} ]}, {"or": [ - "ScrewAttack", + "h_avoidScrewStuck", {"obstaclesCleared": ["A", "B"]} ]} ], @@ -1334,7 +1334,7 @@ {"acidFrames": 35} ]}, {"or": [ - "ScrewAttack", + "h_avoidScrewStuck", {"and": [ {"obstaclesCleared": ["A"]}, {"obstaclesCleared": ["B"]} diff --git a/region/crateria/west/Gauntlet Entrance.json b/region/crateria/west/Gauntlet Entrance.json index 3261db3c8..a60f24645 100644 --- a/region/crateria/west/Gauntlet Entrance.json +++ b/region/crateria/west/Gauntlet Entrance.json @@ -363,7 +363,7 @@ "link": [1, 2], "name": "Base", "requires": [ - "ScrewAttack", + "h_avoidScrewStuck", {"or": [ "canCarefulJump", {"acidFrames": 15} @@ -797,7 +797,7 @@ "link": [2, 1], "name": "Base", "requires": [ - "ScrewAttack", + "h_avoidScrewStuck", {"or": [ "canCarefulJump", {"acidFrames": 15} diff --git a/region/lowernorfair/east/Pillar Room.json b/region/lowernorfair/east/Pillar Room.json index 5473eda1b..d56b9e62c 100644 --- a/region/lowernorfair/east/Pillar Room.json +++ b/region/lowernorfair/east/Pillar Room.json @@ -144,7 +144,12 @@ "ScrewAttack", {"or": [ "canCarefulJump", - {"heatFrames": 60} + {"and": [ + "Morph", + "Gravity", + {"acidFrames": 20}, + {"heatFrames": 60} + ]} ]}, {"heatFrames": 480} ], diff --git a/schema/m3-string-requirements.schema.json b/schema/m3-string-requirements.schema.json index 8180fb8c4..3dbeced69 100644 --- a/schema/m3-string-requirements.schema.json +++ b/schema/m3-string-requirements.schema.json @@ -401,9 +401,11 @@ "h_usePowerBomb", "h_bombThings", "h_destroyBombWalls", + "h_carefullyDestroyBombWalls", "h_additionalBomb", "h_useSpringBall", "h_hasBeamUpgrade", + "h_avoidScrewStuck", "h_shinechargeMaxRunway", "h_getBlueSpeedMaxRunway", "h_shinechargeSlideTemporaryBlue",