From 471260a3d014dd1ce4569dc5e325b5d6209f87b7 Mon Sep 17 00:00:00 2001 From: Brent Kerby Date: Sat, 2 Aug 2025 21:11:40 -0600 Subject: [PATCH 1/4] Super sinks --- .../green/Green Brinstar Main Shaft.json | 11 ++++ region/brinstar/green/Spore Spawn Room.json | 11 ++++ .../pink/Mission Impossible Room.json | 12 ++++ region/brinstar/red/Below Spazer.json | 11 ++++ region/brinstar/red/Beta Power Bomb Room.json | 16 ++++++ region/crateria/central/Climb.json | 11 ++++ region/crateria/east/West Ocean.json | 11 ++++ .../lowernorfair/west/Acid Statue Room.json | 53 ++++++++++++++++++ .../lowernorfair/west/Screw Attack Room.json | 13 +++++ region/maridia/inner-pink/Colosseum.json | 17 +++++- region/maridia/outer/Main Street.json | 25 +++++++++ region/maridia/outer/Maridia Tube.json | 11 ++++ region/maridia/outer/Mt. Everest.json | 47 ++++++++++++++++ .../norfair/crocomire/Indiana Jones Room.json | 19 +++++++ .../tourian/main/Tourian Escape Room 3.json | 11 ++++ schema/m3-room.schema.json | 15 ++++- strats.md | 55 ++++++++++++++++++- tech.json | 15 +++++ 18 files changed, 361 insertions(+), 3 deletions(-) diff --git a/region/brinstar/green/Green Brinstar Main Shaft.json b/region/brinstar/green/Green Brinstar Main Shaft.json index 53c51f58be..ee5056d642 100644 --- a/region/brinstar/green/Green Brinstar Main Shaft.json +++ b/region/brinstar/green/Green Brinstar Main Shaft.json @@ -3571,6 +3571,17 @@ ], "note": ["Land in the right side of the third Samus Eater on the floor of Hellway."] }, + { + "link": [6, 13], + "name": "Super Sink", + "entranceCondition": { + "comeInWithSuperSink": {} + }, + "requires": [], + "note": [ + "Enter the room with a super sink, and hold left, to clip down past the Power Bomb blocks." + ] + }, { "id": 258, "link": [6, 16], diff --git a/region/brinstar/green/Spore Spawn Room.json b/region/brinstar/green/Spore Spawn Room.json index b653841f6a..416af6dccf 100644 --- a/region/brinstar/green/Spore Spawn Room.json +++ b/region/brinstar/green/Spore Spawn Room.json @@ -161,6 +161,17 @@ "FIXME: A different exact fall speed value changes the movements needed for the clip." ] }, + { + "link": [1, 2], + "name": "Super Sink", + "entranceCondition": { + "comeInWithSuperSink": {} + }, + "requires": [], + "note": [ + "Enter the room with a super sink, in order to clip down into the fight arena." + ] + }, { "id": 9, "link": [2, 1], diff --git a/region/brinstar/pink/Mission Impossible Room.json b/region/brinstar/pink/Mission Impossible Room.json index 377c829b17..50a12f974a 100644 --- a/region/brinstar/pink/Mission Impossible Room.json +++ b/region/brinstar/pink/Mission Impossible Room.json @@ -104,6 +104,7 @@ "from": 1, "to": [ {"id": 1}, + {"id": 2}, {"id": 4} ] }, @@ -422,6 +423,17 @@ "bypassesDoorShell": "free", "flashSuitChecked": true }, + { + "link": [1, 2], + "name": "Super Sink", + "entranceCondition": { + "comeInWithSuperSink": {} + }, + "requires": [], + "note": [ + "Enter the room with a super sink, in order to clip down to the door below." + ] + }, { "id": 13, "link": [1, 4], diff --git a/region/brinstar/red/Below Spazer.json b/region/brinstar/red/Below Spazer.json index e73641dcb9..860b6d1831 100644 --- a/region/brinstar/red/Below Spazer.json +++ b/region/brinstar/red/Below Spazer.json @@ -900,6 +900,17 @@ "requires": [], "note": "Moondance clip near the door to fall two tiles into the ground, then Moonfall again to continue clipping all the way to the area below." }, + { + "link": [3, 2], + "name": "Super Sink", + "entranceCondition": { + "comeInWithSuperSink": {} + }, + "requires": [], + "note": [ + "Enter the room with a super sink, in order to clip down through the floor." + ] + }, { "id": 38, "link": [3, 3], diff --git a/region/brinstar/red/Beta Power Bomb Room.json b/region/brinstar/red/Beta Power Bomb Room.json index dc78bfd110..90eb1861a2 100644 --- a/region/brinstar/red/Beta Power Bomb Room.json +++ b/region/brinstar/red/Beta Power Bomb Room.json @@ -522,6 +522,22 @@ "It can be helpful to use a Super to kill the first Yapping Maw." ] }, + { + "link": [1, 2], + "name": "Super Sink", + "entranceCondition": { + "comeInWithSuperSink": {} + }, + "requires": [ + "h_useSpringBall", + {"thornHits": 3}, + {"samusEaterFrames": 160} + ], + "note": [ + "Enter the room with a super sink, and hold left, in order to clip down through the Power Bomb blocks.", + "Use Spring Ball to navigate the thorns and Samus Eaters with limited damage." + ] + }, { "id": 19, "link": [2, 1], diff --git a/region/crateria/central/Climb.json b/region/crateria/central/Climb.json index 762877d13e..7839c02d58 100644 --- a/region/crateria/central/Climb.json +++ b/region/crateria/central/Climb.json @@ -1139,6 +1139,17 @@ ], "devNote": "PBs cannot be used, as they will solidify the bomb blocks." }, + { + "link": [3, 4], + "name": "Super Sink", + "entranceCondition": { + "comeInWithSuperSink": {} + }, + "requires": [], + "note": [ + "Enter the room with a super sink, in order to clip down through several screens and reach the door below." + ] + }, { "id": 46, "link": [3, 6], diff --git a/region/crateria/east/West Ocean.json b/region/crateria/east/West Ocean.json index b9e8ab186f..ade3c22a6f 100644 --- a/region/crateria/east/West Ocean.json +++ b/region/crateria/east/West Ocean.json @@ -937,6 +937,17 @@ "Pose changing can send Samus inside of the walkway, where the right door connects to the WS main entrance door, and the left door connects to the Moat door." ] }, + { + "link": [3, 5], + "name": "Super Sink", + "entranceCondition": { + "comeInWithSuperSink": {} + }, + "requires": [], + "note": [ + "Enter the room with a super sink, in order to clip down several screens to the bottom part of the room." + ] + }, { "id": 26, "link": [3, 8], diff --git a/region/lowernorfair/west/Acid Statue Room.json b/region/lowernorfair/west/Acid Statue Room.json index dea78938a3..2a366836f9 100644 --- a/region/lowernorfair/west/Acid Statue Room.json +++ b/region/lowernorfair/west/Acid Statue Room.json @@ -107,6 +107,7 @@ "from": 1, "to": [ {"id": 1}, + {"id": 2}, {"id": 3}, {"id": 4}, {"id": 5} @@ -172,6 +173,58 @@ ], "flashSuitChecked": true }, + { + "link": [1, 2], + "name": "Super Sink", + "entranceCondition": { + "comeInWithSuperSink": {} + }, + "requires": [ + "canOffScreenMovement", + {"heatFrames": 360}, + {"acidFrames": 345}, + {"enemyDamage": {"enemy": "Magdollite", "type": "contact", "hits": 1}} + ], + "exitCondition": { + "leaveNormally": {} + }, + "unlocksDoors": [ + { + "types": ["missiles"], + "requires": [ + {"acidFrames": 75}, + {"heatFrames": 75} + ] + }, + { + "types": ["super"], + "requires": [ + {"acidFrames": 25}, + {"heatFrames": 25} + ] + }, + { + "types": ["powerbomb"], + "requires": [ + {"acidFrames": 90}, + {"heatFrames": 90} + ] + } + ], + "note": [ + "Enter the room with a super sink, in order to clip down to the bottom part of the room.", + "Blindly traverse to the right door.", + "It is recommended to open the door using Grapple if possible,", + "since it can reach the door from a distance even while off-camera whereas beams cannot." + ], + "devNote": [ + "FIXME: With better off-camera movement, this can be done with significantly less damage", + "(and with Gravity the Magdollite hit can also be avoided);", + "but after the supersink setup it's not clear if it's reasonable to assume any more than this.", + "FIXME: If the acid is already drained, then the requirements here could be reduced", + "(though in that case there's not as much reason to do this strat)." + ] + }, { "id": 3, "link": [1, 3], diff --git a/region/lowernorfair/west/Screw Attack Room.json b/region/lowernorfair/west/Screw Attack Room.json index 1bc74289ad..925f0a0e4c 100644 --- a/region/lowernorfair/west/Screw Attack Room.json +++ b/region/lowernorfair/west/Screw Attack Room.json @@ -2400,6 +2400,19 @@ {"types": ["missiles", "powerbomb"], "requires": ["never"]} ] }, + { + "link": [3, 2], + "name": "Super Sink", + "entranceCondition": { + "comeInWithSuperSink": {} + }, + "requires": [ + {"heatFrames": 115} + ], + "note": [ + "Enter the room with a super sink, in order to clip down to the door below." + ] + }, { "id": 40, "link": [3, 3], diff --git a/region/maridia/inner-pink/Colosseum.json b/region/maridia/inner-pink/Colosseum.json index 08317152dc..3d4878c536 100644 --- a/region/maridia/inner-pink/Colosseum.json +++ b/region/maridia/inner-pink/Colosseum.json @@ -2324,7 +2324,22 @@ "bypassesDoorShell": true, "note": [ "Land in the right side of the third Samus Eater on the floor of Hellway.", - "This allows Samus to get inside the air pocket below door.", + "This allows Samus to get inside the air pocket below the door.", + "From there use Grapple to clip inside the wall and down into the transition, bypassing the door lock below." + ] + }, + { + "link": [3, 2], + "name": "Super Sink", + "entranceCondition": { + "comeInWithSuperSink": {} + }, + "requires": [ + "canGrappleClip" + ], + "bypassesDoorShell": true, + "note": [ + "Enter the room with a super sink, and hold right, to clip down into the air pocket below the door.", "From there use Grapple to clip inside the wall and down into the transition, bypassing the door lock below." ] }, diff --git a/region/maridia/outer/Main Street.json b/region/maridia/outer/Main Street.json index 060c730517..d9946c4601 100644 --- a/region/maridia/outer/Main Street.json +++ b/region/maridia/outer/Main Street.json @@ -362,6 +362,7 @@ "from": 4, "to": [ {"id": 4}, + {"id": 5}, {"id": 6}, {"id": 9}, {"id": 10}, @@ -371,6 +372,7 @@ { "from": 5, "to": [ + {"id": 3}, {"id": 5}, {"id": 7} ] @@ -3934,6 +3936,18 @@ "gModeRegainMobility": {}, "flashSuitChecked": true }, + { + "link": [4, 5], + "name": "Super Sink", + "entranceCondition": { + "comeInWithSuperSink": {} + }, + "requires": [], + "note": [ + "Enter the room with a super sink, and move a couple tiles away from the door,", + "to clip down into the tunnel two screens below." + ] + }, { "id": 107, "link": [4, 6], @@ -4126,6 +4140,17 @@ "flashSuitChecked": true, "note": "Place bombs against the speed blocks until they are overloaded." }, + { + "link": [5, 3], + "name": "Super Sink", + "entranceCondition": { + "comeInWithSuperSink": {} + }, + "requires": [], + "note": [ + "Enter the room with a super sink, to clip down many screens to the bottom of the room." + ] + }, { "id": 112, "link": [5, 5], diff --git a/region/maridia/outer/Maridia Tube.json b/region/maridia/outer/Maridia Tube.json index 5c83d3592c..3983e84545 100644 --- a/region/maridia/outer/Maridia Tube.json +++ b/region/maridia/outer/Maridia Tube.json @@ -2421,6 +2421,17 @@ "canMoonfall" ] }, + { + "link": [3, 2], + "name": "Super Sink", + "entranceCondition": { + "comeInWithSuperSink": {} + }, + "requires": [], + "note": [ + "Enter the room with a super sink, to clip down to the bottom of the room." + ] + }, { "id": 50, "link": [3, 3], diff --git a/region/maridia/outer/Mt. Everest.json b/region/maridia/outer/Mt. Everest.json index 8ee81abfd1..a4c891ba63 100644 --- a/region/maridia/outer/Mt. Everest.json +++ b/region/maridia/outer/Mt. Everest.json @@ -366,6 +366,7 @@ "from": 8, "to": [ {"id": 1}, + {"id": 2}, {"id": 6}, {"id": 7}, {"id": 9}, @@ -4094,6 +4095,29 @@ } ] }, + { + "link": [7, 3], + "name": "Super Sink Door Lock Skip", + "requires": [ + "canSuperSink", + "Morph", + "SpringBall" + ], + "bypassesDoorShell": true, + "note": [ + "Swing clock-wise around the two Grapple blocks at the top of the room,", + "and release when Samus has high speed and is as far right as possible.", + "Quickly morph, pause frame-perfectly so that the pause hits just as Samus would land,", + "Equip or unequip Spring Ball in order to land on the door shell without bouncing.", + "If successful, Samus will continue to gain fall speed while resting on the door shell,", + "clipping through it after a few seconds." + ], + "detailNote": [ + "If Spring Ball is unequipped after bouncing, it will cause the game to crash after landing from the bounce.", + "To avoid this, do not unequip Spring Ball if the bouncing sound is heard before or while entering the pause menu.", + "Alternatively, equip rather than unequip Spring Ball." + ] + }, { "id": 231, "link": [7, 4], @@ -4707,6 +4731,29 @@ ], "flashSuitChecked": true }, + { + "link": [8, 2], + "name": "Super Sink Door Lock Skip", + "requires": [ + "canSuperSink", + "Morph", + "SpringBall" + ], + "bypassesDoorShell": true, + "note": [ + "Swing around the Powamp counter-clockwise,", + "and release when Samus has high speed and is as far left as possible.", + "Quickly morph, pause frame-perfectly so that the pause hits just as Samus would land,", + "Equip or unequip Spring Ball in order to land on the door shell without bouncing.", + "If successful, Samus will continue to gain fall speed while resting on the door shell,", + "clipping through it after a few seconds." + ], + "detailNote": [ + "If Spring Ball is unequipped after bouncing, it will cause the game to crash after landing from the bounce.", + "To avoid this, do not unequip Spring Ball if the bouncing sound is heard before or while entering the pause menu.", + "Alternatively, equip rather than unequip Spring Ball." + ] + }, { "id": 170, "link": [8, 6], diff --git a/region/norfair/crocomire/Indiana Jones Room.json b/region/norfair/crocomire/Indiana Jones Room.json index 91098ebfa4..bfb964f355 100644 --- a/region/norfair/crocomire/Indiana Jones Room.json +++ b/region/norfair/crocomire/Indiana Jones Room.json @@ -236,6 +236,25 @@ "resetsObstacles": ["A", "B", "E"], "farmCycleDrops": [{"enemy": "Ripper 2 (green)", "count": 4}] }, + { + "link": [1, 1], + "name": "Leave with Super Sink", + "requires": [ + {"enemyDamage": {"enemy": "Ripper 2 (green)", "type": "contact", "hits": 2}} + ], + "exitCondition": { + "leaveWithSuperSink": {} + }, + "note": [ + "Swing counter-clockwise around the left-most Ripper closely (pressing up to retract Grapple),", + "positioned as far left as possible while avoiding getting caught on the stalactite.", + "After swinging under the stalactite, hold down to extend Grapple to push Samus to the left slightly,", + "then release Grapple while Samus is still nearly horizontal.", + "Quickly morph and frame-perfectly pause to equip or unequip Spring Ball.", + "If successful, Samus will continue gaining fall speed while morphed.", + "Immediately roll left through the door, which should have been opened in advance." + ] + }, { "id": 3, "link": [1, 2], diff --git a/region/tourian/main/Tourian Escape Room 3.json b/region/tourian/main/Tourian Escape Room 3.json index 780122c37b..0ec096182c 100644 --- a/region/tourian/main/Tourian Escape Room 3.json +++ b/region/tourian/main/Tourian Escape Room 3.json @@ -562,6 +562,17 @@ "canMoonfall" ] }, + { + "link": [2, 1], + "name": "Super Sink", + "entranceCondition": { + "comeInWithSuperSink": {} + }, + "requires": [], + "note": [ + "Enter the room with a super sink, to clip down past the Speed blocks." + ] + }, { "id": 23, "link": [2, 1], diff --git a/schema/m3-room.schema.json b/schema/m3-room.schema.json index 7ff44f0f44..bad5e662d2 100644 --- a/schema/m3-room.schema.json +++ b/schema/m3-room.schema.json @@ -883,6 +883,12 @@ } } }, + "comeInWithSuperSink": { + "type": "object", + "description": "Represents that Samus must enter through this door while morphed and continuing to gain fall speed from a super sink.", + "additionalProperties": false, + "properties": {} + }, "comesThroughToilet": { "type": "string", "description": "For a strat having an entranceCondition through a vertical transition, indicates whether the strat is applicable if the Toilet comes between this room and the room with the exitCondition.", @@ -928,7 +934,8 @@ {"required": ["comeInWithGrappleSwing"]}, {"required": ["comeInWithGrappleJump"]}, {"required": ["comeInWithGrappleTeleport"]}, - {"required": ["comeInWithSamusEaterTeleport"]} + {"required": ["comeInWithSamusEaterTeleport"]}, + {"required": ["comeInWithSuperSink"]} ] }, "startsWithShineCharge": { @@ -1408,6 +1415,12 @@ } } } + }, + "leaveWithSuperSink": { + "type": "object", + "description": "Represents that Samus can leave through this door while morphed and continuing to gain fall speed from a super sink.", + "additionalProperties": false, + "properties": {} } } }, diff --git a/strats.md b/strats.md index 3398d41183..b08ed442f8 100644 --- a/strats.md +++ b/strats.md @@ -90,6 +90,7 @@ In all strats with an `exitCondition`, the `to` node of the strat must be a door - _leaveWithGrappleJump_: This indicates that Samus can go up through this door by grapple jumping, with no horizontal momentum. - _leaveWithGrappleTeleport_: This indicates that Samus can leave through this door while grappling, which can enable a teleport in the next room. - _leaveWithSamusEaterTeleport_: This indicates that Samus can leave through this door immediately after teleporting into a Samus Eater by exiting G-Mode. +- _leaveWithSuperSink_: This indicates that Samus can leave through this door while morphed and continuing to gain fall speed from a super sink. Each of these properties is described in more detail below. @@ -609,6 +610,40 @@ A `leaveWithSamusEaterTeleport` comes with an implicit tech requirement `canSamu } ``` +### Leave With Super Sink + +A `leaveWithSuperSink` exit condition represents that Samus can leave through this door morphed while continuing to gain fall speed from a super sink. A `leaveWithSuperSink` object has no properties. + +A `leaveWithSuperSink` condition comes with an implicit tech requirement `canSuperSink`. + +#### Example +```json +{ + "name": "Leave With Super Sink", + "requires": [], + "entranceCondtion": { + "leaveWithSuperSink": {} + }, +} +``` + + +#### Example +```json +{ + "name": "Moondance to Store Fall Speed", + "requires": [ + "h_canUseBombs", + "canMoondance" + ], + "exitCondition": { + "leaveWithStoredFallSpeed": { + "fallSpeedInTiles": 1 + } + } +} +``` + ## Entrance conditions In all strats with an `entranceCondition`, the `from` node of the strat must be a door node or entrance node. An `entranceCondition` object must contain exactly one of the following properties: @@ -643,6 +678,7 @@ In all strats with an `entranceCondition`, the `from` node of the strat must be - _comeInWithGrappleJump_: This indicates that Samus must come into the room by grapple jumping vertically through this door, with no horizontal momentum. - _comeInWithGrappleTeleport_: This indicates that Samus must come into the room while grappling, teleporting Samus to a position in this room corresponding to the location of the (grapple) block in the other room. - _comeInWithSamusEaterTeleport_: This indicates that Samus must come into the room immediately after initiating a teleport into a Samus Eater by exiting G-Mode in the other room. +- _comeInWithSuperSink_: This indicates that Samus must enter through this door while morphed and continuing to gain fall speed from a super sink. In addition it may contain the following property: @@ -1568,7 +1604,7 @@ A `comeInWithGrappleTeleport` comes with an implicit tech requirement `canGrappl } ``` -## Come In With Samus Eater Teleport +### Come In With Samus Eater Teleport A `comeInWithSamusEaterTeleport` entrance condition represents that Samus must come into the room immediately after teleporting Samus to a Samus Eater in the other room, causing Samus to be placed in a different position in the current room. @@ -1596,6 +1632,23 @@ A `comeInWithSamusEaterTeleport` comes with an implicit tech requirement `canSam } ``` +### Come In With Super Sink + +A `comeInWithSuperSink` entrance condition represents that Samus must enter through this door morphed while continuing to gain fall speed from performing a super sink in the other room. A `comeInWithSuperSink` object has no properties. + +A `comeInWithSuperSink` condition comes with an implicit tech requirement `canSuperSink`. + +#### Example +```json +{ + "name": "Super Sink", + "entranceCondtion": { + "comeInWithSuperSink": {} + }, + "requires": [] +} +``` + ### Comes Through Toilet Inside an `entranceCondition` object, a `comesThroughToilet` property indicates if the strat is applicable when the Toilet comes between this room and the other room (one with a matching `exitCondition`). This property should be specified on every strat having an `entranceCondition` through a vertical transition. It has three possible values: diff --git a/tech.json b/tech.json index 9030972390..169c1b5272 100644 --- a/tech.json +++ b/tech.json @@ -889,6 +889,21 @@ "for grappling to the right, this can be done in positions 2 and 3.", "These positions also work if Samus is moving toward the block; and all other positions require Samus to be moving toward the block." ] + }, + { + "name": "canSuperSink", + "techRequires": [ + "canUseGrapple" + ], + "otherRequires": [], + "note": [ + "Release Grapple while swinging with sufficient downward vertical momentum to exceed the fall speed cap,", + "in order to allow Samus to continue gaining higher speed while falling.", + "While in this state Samus may morph and frame-perfectly equip or unequip Spring Ball", + "in order to land while continuing to gain fall speed;", + "Once Samus reaches a speed of 16, she will clip down through any number of solid tiles below,", + "with her fall speed resetting to zero once an air tile is reached." + ] } ] }, From bbf64ad0c5b699ce7318f0fb672b812db89ae6eb Mon Sep 17 00:00:00 2001 From: Brent Kerby Date: Sat, 2 Aug 2025 21:49:32 -0600 Subject: [PATCH 2/4] Add missing Morph+SpringBall req to Indiana Jones setup --- region/norfair/crocomire/Indiana Jones Room.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/region/norfair/crocomire/Indiana Jones Room.json b/region/norfair/crocomire/Indiana Jones Room.json index bfb964f355..6fbd2bb291 100644 --- a/region/norfair/crocomire/Indiana Jones Room.json +++ b/region/norfair/crocomire/Indiana Jones Room.json @@ -240,7 +240,9 @@ "link": [1, 1], "name": "Leave with Super Sink", "requires": [ - {"enemyDamage": {"enemy": "Ripper 2 (green)", "type": "contact", "hits": 2}} + {"enemyDamage": {"enemy": "Ripper 2 (green)", "type": "contact", "hits": 2}}, + "Morph", + "SpringBall" ], "exitCondition": { "leaveWithSuperSink": {} From 1e677cce2e921417d8bae1fe988fee3b4a22ace7 Mon Sep 17 00:00:00 2001 From: Brent Kerby Date: Sun, 3 Aug 2025 04:51:06 -0600 Subject: [PATCH 3/4] some notes/docs cleanup --- .../norfair/crocomire/Indiana Jones Room.json | 5 +++-- strats.md | 17 ----------------- 2 files changed, 3 insertions(+), 19 deletions(-) diff --git a/region/norfair/crocomire/Indiana Jones Room.json b/region/norfair/crocomire/Indiana Jones Room.json index 6fbd2bb291..abfc57b489 100644 --- a/region/norfair/crocomire/Indiana Jones Room.json +++ b/region/norfair/crocomire/Indiana Jones Room.json @@ -250,10 +250,11 @@ "note": [ "Swing counter-clockwise around the left-most Ripper closely (pressing up to retract Grapple),", "positioned as far left as possible while avoiding getting caught on the stalactite.", - "After swinging under the stalactite, hold down to extend Grapple to push Samus to the left slightly,", + "After swinging under the stalactite with high enough speed,", + "hold down to extend Grapple to push Samus to the left slightly,", "then release Grapple while Samus is still nearly horizontal.", "Quickly morph and frame-perfectly pause to equip or unequip Spring Ball.", - "If successful, Samus will continue gaining fall speed while morphed.", + "If successful, Samus will continue gaining fall speed while on the ground morphed.", "Immediately roll left through the door, which should have been opened in advance." ] }, diff --git a/strats.md b/strats.md index b08ed442f8..636fe4409a 100644 --- a/strats.md +++ b/strats.md @@ -627,23 +627,6 @@ A `leaveWithSuperSink` condition comes with an implicit tech requirement `canSup } ``` - -#### Example -```json -{ - "name": "Moondance to Store Fall Speed", - "requires": [ - "h_canUseBombs", - "canMoondance" - ], - "exitCondition": { - "leaveWithStoredFallSpeed": { - "fallSpeedInTiles": 1 - } - } -} -``` - ## Entrance conditions In all strats with an `entranceCondition`, the `from` node of the strat must be a door node or entrance node. An `entranceCondition` object must contain exactly one of the following properties: From 1f762c957ded78c0246ff40b8b2cd38509137284 Mon Sep 17 00:00:00 2001 From: Brent Kerby Date: Mon, 4 Aug 2025 13:48:15 -0600 Subject: [PATCH 4/4] feedback updates --- region/maridia/outer/Mt. Everest.json | 17 ++++++++++------- .../norfair/crocomire/Indiana Jones Room.json | 1 + tech.json | 3 ++- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/region/maridia/outer/Mt. Everest.json b/region/maridia/outer/Mt. Everest.json index a4c891ba63..3504dfd948 100644 --- a/region/maridia/outer/Mt. Everest.json +++ b/region/maridia/outer/Mt. Everest.json @@ -4100,7 +4100,6 @@ "name": "Super Sink Door Lock Skip", "requires": [ "canSuperSink", - "Morph", "SpringBall" ], "bypassesDoorShell": true, @@ -4736,22 +4735,26 @@ "name": "Super Sink Door Lock Skip", "requires": [ "canSuperSink", - "Morph", "SpringBall" ], "bypassesDoorShell": true, "note": [ - "Swing around the Powamp counter-clockwise,", + "Swing counter-clockwise around the floating Grapple blocks on the right side of the room,", "and release when Samus has high speed and is as far left as possible.", - "Quickly morph, pause frame-perfectly so that the pause hits just as Samus would land,", - "Equip or unequip Spring Ball in order to land on the door shell without bouncing.", - "If successful, Samus will continue to gain fall speed while resting on the door shell,", - "clipping through it after a few seconds." + "Quickly morph, pause frame-perfectly so that the pause hits just as Samus would land.", + "Equip or unequip Spring Ball in order to land without bouncing.", + "Hold left to roll over to the door.", + "If successful, Samus will continue to gain fall speed,", + "and will clip through the door soon after reaching it." ], "detailNote": [ "If Spring Ball is unequipped after bouncing, it will cause the game to crash after landing from the bounce.", "To avoid this, do not unequip Spring Ball if the bouncing sound is heard before or while entering the pause menu.", "Alternatively, equip rather than unequip Spring Ball." + ], + "devNote": [ + "It is also an option to swing counter-clockwise around the Powamp above the door;", + "but this may be less consistent since the vertical position of the Powamp can vary." ] }, { diff --git a/region/norfair/crocomire/Indiana Jones Room.json b/region/norfair/crocomire/Indiana Jones Room.json index abfc57b489..1d48da4029 100644 --- a/region/norfair/crocomire/Indiana Jones Room.json +++ b/region/norfair/crocomire/Indiana Jones Room.json @@ -240,6 +240,7 @@ "link": [1, 1], "name": "Leave with Super Sink", "requires": [ + "canUseEnemies", {"enemyDamage": {"enemy": "Ripper 2 (green)", "type": "contact", "hits": 2}}, "Morph", "SpringBall" diff --git a/tech.json b/tech.json index 169c1b5272..7de2c14982 100644 --- a/tech.json +++ b/tech.json @@ -893,7 +893,8 @@ { "name": "canSuperSink", "techRequires": [ - "canUseGrapple" + "canUseGrapple", + "canMidAirMorph" ], "otherRequires": [], "note": [