East Cactus Alley Room

Room ID: 196

Wiki
Difficulty filter

From: 1
Left Door
To: 1
Left Door

Exit condition:

{
  "leaveWithRunway": {
    "length": 5,
    "openEnd": 1
  }
}
From: 1
Left Door
To: 1
Left Door

Requires:

{
  "or": [
    {
      "and": [
        "Gravity",
        {
          "or": [
            "SpaceJump",
            {
              "and": [
                "canPreciseWalljump",
                "canConsecutiveWalljump"
              ]
            },
            {
              "and": [
                "HiJump",
                "canWalljump"
              ]
            }
          ]
        }
      ]
    },
    {
      "and": [
        "canSpaceJumpWaterBounce",
        "canWalljump"
      ]
    }
  ]
}
{
  "resetRoom": {
    "nodes": [
      1
    ],
    "mustStayPut": false
  }
}
{
  "refill": [
    "Super"
  ]
}
From: 1
Left Door
To: 1
Left Door

Requires:

"canXMode"
"h_XModeSpikeHit"
"h_XModeSpikeHit"
{
  "or": [
    "h_XModeSpikeHit",
    "canStationarySpinJump"
  ]
}
"Gravity"
"HiJump"
"SpaceJump"
"canShinechargeMovementComplex"
"canMidairShinespark"
"h_canShineChargeMaxRunway"
{
  "shinespark": {
    "frames": 10
  }
}

Exit condition:

{
  "leaveWithSpark": {}
}
From: 1
Left Door
To: 1
Left Door

Requires:

"h_canCrystalFlash"
From: 1
Left Door
To: 3
Junction Left of Morph Tunnel

Doesn't require anything, but getting out does.

From: 1
Left Door
To: 4
Top Right Ledge Junction

Hug the right wall after killing the first Cacatac in order to avoid its invisible, stationary projectiles. After getting to the small island platform, diagonal IBJ up while avoiding the top Cacatac. Alternatively HBJ to the next platform and Spring Ball from the right edge of this platform into an IBJ above the spikes.

Entrance condition:

{
  "comeInWithGMode": {
    "mode": "any",
    "morphed": true
  }
}

Requires:

"Gravity"
{
  "or": [
    "h_canArtificialMorphDiagonalBombJump",
    {
      "and": [
        "h_canArtificialMorphHBJ",
        "h_canArtificialMorphJumpIntoIBJ"
      ]
    }
  ]
}
From: 1
Left Door
To: 6
East Cactus Alley Junction (Right of Morph Tunnel)

Hug the right wall after killing the first Cacatac in order to avoid its invisible, stationary projectiles.

Entrance condition:

{
  "comeInWithGMode": {
    "mode": "any",
    "morphed": true
  }
}

Requires:

"h_canNavigateUnderwater"
{
  "or": [
    "h_canArtificialMorphSpringBall",
    "h_canArtificialMorphBombHorizontally"
  ]
}
{
  "or": [
    {
      "and": [
        "h_canArtificialMorphBombs",
        {
          "or": [
            "Gravity",
            "h_canArtificialMorphSpringBall"
          ]
        }
      ]
    },
    "h_canArtificialMorphPowerBomb",
    {
      "enemyDamage": {
        "enemy": "Cacatac",
        "hits": 1,
        "type": "contact"
      }
    }
  ]
}
{
  "or": [
    "h_canArtificialMorphSpringBall",
    {
      "and": [
        "Gravity",
        "h_canArtificialMorphBombThings"
      ]
    }
  ]
}
From: 2
Right Door
To: 1
Left Door

This requires multiple HBJ to get over spike pits. The first one, by the right door, must be started at the top of an IBJ.

Entrance condition:

{
  "comeInWithGMode": {
    "mode": "any",
    "morphed": true
  }
}

Requires:

{
  "notable": "G-Mode Morph, IBJ, HBJ"
}
"Gravity"
"h_canArtificialMorphIBJ"
"h_canArtificialMorphHBJ"
From: 2
Right Door
To: 1
Left Door

Entrance condition:

{
  "comeInWithGrappleTeleport": {
    "blockPositions": [
      [
        5,
        3
      ],
      [
        7,
        2
      ]
    ]
  }
}
From: 2
Right Door
To: 1
Left Door

Entrance condition:

{
  "comeInWithGrappleTeleport": {
    "blockPositions": [
      [
        3,
        12
      ],
      [
        3,
        13
      ]
    ]
  }
}

Bypasses door shell: true

From: 2
Right Door
To: 1
Left Door

Entrance condition:

{
  "comeInWithGrappleTeleport": {
    "blockPositions": [
      [
        3,
        12
      ]
    ]
  }
}

Exit condition:

{
  "leaveWithGrappleTeleport": {
    "blockPositions": [
      [
        3,
        12
      ]
    ]
  }
}

Bypasses door shell: true

From: 2
Right Door
To: 1
Left Door

Entrance condition:

{
  "comeInWithGrappleTeleport": {
    "blockPositions": [
      [
        3,
        13
      ]
    ]
  }
}

Exit condition:

{
  "leaveWithGrappleTeleport": {
    "blockPositions": [
      [
        3,
        13
      ]
    ]
  }
}

Bypasses door shell: true

From: 2
Right Door
To: 1
Left Door

Exit the previous room with Samus in a standing pose (while grappled). After teleporting, press right to release Grapple while staying standing (not being forced into a crouch). Then X-ray climb to get up to the door transition, without needing to open the door.

Entrance condition:

{
  "comeInWithGrappleTeleport": {
    "blockPositions": [
      [
        2,
        18
      ],
      [
        2,
        19
      ],
      [
        2,
        28
      ],
      [
        2,
        29
      ]
    ]
  }
}

Requires:

"canXRayClimb"

Bypasses door shell: true

From: 2
Right Door
To: 2
Right Door

Exit condition:

{
  "leaveWithRunway": {
    "length": 3,
    "openEnd": 1
  }
}
From: 2
Right Door
To: 2
Right Door

Requires:

"Gravity"
"HiJump"
"canPreciseSpaceJump"

Exit condition:

{
  "leaveWithMockball": {
    "remoteRunway": {
      "length": 5,
      "openEnd": 1
    },
    "landingRunway": {
      "length": 3,
      "openEnd": 1
    }
  }
}
From: 2
Right Door
To: 2
Right Door

Requires:

{
  "or": [
    {
      "and": [
        "Gravity",
        {
          "or": [
            "SpaceJump",
            "canWalljump"
          ]
        }
      ]
    },
    {
      "and": [
        "HiJump",
        "canSpaceJumpWaterBounce",
        "canWalljump"
      ]
    }
  ]
}
{
  "resetRoom": {
    "nodes": [
      2
    ],
    "mustStayPut": false
  }
}
{
  "refill": [
    "Energy",
    "Super"
  ]
}
From: 2
Right Door
To: 2
Right Door

Requires:

"canXMode"
"h_XModeSpikeHit"
"h_XModeSpikeHit"
{
  "or": [
    "h_XModeSpikeHit",
    "canStationarySpinJump"
  ]
}
"Gravity"
"canShinechargeMovementComplex"
"h_canShineChargeMaxRunway"

Exit condition:

{
  "leaveShinecharged": {
    "framesRemaining": 100
  }
}
From: 2
Right Door
To: 2
Right Door

Requires:

"h_canCrystalFlash"
From: 2
Right Door
To: 4
Top Right Ledge Junction

Requires:

"Gravity"
{
  "or": [
    "SpaceJump",
    "canWalljump",
    "h_IBJFromSpikes",
    {
      "and": [
        "canIBJ",
        "canHBJ"
      ]
    },
    "canDiagonalBombJump"
  ]
}
From: 2
Right Door
To: 4
Top Right Ledge Junction

There is just enough distance for a MidAir SpringBall jump to reach without HiJump.

Requires:

"Gravity"
"canSpringBallJumpMidAir"
{
  "or": [
    "HiJump",
    {
      "and": [
        "h_canMaxHeightSpringBallJump",
        "canSpringFling"
      ]
    }
  ]
}
From: 2
Right Door
To: 4
Top Right Ledge Junction

Use SpaceJump to break out of the water. Afterward, it's easiest to use a wall jump to gain height but this is not required.

Requires:

"canSuitlessMaridia"
"HiJump"
{
  "or": [
    "canSpaceJumpWaterEscape",
    {
      "and": [
        "canSpaceJumpWaterBounce",
        "canWalljump"
      ]
    }
  ]
}
From: 2
Right Door
To: 4
Top Right Ledge Junction

SpringBall jump just as Samus exits the water to reach the distant ledge. To get enough horizontal distance, either use a Stationary Lateral Mid-Air Morph with a crouch jump for extra height, or spin jump out before morphing. Or SpringBall jump part of the way over and land on a Bomb explosion to cross the rest of the distance.

Requires:

"canSuitlessMaridia"
"HiJump"
"h_canMaxHeightSpringBallJump"
"canTrickyJump"
{
  "or": [
    "canStationaryLateralMidAirMorph",
    {
      "and": [
        {
          "tech": "canJumpIntoIBJ"
        },
        "canBombHorizontally"
      ]
    }
  ]
}
From: 2
Right Door
To: 4
Top Right Ledge Junction

Entrance condition:

{
  "comeInShinecharged": {
    "framesRequired": 10
  }
}

Requires:

"Gravity"
{
  "shinespark": {
    "frames": 21,
    "excessFrames": 5
  }
}
From: 2
Right Door
To: 4
Top Right Ledge Junction

Entrance condition:

{
  "comeInShinecharged": {
    "framesRequired": 10
  }
}

Requires:

{
  "shinespark": {
    "frames": 22,
    "excessFrames": 5
  }
}
From: 2
Right Door
To: 4
Top Right Ledge Junction

The in-room runway with the door closed works but is somewhat precise. With the door open the jump is easier, but only use a small portion of the runway that was occupied by the door.

Requires:

"Gravity"
"HiJump"
"canTrickyDashJump"
From: 2
Right Door
To: 4
Top Right Ledge Junction

Requires:

"Gravity"
"canXMode"
"h_XModeSpikeHit"
"h_XModeSpikeHit"
{
  "or": [
    "h_XModeSpikeHit",
    "canStationarySpinJump"
  ]
}
"h_canShineChargeMaxRunway"
{
  "shinespark": {
    "frames": 25,
    "excessFrames": 5
  }
}
From: 2
Right Door
To: 4
Top Right Ledge Junction

Requires a runway of at least 1 tile in the adjacent room, although it is easier with more.

Entrance condition:

{
  "comeInJumping": {
    "speedBooster": false,
    "minTiles": 1
  }
}

Requires:

{
  "or": [
    "canWalljump",
    "canTrickySpringBallJump",
    "SpaceJump"
  ]
}
"canCrossRoomJumpIntoWater"
From: 2
Right Door
To: 4
Top Right Ledge Junction

Requires a runway of at least 1 tiles in the adjacent room, although it is easier with more. Start the IBJ as far left as possible. The furthest right is just right of the waterfall. Turning around, carefully, is one way to lose forward momentum and begin the IBJ. At the top of the IBJ bomb to the left and unmorph to reset fall speed.

Entrance condition:

{
  "comeInJumping": {
    "speedBooster": false,
    "minTiles": 1
  }
}

Requires:

{
  "notable": "Cross Room Jump with IBJ"
}
"canJumpIntoIBJ"
"canBombHorizontally"
"canResetFallSpeed"
"canCrossRoomJumpIntoWater"
"canTrickyJump"
From: 2
Right Door
To: 4
Top Right Ledge Junction

Requires a runway of at least 1 tile in the adjacent room, although it is easier with more.

Entrance condition:

{
  "comeInJumping": {
    "speedBooster": "any",
    "minTiles": 1
  }
}

Requires:

"HiJump"
{
  "or": [
    "canWalljump",
    "canTrickyJump",
    "SpeedBooster"
  ]
}
"canCrossRoomJumpIntoWater"
From: 2
Right Door
To: 4
Top Right Ledge Junction

This assumes a runway of at least 2 tiles in the adjacent room, although it is easier with more.

Entrance condition:

{
  "comeInJumping": {
    "speedBooster": "any",
    "minTiles": 2
  }
}

Requires:

"HiJump"
"canCrossRoomJumpIntoWater"
From: 2
Right Door
To: 4
Top Right Ledge Junction

Use the bomb boost as Samus is going through the doorway, then spring ball after breaking the water, then ibj or use an unmorph bomb boost.

Entrance condition:

{
  "comeInWithBombBoost": {}
}

Requires:

{
  "notable": "Cross Room Jump with Spring Ball, Bomb Boost"
}
"canSpringBallBombJump"
"canCrossRoomJumpIntoWater"
{
  "or": [
    "canJumpIntoIBJ",
    "canUnmorphBombBoost"
  ]
}
From: 2
Right Door
To: 4
Top Right Ledge Junction

Requires a runway of 7 tiles with no open end in the adjacent room, to hit a peak of the speed vs height graph.

Entrance condition:

{
  "comeInJumping": {
    "speedBooster": true,
    "minTiles": 6.4375
  }
}

Requires:

"canCrossRoomJumpIntoWater"
"canTrickyDashJump"
From: 2
Right Door
To: 4
Top Right Ledge Junction

Requires a runway of at least 17 tiles in the adjacent room.

Entrance condition:

{
  "comeInJumping": {
    "speedBooster": true,
    "minTiles": 17
  }
}

Requires:

"canCrossRoomJumpIntoWater"
"canTrickyJump"
From: 2
Right Door
To: 4
Top Right Ledge Junction

Assumes a runway of at least 18 tiles in the adjacent room.

Entrance condition:

{
  "comeInJumping": {
    "speedBooster": true,
    "minTiles": 18
  }
}

Requires:

"canCrossRoomJumpIntoWater"
From: 2
Right Door
To: 4
Top Right Ledge Junction

X-ray climb until Samus is above the water surface. To avoid falling out, be careful not to turn left except while holding X-ray. From a standing position facing left, hold left and immediately jump, then use Space Jump to reach the ledge. Alternatively, from a standing position facing right, do a turn-around spin jump, waiting to jump until part way through the turn-around animation (otherwise Samus will bonk inside the wall) It is also possible to climb lower, with Samus' feet still in the water; in this case, the turn-around animation is slower, providing a larger window to jump, though in this case either a wall jump or a Space Jump water escape may be needed.

Entrance condition:

{
  "comeInWithDoorStuckSetup": {}
}

Requires:

"canXRayClimb"
"SpaceJump"
From: 2
Right Door
To: 4
Top Right Ledge Junction

Requires:

"canUnderwaterWalljumpBreakFree"
{
  "spikeHits": 2
}
From: 2
Right Door
To: 4
Top Right Ledge Junction

Requires:

{
  "useFlashSuit": {}
}
{
  "shinespark": {
    "frames": 18,
    "excessFrames": 7
  }
}
From: 3
Junction Left of Morph Tunnel
To: 1
Left Door

Requires:

"Gravity"
"SpaceJump"
From: 3
Junction Left of Morph Tunnel
To: 1
Left Door

Requires:

"Gravity"
{
  "or": [
    {
      "and": [
        "canPreciseWalljump",
        "canConsecutiveWalljump"
      ]
    },
    {
      "and": [
        "HiJump",
        "canWalljump"
      ]
    }
  ]
}
From: 3
Junction Left of Morph Tunnel
To: 1
Left Door

Requires:

"Gravity"
{
  "or": [
    "canSpringwall",
    {
      "and": [
        "HiJump",
        "canSpringBallJumpMidAir"
      ]
    }
  ]
}
From: 3
Junction Left of Morph Tunnel
To: 1
Left Door

Jump from the raised alcove. A down grab can help.

Requires:

"Gravity"
"HiJump"
"SpeedBooster"
"canCarefulJump"
From: 3
Junction Left of Morph Tunnel
To: 1
Left Door

Requires:

"Gravity"
"canIBJ"
{
  "or": [
    "canBombHorizontally",
    "h_IBJFromSpikes"
  ]
}
From: 3
Junction Left of Morph Tunnel
To: 1
Left Door

Requires:

"canSuitlessMaridia"
"HiJump"
"canPreciseWalljump"
{
  "or": [
    "canConsecutiveWalljump",
    "canDelayedWalljump"
  ]
}
From: 3
Junction Left of Morph Tunnel
To: 1
Left Door

Requires:

"canSuitlessMaridia"
{
  "or": [
    {
      "and": [
        "canSpaceJumpWaterBounce",
        "canWalljump"
      ]
    },
    {
      "and": [
        "canSpaceJumpWaterEscape",
        "HiJump"
      ]
    }
  ]
}
From: 3
Junction Left of Morph Tunnel
To: 1
Left Door

1) Start the jump from the raised alcove, standing on the edge facing right. 2) Turn-around spin jump to get the necessary horizontal speed to reach the upper ledge. 3) SpringBall jump after breaking the water line. A lateral mid-air morph or spring fling can help, but are not required. Unmorphing on a failed attempt can help avoid spike damage.

Requires:

"canSuitlessMaridia"
"HiJump"
"canTrickySpringBallJump"
{
  "or": [
    "canTrickyJump",
    "canFlatleyJump"
  ]
}
From: 3
Junction Left of Morph Tunnel
To: 6
East Cactus Alley Junction (Right of Morph Tunnel)

Requires:

"h_canNavigateUnderwater"
{
  "or": [
    "h_canUseSpringBall",
    {
      "and": [
        "Gravity",
        "h_canBombThings"
      ]
    }
  ]
}
From: 3
Junction Left of Morph Tunnel
To: 6
East Cactus Alley Junction (Right of Morph Tunnel)

This can be done by turning off Gravity and HiJump to do a mid-air morph through the morph tunnel.

Requires:

"canSuitlessMaridia"
"canMidAirMorph"
"canDisableEquipment"
From: 4
Top Right Ledge Junction
To: 2
Right Door

From: 4
Top Right Ledge Junction
To: 5
Bottom Middle Junction

From: 5
Bottom Middle Junction
To: 4
Top Right Ledge Junction

Requires:

"Gravity"
{
  "or": [
    "SpaceJump",
    "canWalljump",
    "canSpringBallJumpMidAir",
    "canDiagonalBombJump",
    "h_IBJFromSpikes"
  ]
}
From: 5
Bottom Middle Junction
To: 4
Top Right Ledge Junction

When the Cacatac on the ground fires a spike, perform a springball Jump to break the waterline and then hit the spike for extra height.

Requires:

{
  "notable": "Springball Spike Boost"
}
"HiJump"
"canSuitlessMaridia"
"canCarefulJump"
"canTrickySpringBallJump"
"canLateralMidAirMorph"
"canNeutralDamageBoost"
{
  "enemyDamage": {
    "enemy": "Cacatac",
    "hits": 2,
    "type": "spike"
  }
}
From: 5
Bottom Middle Junction
To: 4
Top Right Ledge Junction

Requires:

"canUnderwaterWalljump"
"canSpaceJumpWaterBounce"
From: 5
Bottom Middle Junction
To: 4
Top Right Ledge Junction

1) Crouch jump and then SpringBall jump. 2) Bomb-Grapple-Jump using the distant Cacatac who is above the water. 3) SpringBall jump again just as Samus exits the water.

Requires:

{
  "notable": "HiJumpless Double SpringBall Jump and Bomb-Grapple-Jump"
}
"canBombGrappleJump"
"canDoubleSpringBallJumpMidAir"
"h_canMaxHeightSpringBallJump"
From: 5
Bottom Middle Junction
To: 4
Top Right Ledge Junction

Perform the spring ball jump near max height. Place the first bomb after the spring ball jump; just above the water line. Press pause just after placing the bomb, to disable Spring Ball (a 'spring fling', to reset fall speed). Place the second bomb soon after regaining control, while the game is fading back in.

Requires:

{
  "notable": "Bomb Jump Water Escape"
}
"HiJump"
"h_canMaxHeightSpringBallJump"
"canSpringFling"
"canBombJumpWaterEscape"
"canJumpIntoIBJ"
From: 5
Bottom Middle Junction
To: 4
Top Right Ledge Junction

It is recommended to do this on the left wall to the right of the two lower Cacatacs, so that Samus can avoid the spikes on a fail.

Requires:

"canUnderwaterWalljumpBreakFree"
From: 5
Bottom Middle Junction
To: 4
Top Right Ledge Junction

Requires:

{
  "useFlashSuit": {}
}
{
  "shinespark": {
    "frames": 20,
    "excessFrames": 12
  }
}
From: 5
Bottom Middle Junction
To: 6
East Cactus Alley Junction (Right of Morph Tunnel)

Requires:

"Gravity"
{
  "or": [
    "SpaceJump",
    "canHBJ",
    "canResetFallSpeed",
    {
      "enemyDamage": {
        "enemy": "Cacatac",
        "hits": 1,
        "type": "spike"
      }
    }
  ]
}
{
  "or": [
    "SpaceJump",
    "canWalljump",
    "HiJump",
    "canIBJ",
    "canHBJ",
    "canSpringBallBombJump",
    {
      "spikeHits": 1
    }
  ]
}
From: 5
Bottom Middle Junction
To: 6
East Cactus Alley Junction (Right of Morph Tunnel)

Jump into the ceiling Cacatac and damage boost onto the platform between spike pits. Use IFrames to cross the second set of spikes.

Requires:

"Gravity"
"canHorizontalDamageBoost"
"canIframeSpikeJump"
{
  "enemyDamage": {
    "enemy": "Cacatac",
    "hits": 1,
    "type": "contact"
  }
}
From: 5
Bottom Middle Junction
To: 6
East Cactus Alley Junction (Right of Morph Tunnel)

Requires:

"canSuitlessMaridia"
"HiJump"
{
  "spikeHits": 1
}
{
  "or": [
    "canWalljump",
    "canSpaceJumpWaterEscape",
    "canSpringBallJumpMidAir",
    {
      "and": [
        "canJumpIntoIBJ",
        "h_canUseSpringBall"
      ]
    },
    {
      "and": [
        "canIBJ",
        "canBombJumpWaterEscape"
      ]
    },
    {
      "spikeHits": 1
    }
  ]
}
From: 5
Bottom Middle Junction
To: 6
East Cactus Alley Junction (Right of Morph Tunnel)

This can be done by turning off Gravity and HiJump to jump over both spike pits.

Requires:

"canSuitlessMaridia"
"canDisableEquipment"
"canCarefulJump"
{
  "or": [
    "Gravity",
    "HiJump",
    "canSpringBallJumpMidAir"
  ]
}
From: 5
Bottom Middle Junction
To: 6
East Cactus Alley Junction (Right of Morph Tunnel)

This can be done by turning off Gravity and HiJump to jump over both spike pits.

Requires:

"canSuitlessMaridia"
"canSpringBallJumpMidAir"
{
  "spikeHits": 1
}
{
  "or": [
    "canTrickySpringBallJump",
    {
      "and": [
        "canWalljump",
        "canSpaceJumpWaterBounce"
      ]
    },
    {
      "and": [
        "canJumpIntoIBJ",
        "h_canUseSpringBall"
      ]
    },
    {
      "and": [
        "canIBJ",
        "canBombJumpWaterEscape"
      ]
    },
    {
      "spikeHits": 1
    }
  ]
}
From: 5
Bottom Middle Junction
To: 6
East Cactus Alley Junction (Right of Morph Tunnel)

It's possible to hit the block on the right while facing left to save some Energy, but that's not expected here.

Requires:

{
  "useFlashSuit": {}
}
{
  "shinespark": {
    "frames": 10,
    "excessFrames": 7
  }
}
From: 6
East Cactus Alley Junction (Right of Morph Tunnel)
To: 3
Junction Left of Morph Tunnel

Requires:

"Morph"
From: 6
East Cactus Alley Junction (Right of Morph Tunnel)
To: 5
Bottom Middle Junction

Requires:

"canSuitlessMaridia"
{
  "or": [
    {
      "spikeHits": 1
    },
    "canSpringBallJumpMidAir",
    {
      "and": [
        "HiJump",
        {
          "or": [
            "canWalljump",
            "h_canCrouchJumpDownGrab",
            "canSpaceJumpWaterEscape"
          ]
        }
      ]
    },
    {
      "and": [
        "canIBJ",
        "canBombJumpWaterEscape"
      ]
    }
  ]
}
{
  "or": [
    {
      "spikeHits": 1
    },
    "HiJump"
  ]
}
From: 6
East Cactus Alley Junction (Right of Morph Tunnel)
To: 5
Bottom Middle Junction

Requires:

"Gravity"
{
  "or": [
    "SpaceJump",
    "canHBJ",
    {
      "spikeHits": 1
    }
  ]
}
From: 6
East Cactus Alley Junction (Right of Morph Tunnel)
To: 5
Bottom Middle Junction

This can be done by turning off Gravity and HiJump to jump over both spike pits.

Requires:

"canSuitlessMaridia"
"canDisableEquipment"
"canCarefulJump"

{
  "$schema": "../../../schema/m3-room.schema.json",
  "id": 196,
  "name": "East Cactus Alley Room",
  "area": "Maridia",
  "subarea": "Inner",
  "subsubarea": "Pink",
  "playable": true,
  "roomAddress": "0x7DA2B",
  "roomEnvironments": [
    {
      "heated": false
    }
  ],
  "nodes": [
    {
      "id": 1,
      "name": "Left Door",
      "nodeType": "door",
      "nodeSubType": "blue",
      "nodeAddress": "0x001a954",
      "doorOrientation": "left",
      "doorEnvironments": [
        {
          "physics": "air"
        }
      ]
    },
    {
      "id": 2,
      "name": "Right Door",
      "nodeType": "door",
      "nodeSubType": "blue",
      "nodeAddress": "0x001a960",
      "doorOrientation": "right",
      "doorEnvironments": [
        {
          "physics": "water"
        }
      ]
    },
    {
      "id": 3,
      "name": "Junction Left of Morph Tunnel",
      "nodeType": "junction",
      "nodeSubType": "junction"
    },
    {
      "id": 4,
      "name": " Top Right Ledge Junction",
      "nodeType": "junction",
      "nodeSubType": "junction"
    },
    {
      "id": 5,
      "name": "Bottom Middle Junction",
      "nodeType": "junction",
      "nodeSubType": "junction"
    },
    {
      "id": 6,
      "name": "East Cactus Alley Junction (Right of Morph Tunnel)",
      "nodeType": "junction",
      "nodeSubType": "junction"
    }
  ],
  "enemies": [
    {
      "id": "e1",
      "groupName": "East Cactus Alley Left Cacatac",
      "enemyName": "Cacatac",
      "quantity": 1,
      "homeNodes": [
        3
      ]
    },
    {
      "id": "e2",
      "groupName": "East Cactus Alley Bottom Cacatacs",
      "enemyName": "Cacatac",
      "quantity": 2,
      "homeNodes": [
        5
      ]
    },
    {
      "id": "e3",
      "groupName": "East Cactus Alley Top Right Cacatacs",
      "enemyName": "Cacatac",
      "quantity": 2,
      "homeNodes": [
        4
      ]
    },
    {
      "id": "e4",
      "groupName": "East Cactus Alley Top Left Cacatac",
      "enemyName": "Cacatac",
      "quantity": 1,
      "betweenNodes": [
        5,
        6
      ]
    }
  ],
  "links": [
    {
      "from": 1,
      "to": [
        {
          "id": 1
        },
        {
          "id": 3
        },
        {
          "id": 4
        },
        {
          "id": 6
        }
      ]
    },
    {
      "from": 2,
      "to": [
        {
          "id": 1
        },
        {
          "id": 2
        },
        {
          "id": 4
        }
      ]
    },
    {
      "from": 3,
      "to": [
        {
          "id": 1
        },
        {
          "id": 6
        }
      ]
    },
    {
      "from": 4,
      "to": [
        {
          "id": 2
        },
        {
          "id": 5
        }
      ]
    },
    {
      "from": 5,
      "to": [
        {
          "id": 4
        },
        {
          "id": 6
        }
      ]
    },
    {
      "from": 6,
      "to": [
        {
          "id": 3
        },
        {
          "id": 5
        }
      ]
    }
  ],
  "strats": [
    {
      "id": 1,
      "link": [
        1,
        1
      ],
      "name": "Leave with Runway",
      "requires": [],
      "exitCondition": {
        "leaveWithRunway": {
          "length": 5,
          "openEnd": 1
        }
      }
    },
    {
      "id": 2,
      "link": [
        1,
        1
      ],
      "name": "Cacatac Farm",
      "requires": [
        {
          "or": [
            {
              "and": [
                "Gravity",
                {
                  "or": [
                    "SpaceJump",
                    {
                      "and": [
                        "canPreciseWalljump",
                        "canConsecutiveWalljump"
                      ]
                    },
                    {
                      "and": [
                        "HiJump",
                        "canWalljump"
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "and": [
                "canSpaceJumpWaterBounce",
                "canWalljump"
              ]
            }
          ]
        },
        {
          "resetRoom": {
            "nodes": [
              1
            ],
            "mustStayPut": false
          }
        },
        {
          "refill": [
            "Super"
          ]
        }
      ]
    },
    {
      "id": 3,
      "link": [
        1,
        1
      ],
      "name": "X-Mode, Leave Shinecharged",
      "requires": [
        "canXMode",
        "h_XModeSpikeHit",
        "h_XModeSpikeHit",
        {
          "or": [
            "h_XModeSpikeHit",
            "canStationarySpinJump"
          ]
        },
        "Gravity",
        "HiJump",
        "SpaceJump",
        "canShinechargeMovementComplex",
        "canMidairShinespark",
        "h_canShineChargeMaxRunway",
        {
          "shinespark": {
            "frames": 10
          }
        }
      ],
      "exitCondition": {
        "leaveWithSpark": {}
      },
      "flashSuitChecked": true,
      "devNote": "Two spike hits are expected per attempt (with any additional leniency hits being multiplied by this amount)."
    },
    {
      "id": 4,
      "link": [
        1,
        1
      ],
      "name": "Crystal Flash",
      "requires": [
        "h_canCrystalFlash"
      ],
      "flashSuitChecked": true
    },
    {
      "id": 5,
      "link": [
        1,
        3
      ],
      "name": "Base",
      "requires": [],
      "note": "Doesn't require anything, but getting out does."
    },
    {
      "id": 6,
      "link": [
        1,
        4
      ],
      "name": "G-Mode Morph Diagonal IBJ",
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "any",
          "morphed": true
        }
      },
      "requires": [
        "Gravity",
        {
          "or": [
            "h_canArtificialMorphDiagonalBombJump",
            {
              "and": [
                "h_canArtificialMorphHBJ",
                "h_canArtificialMorphJumpIntoIBJ"
              ]
            }
          ]
        }
      ],
      "flashSuitChecked": true,
      "note": [
        "Hug the right wall after killing the first Cacatac in order to avoid its invisible, stationary projectiles.",
        "After getting to the small island platform, diagonal IBJ up while avoiding the top Cacatac.",
        "Alternatively HBJ to the next platform and Spring Ball from the right edge of this platform into an IBJ above the spikes."
      ]
    },
    {
      "id": 7,
      "link": [
        1,
        6
      ],
      "name": "G-Mode Morph",
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "any",
          "morphed": true
        }
      },
      "requires": [
        "h_canNavigateUnderwater",
        {
          "or": [
            "h_canArtificialMorphSpringBall",
            "h_canArtificialMorphBombHorizontally"
          ]
        },
        {
          "or": [
            {
              "and": [
                "h_canArtificialMorphBombs",
                {
                  "or": [
                    "Gravity",
                    "h_canArtificialMorphSpringBall"
                  ]
                }
              ]
            },
            "h_canArtificialMorphPowerBomb",
            {
              "enemyDamage": {
                "enemy": "Cacatac",
                "hits": 1,
                "type": "contact"
              }
            }
          ]
        },
        {
          "or": [
            "h_canArtificialMorphSpringBall",
            {
              "and": [
                "Gravity",
                "h_canArtificialMorphBombThings"
              ]
            }
          ]
        }
      ],
      "flashSuitChecked": true,
      "note": "Hug the right wall after killing the first Cacatac in order to avoid its invisible, stationary projectiles."
    },
    {
      "id": 8,
      "link": [
        2,
        1
      ],
      "name": "G-Mode Morph, IBJ, HBJ",
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "any",
          "morphed": true
        }
      },
      "requires": [
        {
          "notable": "G-Mode Morph, IBJ, HBJ"
        },
        "Gravity",
        "h_canArtificialMorphIBJ",
        "h_canArtificialMorphHBJ"
      ],
      "flashSuitChecked": true,
      "note": "This requires multiple HBJ to get over spike pits. The first one, by the right door, must be started at the top of an IBJ."
    },
    {
      "id": 9,
      "link": [
        2,
        1
      ],
      "name": "Grapple Teleport",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              5,
              3
            ],
            [
              7,
              2
            ]
          ]
        }
      },
      "requires": []
    },
    {
      "id": 10,
      "link": [
        2,
        1
      ],
      "name": "Grapple Teleport Door Lock Skip",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              3,
              12
            ],
            [
              3,
              13
            ]
          ]
        }
      },
      "requires": [],
      "bypassesDoorShell": true
    },
    {
      "id": 11,
      "link": [
        2,
        1
      ],
      "name": "Carry Grapple Teleport (Top Position)",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              3,
              12
            ]
          ]
        }
      },
      "requires": [],
      "bypassesDoorShell": true,
      "exitCondition": {
        "leaveWithGrappleTeleport": {
          "blockPositions": [
            [
              3,
              12
            ]
          ]
        }
      }
    },
    {
      "id": 12,
      "link": [
        2,
        1
      ],
      "name": "Carry Grapple Teleport (Bottom Position)",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              3,
              13
            ]
          ]
        }
      },
      "requires": [],
      "bypassesDoorShell": true,
      "exitCondition": {
        "leaveWithGrappleTeleport": {
          "blockPositions": [
            [
              3,
              13
            ]
          ]
        }
      }
    },
    {
      "id": 13,
      "link": [
        2,
        1
      ],
      "name": "Grapple Teleport X-Ray Climb",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              2,
              18
            ],
            [
              2,
              19
            ],
            [
              2,
              28
            ],
            [
              2,
              29
            ]
          ]
        }
      },
      "requires": [
        "canXRayClimb"
      ],
      "bypassesDoorShell": true,
      "flashSuitChecked": true,
      "note": [
        "Exit the previous room with Samus in a standing pose (while grappled).",
        "After teleporting, press right to release Grapple while staying standing (not being forced into a crouch).",
        "Then X-ray climb to get up to the door transition, without needing to open the door."
      ]
    },
    {
      "id": 14,
      "link": [
        2,
        2
      ],
      "name": "Leave with Runway",
      "requires": [],
      "exitCondition": {
        "leaveWithRunway": {
          "length": 3,
          "openEnd": 1
        }
      }
    },
    {
      "id": 15,
      "link": [
        2,
        2
      ],
      "name": "Leave With Mockball (From Across Room)",
      "requires": [
        "Gravity",
        "HiJump",
        "canPreciseSpaceJump"
      ],
      "exitCondition": {
        "leaveWithMockball": {
          "remoteRunway": {
            "length": 5,
            "openEnd": 1
          },
          "landingRunway": {
            "length": 3,
            "openEnd": 1
          }
        }
      }
    },
    {
      "id": 16,
      "link": [
        2,
        2
      ],
      "name": "Cacatac Farm",
      "requires": [
        {
          "or": [
            {
              "and": [
                "Gravity",
                {
                  "or": [
                    "SpaceJump",
                    "canWalljump"
                  ]
                }
              ]
            },
            {
              "and": [
                "HiJump",
                "canSpaceJumpWaterBounce",
                "canWalljump"
              ]
            }
          ]
        },
        {
          "resetRoom": {
            "nodes": [
              2
            ],
            "mustStayPut": false
          }
        },
        {
          "refill": [
            "Energy",
            "Super"
          ]
        }
      ]
    },
    {
      "id": 17,
      "link": [
        2,
        2
      ],
      "name": "X-Mode, Leave Shinecharged",
      "requires": [
        "canXMode",
        "h_XModeSpikeHit",
        "h_XModeSpikeHit",
        {
          "or": [
            "h_XModeSpikeHit",
            "canStationarySpinJump"
          ]
        },
        "Gravity",
        "canShinechargeMovementComplex",
        "h_canShineChargeMaxRunway"
      ],
      "exitCondition": {
        "leaveShinecharged": {
          "framesRemaining": 100
        }
      },
      "flashSuitChecked": true,
      "devNote": "Two spike hits are expected per attempt (with any additional leniency hits being multiplied by this amount)."
    },
    {
      "id": 18,
      "link": [
        2,
        2
      ],
      "name": "Crystal Flash",
      "requires": [
        "h_canCrystalFlash"
      ],
      "flashSuitChecked": true
    },
    {
      "id": 19,
      "link": [
        2,
        4
      ],
      "name": "Base",
      "requires": [
        "Gravity",
        {
          "or": [
            "SpaceJump",
            "canWalljump",
            "h_IBJFromSpikes",
            {
              "and": [
                "canIBJ",
                "canHBJ"
              ]
            },
            "canDiagonalBombJump"
          ]
        }
      ]
    },
    {
      "id": 20,
      "link": [
        2,
        4
      ],
      "name": "Gravity and SpringBall",
      "requires": [
        "Gravity",
        "canSpringBallJumpMidAir",
        {
          "or": [
            "HiJump",
            {
              "and": [
                "h_canMaxHeightSpringBallJump",
                "canSpringFling"
              ]
            }
          ]
        }
      ],
      "note": "There is just enough distance for a MidAir SpringBall jump to reach without HiJump."
    },
    {
      "id": 21,
      "link": [
        2,
        4
      ],
      "name": "Suitless HiJump Space Jump Break Free",
      "requires": [
        "canSuitlessMaridia",
        "HiJump",
        {
          "or": [
            "canSpaceJumpWaterEscape",
            {
              "and": [
                "canSpaceJumpWaterBounce",
                "canWalljump"
              ]
            }
          ]
        }
      ],
      "note": [
        "Use SpaceJump to break out of the water.",
        "Afterward, it's easiest to use a wall jump to gain height but this is not required."
      ]
    },
    {
      "id": 22,
      "link": [
        2,
        4
      ],
      "name": "Suitless HiJump SpringBall Jump",
      "requires": [
        "canSuitlessMaridia",
        "HiJump",
        "h_canMaxHeightSpringBallJump",
        "canTrickyJump",
        {
          "or": [
            "canStationaryLateralMidAirMorph",
            {
              "and": [
                {
                  "tech": "canJumpIntoIBJ"
                },
                "canBombHorizontally"
              ]
            }
          ]
        }
      ],
      "note": [
        "SpringBall jump just as Samus exits the water to reach the distant ledge.",
        "To get enough horizontal distance, either use a Stationary Lateral Mid-Air Morph with a crouch jump for extra height, or spin jump out before morphing.",
        "Or SpringBall jump part of the way over and land on a Bomb explosion to cross the rest of the distance."
      ],
      "devNote": "canStationaryLateralMidAirMorph is not strictly required but better describes the difficulty."
    },
    {
      "id": 23,
      "link": [
        2,
        4
      ],
      "name": "Shinespark",
      "entranceCondition": {
        "comeInShinecharged": {
          "framesRequired": 10
        }
      },
      "requires": [
        "Gravity",
        {
          "shinespark": {
            "frames": 21,
            "excessFrames": 5
          }
        }
      ],
      "flashSuitChecked": true
    },
    {
      "id": 24,
      "link": [
        2,
        4
      ],
      "name": "Suitless Shinespark",
      "entranceCondition": {
        "comeInShinecharged": {
          "framesRequired": 10
        }
      },
      "requires": [
        {
          "shinespark": {
            "frames": 22,
            "excessFrames": 5
          }
        }
      ],
      "flashSuitChecked": true
    },
    {
      "id": 61,
      "link": [
        2,
        4
      ],
      "name": "Speedy HiJump",
      "requires": [
        "Gravity",
        "HiJump",
        "canTrickyDashJump"
      ],
      "note": [
        "The in-room runway with the door closed works but is somewhat precise.",
        "With the door open the jump is easier, but only use a small portion of the runway that was occupied by the door."
      ]
    },
    {
      "id": 25,
      "link": [
        2,
        4
      ],
      "name": "X-Mode Shinespark",
      "requires": [
        "Gravity",
        "canXMode",
        "h_XModeSpikeHit",
        "h_XModeSpikeHit",
        {
          "or": [
            "h_XModeSpikeHit",
            "canStationarySpinJump"
          ]
        },
        "h_canShineChargeMaxRunway",
        {
          "shinespark": {
            "frames": 25,
            "excessFrames": 5
          }
        }
      ],
      "flashSuitChecked": true,
      "devNote": "Two spike hits are expected per attempt (with any additional leniency hits being multiplied by this amount)."
    },
    {
      "id": 26,
      "link": [
        2,
        4
      ],
      "name": "Cross Room Jump with Assist",
      "entranceCondition": {
        "comeInJumping": {
          "speedBooster": false,
          "minTiles": 1
        }
      },
      "requires": [
        {
          "or": [
            "canWalljump",
            "canTrickySpringBallJump",
            "SpaceJump"
          ]
        },
        "canCrossRoomJumpIntoWater"
      ],
      "note": "Requires a runway of at least 1 tile in the adjacent room, although it is easier with more."
    },
    {
      "id": 27,
      "link": [
        2,
        4
      ],
      "name": "Cross Room Jump with IBJ",
      "entranceCondition": {
        "comeInJumping": {
          "speedBooster": false,
          "minTiles": 1
        }
      },
      "requires": [
        {
          "notable": "Cross Room Jump with IBJ"
        },
        "canJumpIntoIBJ",
        "canBombHorizontally",
        "canResetFallSpeed",
        "canCrossRoomJumpIntoWater",
        "canTrickyJump"
      ],
      "note": [
        "Requires a runway of at least 1 tiles in the adjacent room, although it is easier with more.",
        "Start the IBJ as far left as possible. The furthest right is just right of the waterfall.",
        "Turning around, carefully, is one way to lose forward momentum and begin the IBJ.",
        "At the top of the IBJ bomb to the left and unmorph to reset fall speed."
      ]
    },
    {
      "id": 28,
      "link": [
        2,
        4
      ],
      "name": "Cross Room Jump with HiJump",
      "entranceCondition": {
        "comeInJumping": {
          "speedBooster": "any",
          "minTiles": 1
        }
      },
      "requires": [
        "HiJump",
        {
          "or": [
            "canWalljump",
            "canTrickyJump",
            "SpeedBooster"
          ]
        },
        "canCrossRoomJumpIntoWater"
      ],
      "note": "Requires a runway of at least 1 tile in the adjacent room, although it is easier with more."
    },
    {
      "id": 29,
      "link": [
        2,
        4
      ],
      "name": "Cross Room Jump with HiJump (Lenient)",
      "entranceCondition": {
        "comeInJumping": {
          "speedBooster": "any",
          "minTiles": 2
        }
      },
      "requires": [
        "HiJump",
        "canCrossRoomJumpIntoWater"
      ],
      "note": "This assumes a runway of at least 2 tiles in the adjacent room, although it is easier with more."
    },
    {
      "id": 30,
      "link": [
        2,
        4
      ],
      "name": "Cross Room Jump with Spring Ball, Bomb Boost",
      "entranceCondition": {
        "comeInWithBombBoost": {}
      },
      "requires": [
        {
          "notable": "Cross Room Jump with Spring Ball, Bomb Boost"
        },
        "canSpringBallBombJump",
        "canCrossRoomJumpIntoWater",
        {
          "or": [
            "canJumpIntoIBJ",
            "canUnmorphBombBoost"
          ]
        }
      ],
      "note": "Use the bomb boost as Samus is going through the doorway, then spring ball after breaking the water, then ibj or use an unmorph bomb boost.",
      "devNote": "This strat requires a minimum of 2 bombs or Power Bombs."
    },
    {
      "id": 31,
      "link": [
        2,
        4
      ],
      "name": "Cross Room Tricky Dash Jump",
      "entranceCondition": {
        "comeInJumping": {
          "speedBooster": true,
          "minTiles": 6.4375
        }
      },
      "requires": [
        "canCrossRoomJumpIntoWater",
        "canTrickyDashJump"
      ],
      "note": [
        "Requires a runway of 7 tiles with no open end in the adjacent room, to hit a peak of the speed vs height graph."
      ]
    },
    {
      "id": 32,
      "link": [
        2,
        4
      ],
      "name": "Cross Room Jump with SpeedBooster",
      "entranceCondition": {
        "comeInJumping": {
          "speedBooster": true,
          "minTiles": 17
        }
      },
      "requires": [
        "canCrossRoomJumpIntoWater",
        "canTrickyJump"
      ],
      "note": [
        "Requires a runway of at least 17 tiles in the adjacent room."
      ]
    },
    {
      "id": 33,
      "link": [
        2,
        4
      ],
      "name": "Cross Room Jump with SpeedBooster (Lenient)",
      "entranceCondition": {
        "comeInJumping": {
          "speedBooster": true,
          "minTiles": 18
        }
      },
      "requires": [
        "canCrossRoomJumpIntoWater"
      ],
      "note": [
        "Assumes a runway of at least 18 tiles in the adjacent room."
      ]
    },
    {
      "id": 34,
      "link": [
        2,
        4
      ],
      "name": "X-Ray Climb Space Jump",
      "entranceCondition": {
        "comeInWithDoorStuckSetup": {}
      },
      "requires": [
        "canXRayClimb",
        "SpaceJump"
      ],
      "flashSuitChecked": true,
      "note": [
        "X-ray climb until Samus is above the water surface.",
        "To avoid falling out, be careful not to turn left except while holding X-ray.",
        "From a standing position facing left, hold left and immediately jump, then use Space Jump to reach the ledge.",
        "Alternatively, from a standing position facing right, do a turn-around spin jump, waiting to jump until part way through the turn-around animation (otherwise Samus will bonk inside the wall)",
        "It is also possible to climb lower, with Samus' feet still in the water; in this case, the turn-around animation is slower, providing a larger window to jump, though in this case either a wall jump or a Space Jump water escape may be needed."
      ]
    },
    {
      "id": 62,
      "link": [
        2,
        4
      ],
      "name": "Underwater Walljump Break Free",
      "requires": [
        "canUnderwaterWalljumpBreakFree",
        {
          "spikeHits": 2
        }
      ],
      "devNote": "Two spike hits for leniency."
    },
    {
      "id": 63,
      "link": [
        2,
        4
      ],
      "name": "Use Flash Suit",
      "requires": [
        {
          "useFlashSuit": {}
        },
        {
          "shinespark": {
            "frames": 18,
            "excessFrames": 7
          }
        }
      ]
    },
    {
      "id": 35,
      "link": [
        3,
        1
      ],
      "name": "Base",
      "requires": [
        "Gravity",
        "SpaceJump"
      ]
    },
    {
      "id": 36,
      "link": [
        3,
        1
      ],
      "name": "Gravity and Walljump",
      "requires": [
        "Gravity",
        {
          "or": [
            {
              "and": [
                "canPreciseWalljump",
                "canConsecutiveWalljump"
              ]
            },
            {
              "and": [
                "HiJump",
                "canWalljump"
              ]
            }
          ]
        }
      ]
    },
    {
      "id": 37,
      "link": [
        3,
        1
      ],
      "name": "Gravity and Springball",
      "requires": [
        "Gravity",
        {
          "or": [
            "canSpringwall",
            {
              "and": [
                "HiJump",
                "canSpringBallJumpMidAir"
              ]
            }
          ]
        }
      ]
    },
    {
      "id": 38,
      "link": [
        3,
        1
      ],
      "name": "Speedy Jump",
      "requires": [
        "Gravity",
        "HiJump",
        "SpeedBooster",
        "canCarefulJump"
      ],
      "note": "Jump from the raised alcove.  A down grab can help."
    },
    {
      "id": 39,
      "link": [
        3,
        1
      ],
      "name": "IBJ",
      "requires": [
        "Gravity",
        "canIBJ",
        {
          "or": [
            "canBombHorizontally",
            "h_IBJFromSpikes"
          ]
        }
      ]
    },
    {
      "id": 40,
      "link": [
        3,
        1
      ],
      "name": "HiJump Walljump",
      "requires": [
        "canSuitlessMaridia",
        "HiJump",
        "canPreciseWalljump",
        {
          "or": [
            "canConsecutiveWalljump",
            "canDelayedWalljump"
          ]
        }
      ]
    },
    {
      "id": 41,
      "link": [
        3,
        1
      ],
      "name": "Suitless Spacejump",
      "requires": [
        "canSuitlessMaridia",
        {
          "or": [
            {
              "and": [
                "canSpaceJumpWaterBounce",
                "canWalljump"
              ]
            },
            {
              "and": [
                "canSpaceJumpWaterEscape",
                "HiJump"
              ]
            }
          ]
        }
      ]
    },
    {
      "id": 42,
      "link": [
        3,
        1
      ],
      "name": "Suitless Springball",
      "requires": [
        "canSuitlessMaridia",
        "HiJump",
        "canTrickySpringBallJump",
        {
          "or": [
            "canTrickyJump",
            "canFlatleyJump"
          ]
        }
      ],
      "note": [
        "1) Start the jump from the raised alcove, standing on the edge facing right.",
        "2) Turn-around spin jump to get the necessary horizontal speed to reach the upper ledge.",
        "3) SpringBall jump after breaking the water line.",
        "A lateral mid-air morph or spring fling can help, but are not required.",
        "Unmorphing on a failed attempt can help avoid spike damage."
      ]
    },
    {
      "id": 43,
      "link": [
        3,
        6
      ],
      "name": "Base",
      "requires": [
        "h_canNavigateUnderwater",
        {
          "or": [
            "h_canUseSpringBall",
            {
              "and": [
                "Gravity",
                "h_canBombThings"
              ]
            }
          ]
        }
      ]
    },
    {
      "id": 44,
      "link": [
        3,
        6
      ],
      "name": "Suitless Bootless",
      "requires": [
        "canSuitlessMaridia",
        "canMidAirMorph",
        "canDisableEquipment"
      ],
      "note": "This can be done by turning off Gravity and HiJump to do a mid-air morph through the morph tunnel."
    },
    {
      "id": 45,
      "link": [
        4,
        2
      ],
      "name": "Base",
      "requires": []
    },
    {
      "id": 46,
      "link": [
        4,
        5
      ],
      "name": "Base",
      "requires": []
    },
    {
      "id": 47,
      "link": [
        5,
        4
      ],
      "name": "Base",
      "requires": [
        "Gravity",
        {
          "or": [
            "SpaceJump",
            "canWalljump",
            "canSpringBallJumpMidAir",
            "canDiagonalBombJump",
            "h_IBJFromSpikes"
          ]
        }
      ]
    },
    {
      "id": 48,
      "link": [
        5,
        4
      ],
      "name": "Springball Spike Boost",
      "requires": [
        {
          "notable": "Springball Spike Boost"
        },
        "HiJump",
        "canSuitlessMaridia",
        "canCarefulJump",
        "canTrickySpringBallJump",
        "canLateralMidAirMorph",
        "canNeutralDamageBoost",
        {
          "enemyDamage": {
            "enemy": "Cacatac",
            "hits": 2,
            "type": "spike"
          }
        }
      ],
      "note": "When the Cacatac on the ground fires a spike, perform a  springball Jump to break the waterline and then hit the spike for extra height."
    },
    {
      "id": 49,
      "link": [
        5,
        4
      ],
      "name": "Underwater Walljump",
      "requires": [
        "canUnderwaterWalljump",
        "canSpaceJumpWaterBounce"
      ]
    },
    {
      "id": 50,
      "link": [
        5,
        4
      ],
      "name": "HiJumpless Double SpringBall Jump and Bomb-Grapple-Jump",
      "requires": [
        {
          "notable": "HiJumpless Double SpringBall Jump and Bomb-Grapple-Jump"
        },
        "canBombGrappleJump",
        "canDoubleSpringBallJumpMidAir",
        "h_canMaxHeightSpringBallJump"
      ],
      "note": [
        "1) Crouch jump and then SpringBall jump.",
        "2) Bomb-Grapple-Jump using the distant Cacatac who is above the water.",
        "3) SpringBall jump again just as Samus exits the water."
      ]
    },
    {
      "id": 51,
      "link": [
        5,
        4
      ],
      "name": "Bomb Jump Water Escape",
      "requires": [
        {
          "notable": "Bomb Jump Water Escape"
        },
        "HiJump",
        "h_canMaxHeightSpringBallJump",
        "canSpringFling",
        "canBombJumpWaterEscape",
        "canJumpIntoIBJ"
      ],
      "note": [
        "Perform the spring ball jump near max height.",
        "Place the first bomb after the spring ball jump; just above the water line.",
        "Press pause just after placing the bomb, to disable Spring Ball (a 'spring fling', to reset fall speed).",
        "Place the second bomb soon after regaining control, while the game is fading back in."
      ]
    },
    {
      "id": 64,
      "link": [
        5,
        4
      ],
      "name": "Underwater Walljump Break Free",
      "requires": [
        "canUnderwaterWalljumpBreakFree"
      ],
      "note": "It is recommended to do this on the left wall to the right of the two lower Cacatacs, so that Samus can avoid the spikes on a fail."
    },
    {
      "id": 65,
      "link": [
        5,
        4
      ],
      "name": "Use Flash Suit",
      "requires": [
        {
          "useFlashSuit": {}
        },
        {
          "shinespark": {
            "frames": 20,
            "excessFrames": 12
          }
        }
      ]
    },
    {
      "id": 52,
      "link": [
        5,
        6
      ],
      "name": "Base",
      "requires": [
        "Gravity",
        {
          "or": [
            "SpaceJump",
            "canHBJ",
            "canResetFallSpeed",
            {
              "enemyDamage": {
                "enemy": "Cacatac",
                "hits": 1,
                "type": "spike"
              }
            }
          ]
        },
        {
          "or": [
            "SpaceJump",
            "canWalljump",
            "HiJump",
            "canIBJ",
            "canHBJ",
            "canSpringBallBombJump",
            {
              "spikeHits": 1
            }
          ]
        }
      ]
    },
    {
      "id": 53,
      "link": [
        5,
        6
      ],
      "name": "Cacatac Boost",
      "requires": [
        "Gravity",
        "canHorizontalDamageBoost",
        "canIframeSpikeJump",
        {
          "enemyDamage": {
            "enemy": "Cacatac",
            "hits": 1,
            "type": "contact"
          }
        }
      ],
      "note": [
        "Jump into the ceiling Cacatac and damage boost onto the platform between spike pits.",
        "Use IFrames to cross the second set of spikes."
      ]
    },
    {
      "id": 54,
      "link": [
        5,
        6
      ],
      "name": "Suitless HiJump",
      "requires": [
        "canSuitlessMaridia",
        "HiJump",
        {
          "spikeHits": 1
        },
        {
          "or": [
            "canWalljump",
            "canSpaceJumpWaterEscape",
            "canSpringBallJumpMidAir",
            {
              "and": [
                "canJumpIntoIBJ",
                "h_canUseSpringBall"
              ]
            },
            {
              "and": [
                "canIBJ",
                "canBombJumpWaterEscape"
              ]
            },
            {
              "spikeHits": 1
            }
          ]
        }
      ],
      "devNote": [
        "The first spike pit on the right is considered unavoidable, as if the player has Gravity and HiJump, the jump is quite tricky.",
        "In that scenario, the player will hit the spikes or need the strat with canDisableEquipment."
      ]
    },
    {
      "id": 55,
      "link": [
        5,
        6
      ],
      "name": "Suitless Bootless Jump",
      "requires": [
        "canSuitlessMaridia",
        "canDisableEquipment",
        "canCarefulJump",
        {
          "or": [
            "Gravity",
            "HiJump",
            "canSpringBallJumpMidAir"
          ]
        }
      ],
      "note": "This can be done by turning off Gravity and HiJump to jump over both spike pits."
    },
    {
      "id": 56,
      "link": [
        5,
        6
      ],
      "name": "Suitless Springball",
      "requires": [
        "canSuitlessMaridia",
        "canSpringBallJumpMidAir",
        {
          "spikeHits": 1
        },
        {
          "or": [
            "canTrickySpringBallJump",
            {
              "and": [
                "canWalljump",
                "canSpaceJumpWaterBounce"
              ]
            },
            {
              "and": [
                "canJumpIntoIBJ",
                "h_canUseSpringBall"
              ]
            },
            {
              "and": [
                "canIBJ",
                "canBombJumpWaterEscape"
              ]
            },
            {
              "spikeHits": 1
            }
          ]
        }
      ],
      "note": "This can be done by turning off Gravity and HiJump to jump over both spike pits.",
      "devNote": [
        "This strat is only used if the player doesn't have canCarefulJump, because otherwise the Suitless Bootless strat will be used,",
        "because canSpringBallJumpMidAir requires canDisableEquipment."
      ]
    },
    {
      "id": 66,
      "link": [
        5,
        6
      ],
      "name": "Use Flash Suit",
      "requires": [
        {
          "useFlashSuit": {}
        },
        {
          "shinespark": {
            "frames": 10,
            "excessFrames": 7
          }
        }
      ],
      "note": "It's possible to hit the block on the right while facing left to save some Energy, but that's not expected here."
    },
    {
      "id": 57,
      "link": [
        6,
        3
      ],
      "name": "Base",
      "requires": [
        "Morph"
      ]
    },
    {
      "id": 58,
      "link": [
        6,
        5
      ],
      "name": "Suitless",
      "requires": [
        "canSuitlessMaridia",
        {
          "or": [
            {
              "spikeHits": 1
            },
            "canSpringBallJumpMidAir",
            {
              "and": [
                "HiJump",
                {
                  "or": [
                    "canWalljump",
                    "h_canCrouchJumpDownGrab",
                    "canSpaceJumpWaterEscape"
                  ]
                }
              ]
            },
            {
              "and": [
                "canIBJ",
                "canBombJumpWaterEscape"
              ]
            }
          ]
        },
        {
          "or": [
            {
              "spikeHits": 1
            },
            "HiJump"
          ]
        }
      ]
    },
    {
      "id": 59,
      "link": [
        6,
        5
      ],
      "name": "Gravity",
      "requires": [
        "Gravity",
        {
          "or": [
            "SpaceJump",
            "canHBJ",
            {
              "spikeHits": 1
            }
          ]
        }
      ]
    },
    {
      "id": 60,
      "link": [
        6,
        5
      ],
      "name": "Suitless Bootless",
      "requires": [
        "canSuitlessMaridia",
        "canDisableEquipment",
        "canCarefulJump"
      ],
      "note": "This can be done by turning off Gravity and HiJump to jump over both spike pits."
    },
    {
      "link": [
        1,
        1
      ],
      "name": "Base (Unlock Door)",
      "requires": [],
      "unlocksDoors": [
        {
          "types": [
            "ammo"
          ],
          "requires": []
        }
      ]
    },
    {
      "link": [
        1,
        1
      ],
      "name": "Base (Come In Normally)",
      "entranceCondition": {
        "comeInNormally": {}
      },
      "requires": []
    },
    {
      "link": [
        2,
        2
      ],
      "name": "Base (Unlock Door)",
      "requires": [],
      "unlocksDoors": [
        {
          "types": [
            "ammo"
          ],
          "requires": []
        }
      ]
    },
    {
      "link": [
        2,
        2
      ],
      "name": "Base (Come In Normally)",
      "entranceCondition": {
        "comeInNormally": {}
      },
      "requires": []
    }
  ],
  "nextStratId": 67,
  "notables": [
    {
      "id": 1,
      "name": "G-Mode Morph, IBJ, HBJ",
      "note": "This requires multiple HBJ to get over spike pits. The first one, by the right door, must be started at the top of an IBJ."
    },
    {
      "id": 2,
      "name": "Cross Room Jump with IBJ",
      "note": [
        "Requires a runway of at least 1 tiles in the adjacent room, although it is easier with more.",
        "Start the IBJ as far left as possible. The furthest right is just right of the waterfall.",
        "Turning around, carefully, is one way to lose forward momentum and begin the IBJ.",
        "At the top of the IBJ bomb to the left and unmorph to reset fall speed."
      ]
    },
    {
      "id": 3,
      "name": "Cross Room Jump with Spring Ball, Bomb Boost",
      "note": "Use the bomb boost as Samus is going through the doorway, then spring ball after breaking the water, then ibj or use an unmorph bomb boost."
    },
    {
      "id": 4,
      "name": "Springball Spike Boost",
      "note": "When the Cacatac on the ground fires a spike, perform a  springball Jump to break the waterline and then hit the spike for extra height."
    },
    {
      "id": 5,
      "name": "HiJumpless Double SpringBall Jump and Bomb-Grapple-Jump",
      "note": [
        "1) Crouch jump and then SpringBall jump.",
        "2) Bomb-Grapple-Jump using the distant Cacatac who is above the water.",
        "3) SpringBall jump again just as Samus exits the water."
      ]
    },
    {
      "id": 6,
      "name": "Bomb Jump Water Escape",
      "note": [
        "Perform the spring ball jump near max height.",
        "Place the first bomb after the spring ball jump; just above the water line.",
        "Press pause just after placing the bomb, to disable Spring Ball (a 'spring fling', to reset fall speed).",
        "Place the second bomb soon after regaining control, while the game is fading back in."
      ]
    }
  ],
  "nextNotableId": 7
}