Screw Attack Room

Room ID: 151

Wiki
Difficulty filter

From: 1
Bottom Left Door
To: 1
Bottom Left Door

Exit condition:

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

Requires:

{
  "obstaclesNotCleared": [
    "C"
  ]
}
{
  "heatFrames": 10
}
"h_canHeatedCrystalFlash"
{
  "heatFrames": 10
}

Clears obstacles: B

From: 1
Bottom Left Door
To: 2
Middle Right Door

Entrance condition:

{
  "comeInShinecharged": {
    "framesRequired": 25
  }
}

Requires:

"h_canNavigateHeatRooms"
{
  "heatFrames": 200
}
{
  "shinespark": {
    "frames": 31,
    "excessFrames": 10
  }
}

Clears obstacles: B

From: 1
Bottom Left Door
To: 2
Middle Right Door

Jump through the lowest part of the door to enter with enough momentum to break the bomb blocks with Screw Attack.

Entrance condition:

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

Requires:

{
  "doorUnlockedAtNode": 2
}
"HiJump"
"ScrewAttack"
"canTrickyJump"
{
  "heatFrames": 80
}

Unlocks doors:

{"nodeId":2,"types":["super"],"requires":[]}
{"nodeId":2,"types":["missiles","powerbomb"],"requires":["never"]}
From: 1
Bottom Left Door
To: 2
Middle Right Door

Jump through the lowest part of the door to enter with enough momentum to break the bomb blocks using SpeedBooster.

Entrance condition:

{
  "comeInGettingBlueSpeed": {
    "length": 0,
    "openEnd": 0,
    "minExtraRunSpeed": "$2.A"
  }
}

Requires:

"HiJump"
"canTrickyJump"
{
  "heatFrames": 80
}
From: 1
Bottom Left Door
To: 3
Top Right Door

Entrance condition:

{
  "comeInShinecharged": {
    "framesRequired": 50
  }
}

Requires:

"h_canNavigateHeatRooms"
{
  "heatFrames": 250
}
{
  "shinespark": {
    "frames": 41,
    "excessFrames": 4
  }
}

Clears obstacles: A, B

From: 1
Bottom Left Door
To: 3
Top Right Door

Climb up 2 screens.

Entrance condition:

{
  "comeInWithDoorStuckSetup": {}
}

Requires:

"canXRayClimb"
{
  "heatFrames": 2800
}
From: 1
Bottom Left Door
To: 3
Top Right Door

Entrance condition:

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

Bypasses door shell: true

From: 1
Bottom Left Door
To: 3
Top Right Door

Entrance condition:

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

Exit condition:

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

Bypasses door shell: true

From: 1
Bottom Left Door
To: 3
Top Right Door

Entrance condition:

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

Exit condition:

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

Bypasses door shell: true

From: 1
Bottom Left Door
To: 4
Item

Requires:

"h_canNavigateHeatRooms"
{
  "heatFrames": 60
}
From: 1
Bottom Left Door
To: 5
Junction Above Bottom Blocks

Jump through the lowest part of the door to enter with enough momentum to break the bomb blocks with Screw Attack.

Entrance condition:

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

Requires:

"ScrewAttack"
"canTrickyJump"
{
  "heatFrames": 50
}
From: 1
Bottom Left Door
To: 5
Junction Above Bottom Blocks

Jump through the lowest part of the door to enter with enough momentum to break the bomb blocks using SpeedBooster.

Entrance condition:

{
  "comeInGettingBlueSpeed": {
    "length": 0,
    "openEnd": 0,
    "minExtraRunSpeed": "$2.A"
  }
}

Requires:

"canTrickyJump"
{
  "heatFrames": 50
}
From: 1
Bottom Left Door
To: 5
Junction Above Bottom Blocks

Climb up half a screen.

Entrance condition:

{
  "comeInWithDoorStuckSetup": {}
}

Requires:

"canXRayClimb"
{
  "heatFrames": 900
}
From: 2
Middle Right Door
To: 1
Bottom Left Door

Entrance condition:

{
  "comeInWithGrappleTeleport": {
    "blockPositions": [
      [
        2,
        34
      ]
    ]
  }
}

Bypasses door shell: true

From: 2
Middle Right Door
To: 1
Bottom Left Door

Entrance condition:

{
  "comeInWithGrappleTeleport": {
    "blockPositions": [
      [
        2,
        34
      ]
    ]
  }
}

Exit condition:

{
  "leaveWithGrappleTeleport": {
    "blockPositions": [
      [
        2,
        34
      ]
    ]
  }
}

Bypasses door shell: true

From: 2
Middle Right Door
To: 2
Middle Right Door

Exit condition:

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

Requires:

{
  "heatFrames": 40
}
"h_canHeatedCrystalFlash"

Clears obstacles: B

From: 2
Middle Right Door
To: 2
Middle Right Door

Entrance condition:

{
  "comeInWithGMode": {
    "mode": "direct",
    "morphed": false
  }
}

Requires:

{
  "or": [
    "SpaceJump",
    "canWalljump",
    "HiJump",
    "canSpringBallJumpMidAir",
    "SpeedBooster",
    "h_canCrouchJumpDownGrab",
    "canIBJ"
  ]
}

Exit condition:

{
  "leaveWithGMode": {
    "morphed": false
  }
}

Bypasses door shell: true

From: 2
Middle Right Door
To: 2
Middle Right Door

Entrance condition:

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

Requires:

"canArtificialMorph"

Exit condition:

{
  "leaveWithGMode": {
    "morphed": true
  }
}

Bypasses door shell: true

From: 2
Middle Right Door
To: 3
Top Right Door

Entrance condition:

{
  "comeInNormally": {}
}

Requires:

"canPrepareForNextRoom"
"SpaceJump"
"ScrewAttack"
{
  "heatFrames": 200
}

Clears obstacles: A

From: 2
Middle Right Door
To: 3
Top Right Door

Position yourself in the door way, then run and jump. Makes it possible to walljump up.

Requires:

{
  "obstaclesCleared": [
    "A"
  ]
}
"HiJump"
"SpeedBooster"
"canPreciseWalljump"
"canCarefulJump"
{
  "or": [
    "canTrickyJump",
    "h_canBackIntoCorner"
  ]
}
{
  "doorUnlockedAtNode": 2
}
{
  "heatFrames": 160
}

Unlocks doors:

{"nodeId":2,"types":["missiles"],"requires":[{"heatFrames":50}]}
{"nodeId":2,"types":["super"],"requires":[]}
{"nodeId":2,"types":["powerbomb"],"requires":[{"heatFrames":110}]}
From: 2
Middle Right Door
To: 3
Top Right Door

It may help to disable HiJump first and then re-equip it with the springball jump. Doing this, the springball jump may be buffered.

Requires:

{
  "obstaclesCleared": [
    "A"
  ]
}
"HiJump"
{
  "doorUnlockedAtNode": 2
}
"canTrickySpringBallJump"
"canLateralMidAirMorph"
{
  "heatFrames": 120
}

Unlocks doors:

{"nodeId":2,"types":["missiles"],"requires":[{"heatFrames":50}]}
{"nodeId":2,"types":["super"],"requires":[]}
{"nodeId":2,"types":["powerbomb"],"requires":[{"heatFrames":110}]}
From: 2
Middle Right Door
To: 3
Top Right Door

Position Samus in the doorway a few pixels from the edge. Dashing stationary spinjump into a delayed CWJ and hopefully catch the upper ledge with a walljump.

Requires:

{
  "notable": "Doorway CWJ"
}
{
  "obstaclesCleared": [
    "A"
  ]
}
"h_heatProof"
"HiJump"
"canCWJ"
"canStationarySpinJump"
"canInsaneJump"
"canInsaneWalljump"
{
  "doorUnlockedAtNode": 2
}

Unlocks doors:

{"nodeId":2,"types":["missiles"],"requires":[{"heatFrames":50}]}
{"nodeId":2,"types":["super"],"requires":[]}
{"nodeId":2,"types":["powerbomb"],"requires":[{"heatFrames":110}]}
From: 2
Middle Right Door
To: 3
Top Right Door

Run through the doorway with enough momentum to break the bomb blocks with Screw.

Entrance condition:

{
  "comeInRunning": {
    "minTiles": 6,
    "speedBooster": true
  }
}

Requires:

{
  "notable": "Transition Screwjump"
}
"h_canNavigateHeatRooms"
"ScrewAttack"
"HiJump"
"canWalljump"
{
  "heatFrames": 150
}

Clears obstacles: A

From: 2
Middle Right Door
To: 3
Top Right Door

Run through the doorway with enough momentum to break the bomb blocks with Screw.

Entrance condition:

{
  "comeInRunning": {
    "minTiles": 5.4375,
    "speedBooster": true
  }
}

Requires:

{
  "notable": "Transition Screwjump"
}
"h_canNavigateHeatRooms"
"ScrewAttack"
"HiJump"
"canTrickyJump"
"canWalljump"
{
  "heatFrames": 150
}

Clears obstacles: A

From: 2
Middle Right Door
To: 3
Top Right Door

Run through the doorway with enough momentum to break the bomb blocks with Screw.

Entrance condition:

{
  "comeInRunning": {
    "minTiles": 7,
    "speedBooster": true
  }
}

Requires:

{
  "notable": "Transition Screwjump"
}
"h_canNavigateHeatRooms"
"ScrewAttack"
"HiJump"
{
  "heatFrames": 150
}

Clears obstacles: A

From: 2
Middle Right Door
To: 3
Top Right Door

Run through the doorway with enough momentum to break the bomb blocks with Screw.

Entrance condition:

{
  "comeInRunning": {
    "minTiles": 2,
    "speedBooster": true
  }
}

Requires:

{
  "notable": "Transition Screwjump"
}
"h_canNavigateHeatRooms"
"ScrewAttack"
"HiJump"
"canTrickyDashJump"
"canWalljump"
{
  "heatFrames": 150
}

Clears obstacles: A

From: 2
Middle Right Door
To: 3
Top Right Door

Entrance condition:

{
  "comeInShinecharged": {
    "framesRequired": 50
  }
}

Requires:

"h_canNavigateHeatRooms"
{
  "heatFrames": 250
}
{
  "shinespark": {
    "frames": 35,
    "excessFrames": 4
  }
}

Clears obstacles: A

From: 2
Middle Right Door
To: 3
Top Right Door

Jump into the room and spark diagonally once above the center of the door vertically. Or diagonally spark anywhere that is not the bottom of the door in the previous room.

Entrance condition:

{
  "comeInShinecharged": {
    "framesRequired": 15
  }
}

Requires:

"h_canNavigateHeatRooms"
"canMidairShinespark"
"canShinechargeMovement"
"canPrepareForNextRoom"
{
  "heatFrames": 250
}
{
  "shinespark": {
    "frames": 18,
    "excessFrames": 4
  }
}

Clears obstacles: A

From: 2
Middle Right Door
To: 3
Top Right Door

Climb up 1 screen.

Entrance condition:

{
  "comeInWithDoorStuckSetup": {}
}

Requires:

"canXRayClimb"
{
  "heatFrames": 1600
}
From: 2
Middle Right Door
To: 3
Top Right Door

Enter with G-mode direct, back up to between 1 and 6 pixels from the door transition, and activate X-ray to get very deep stuck in the door. Climb up 1 screen, and perform a turnaround buffered spin-jump away from the door to trigger the transition, bypassing any lock on the door.

Entrance condition:

{
  "comeInWithGMode": {
    "mode": "direct",
    "morphed": false
  }
}

Requires:

"h_heatProof"
{
  "or": [
    "canWalljump",
    "h_canCrouchJumpDownGrab",
    "HiJump",
    "h_canFly",
    "canArtificialMorph"
  ]
}
"canXRayClimb"

Bypasses door shell: true

From: 2
Middle Right Door
To: 3
Top Right Door

Entrance condition:

{
  "comeInWithGrappleTeleport": {
    "blockPositions": [
      [
        5,
        3
      ],
      [
        7,
        2
      ]
    ]
  }
}

Requires:

{
  "heatFrames": 65
}
From: 2
Middle Right Door
To: 3
Top Right Door

After teleporting, Samus should be standing inside the wall. Retract Grapple by pressing up, which will pull Samus down and right. Hold right, and release Grapple while still holding right. Perform a turn-around spin jump (to the left). Then morph and roll out to the right.

Entrance condition:

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

Requires:

{
  "notable": "Grapple Teleport Inside Wall"
}
"canOffScreenMovement"
"Morph"
{
  "heatFrames": 200
}
From: 2
Middle Right Door
To: 4
Item

Entrance condition:

{
  "comeInNormally": {}
}

Requires:

"ScrewAttack"
"canPrepareForNextRoom"
{
  "heatFrames": 90
}

Clears obstacles: B

From: 2
Middle Right Door
To: 4
Item

This expects the more controlled Temporary Blue to fall though the blocks, not storing a shinecharge through the door.

Entrance condition:

{
  "comeInWithTemporaryBlue": {}
}

Requires:

{
  "heatFrames": 75
}

Clears obstacles: B

Store the shinecharge while hitting the door transition to maintain the ability to break blocks.

Entrance condition:

{
  "comeInShinecharging": {
    "length": 0,
    "openEnd": 1
  }
}

Requires:

{
  "notable": "Descent and Shinespark Escape"
}
"canTemporaryBlue"
"canPrepareForNextRoom"
{
  "heatFrames": 75
}

Clears obstacles: B, C

From: 2
Middle Right Door
To: 4
Item

Enter with a shinespark stored and screw attack down to the item.

Entrance condition:

{
  "comeInShinecharged": {
    "framesRequired": 125
  }
}

Requires:

{
  "notable": "Descent and Shinespark Escape"
}
"ScrewAttack"
"canShinechargeMovement"
{
  "heatFrames": 120
}

Clears obstacles: B, C

From: 2
Middle Right Door
To: 5
Junction Above Bottom Blocks

Requires:

{
  "heatFrames": 50
}
From: 2
Middle Right Door
To: 5
Junction Above Bottom Blocks

Run in the adjacent room and jump through the door, to place a Bomb to break the top bomb blocks.

Entrance condition:

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

Requires:

{
  "notable": "Transition Speedjump with Bombs"
}
"HiJump"
"canMidAirMorph"
"h_canUseMorphBombs"
{
  "heatFrames": 200
}

Clears obstacles: A

From: 2
Middle Right Door
To: 5
Junction Above Bottom Blocks

Run in the adjacent room and jump through the door, to place a Bomb to break the top bomb blocks.

Entrance condition:

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

Requires:

{
  "notable": "Transition Speedjump with Bombs"
}
"HiJump"
"canTrickyDashJump"
"canMidAirMorph"
"h_canUseMorphBombs"
{
  "heatFrames": 200
}

Clears obstacles: A

From: 3
Top Right Door
To: 1
Bottom Left Door

Entrance condition:

{
  "comeInWithGrappleTeleport": {
    "blockPositions": [
      [
        2,
        34
      ]
    ]
  }
}

Bypasses door shell: true

From: 3
Top Right Door
To: 1
Bottom Left Door

Entrance condition:

{
  "comeInWithGrappleTeleport": {
    "blockPositions": [
      [
        2,
        34
      ]
    ]
  }
}

Exit condition:

{
  "leaveWithGrappleTeleport": {
    "blockPositions": [
      [
        2,
        34
      ]
    ]
  }
}

Bypasses door shell: true

From: 3
Top Right Door
To: 2
Middle Right Door

Requires:

{
  "obstaclesCleared": [
    "A"
  ]
}
{
  "doorUnlockedAtNode": 2
}
"canResetFallSpeed"
"Wave"
{
  "heatFrames": 200
}

Unlocks doors:

{"types":["ammo"],"requires":["never"]}
From: 3
Top Right Door
To: 2
Middle Right Door

Requires:

{
  "obstaclesCleared": [
    "A"
  ]
}
{
  "doorUnlockedAtNode": 2
}
"canResetFallSpeed"
"canTrickyJump"
{
  "heatFrames": 145
}

Unlocks doors:

{"types":["super"],"requires":["canPrepareForNextRoom"]}
{"types":["missiles","powerbomb"],"requires":["never"]}
From: 3
Top Right Door
To: 3
Top Right Door

Requires:

{
  "obstaclesCleared": [
    "A"
  ]
}

Exit condition:

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

Requires:

{
  "obstaclesNotCleared": [
    "A"
  ]
}

Exit condition:

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

Requires:

"h_canHeatedCrystalFlash"

Clears obstacles: A

From: 3
Top Right Door
To: 4
Item

This expects the more controlled Temporary Blue to fall though the blocks, not storing a shinecharge on the first breakable block.

Entrance condition:

{
  "comeInShinecharging": {
    "length": 12,
    "openEnd": 0
  }
}

Requires:

"canTemporaryBlue"
"canXRayTurnaround"
{
  "heatFrames": 285
}

Clears obstacles: A, B

From: 3
Top Right Door
To: 4
Item

This expects the more controlled Temporary Blue to fall though the blocks, not storing a shinecharge on the first breakable block.

Entrance condition:

{
  "comeInShinecharging": {
    "length": 3,
    "openEnd": 0
  }
}

Requires:

"canTemporaryBlue"
{
  "heatFrames": 240
}

Clears obstacles: A, B

Simultaneously store a shinespark and break through the bomb blocks down to the item location.

Entrance condition:

{
  "comeInShinecharging": {
    "length": 3,
    "openEnd": 1
  }
}

Requires:

{
  "notable": "Descent and Shinespark Escape"
}
"canTemporaryBlue"
"canShinechargeMovementTricky"
{
  "heatFrames": 130
}

Clears obstacles: A, B, C

Store a shinespark then use screw to break through the bomb blocks down to the item location.

Entrance condition:

{
  "comeInShinecharging": {
    "length": 12,
    "openEnd": 0
  }
}

Requires:

{
  "notable": "Descent and Shinespark Escape"
}
"ScrewAttack"
"canShinechargeMovement"
{
  "heatFrames": 170
}

Clears obstacles: A, B, C

From: 3
Top Right Door
To: 4
Item

Moonfall to clip through the Bomb blocks to the bottom of the room.

Entrance condition:

{
  "comeInWithStoredFallSpeed": {
    "fallSpeedInTiles": 1
  }
}

Requires:

"canPrepareForNextRoom"
"canMoonfall"
"canFreeFallClip"
{
  "heatFrames": 85
}
From: 3
Top Right Door
To: 5
Junction Above Bottom Blocks

Requires:

{
  "heatFrames": 120
}
{
  "or": [
    "ScrewAttack",
    {
      "obstaclesCleared": [
        "A"
      ]
    }
  ]
}

Clears obstacles: A

From: 3
Top Right Door
To: 5
Junction Above Bottom Blocks

Requires:

"h_canUsePowerBombs"
{
  "heatFrames": 220
}

Clears obstacles: A

From: 3
Top Right Door
To: 5
Junction Above Bottom Blocks

Requires:

"h_canUseMorphBombs"
{
  "heatFrames": 220
}

Clears obstacles: A

From: 3
Top Right Door
To: 5
Junction Above Bottom Blocks

Entrance condition:

{
  "comeInGettingBlueSpeed": {
    "length": 8,
    "openEnd": 0
  }
}

Requires:

{
  "heatFrames": 120
}

Clears obstacles: A

From: 3
Top Right Door
To: 5
Junction Above Bottom Blocks

After teleporting, as Samus swings to the right, begin holding down to extend Grapple just as Samus is slightly right of vertical. Samus should swing back left and get stuck on the floor one tile to the right of the Grapple attachment point. Release Grapple and Samus will clip through the floor.

Entrance condition:

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

Requires:

{
  "heatFrames": 170
}
From: 3
Top Right Door
To: 5
Junction Above Bottom Blocks

Moonfall to clip through the Bomb blocks Break spin with Shot or Angle Aim to avoid clipping all the way to the bottom of the room.

Entrance condition:

{
  "comeInWithStoredFallSpeed": {
    "fallSpeedInTiles": 1
  }
}

Requires:

"canPrepareForNextRoom"
"canMoonfall"
{
  "heatFrames": 90
}
From: 4
Item
To: 1
Bottom Left Door

Requires:

"h_canNavigateHeatRooms"
{
  "heatFrames": 60
}
From: 4
Item
To: 2
Middle Right Door

Diagonally shinespark towards the middle door.

Requires:

{
  "notable": "Descent and Shinespark Escape"
}
"canShinechargeMovement"
{
  "obstaclesCleared": [
    "C"
  ]
}
{
  "heatFrames": 240
}
{
  "shinespark": {
    "frames": 31,
    "excessFrames": 10
  }
}

Clears obstacles: B

Unlocks doors:

{"types":["super"],"requires":[]}
{"types":["missiles","powerbomb"],"requires":["never"]}
From: 4
Item
To: 3
Top Right Door

Carry a shinecharge down though the bomb blocks and shinespark back up.

Requires:

{
  "notable": "Descent and Shinespark Escape"
}
"canShinechargeMovement"
{
  "obstaclesCleared": [
    "C"
  ]
}
{
  "heatFrames": 270
}
{
  "shinespark": {
    "frames": 41,
    "excessFrames": 4
  }
}

Clears obstacles: A, B

From: 4
Item
To: 4
Item

Requires:

{
  "obstaclesNotCleared": [
    "C"
  ]
}
"h_canHeatedCrystalFlash"

Clears obstacles: B

From: 4
Item
To: 5
Junction Above Bottom Blocks

Requires:

{
  "heatFrames": 120
}
{
  "obstaclesCleared": [
    "B"
  ]
}
From: 4
Item
To: 5
Junction Above Bottom Blocks

Requires:

"ScrewAttack"
{
  "heatFrames": 120
}

Clears obstacles: B

From: 4
Item
To: 5
Junction Above Bottom Blocks

Requires:

"h_canUsePowerBombs"
{
  "heatFrames": 220
}

Clears obstacles: B

From: 4
Item
To: 5
Junction Above Bottom Blocks

Requires:

{
  "or": [
    "canTrivialMidAirMorph",
    "h_canUseSpringBall"
  ]
}
"h_canUseMorphBombs"
{
  "heatFrames": 220
}

Clears obstacles: B

From: 5
Junction Above Bottom Blocks
To: 2
Middle Right Door

Requires:

{
  "heatFrames": 80
}
{
  "or": [
    "HiJump",
    "SpaceJump",
    "canWalljump",
    "h_canCrouchJumpDownGrab",
    "canSpringBallJumpMidAir",
    {
      "and": [
        "canIBJ",
        {
          "heatFrames": 440
        }
      ]
    },
    {
      "and": [
        "canJumpIntoIBJ",
        {
          "heatFrames": 80
        }
      ]
    }
  ]
}
From: 5
Junction Above Bottom Blocks
To: 3
Top Right Door

Requires:

{
  "obstaclesCleared": [
    "A"
  ]
}
"canIBJ"
{
  "heatFrames": 1300
}
From: 5
Junction Above Bottom Blocks
To: 3
Top Right Door

Place a Power Bomb during the IBJ to break the blocks without falling.

Requires:

"h_canNavigateHeatRooms"
"canPowerBombMidIBJ"
{
  "heatFrames": 1300
}

Clears obstacles: A

From: 5
Junction Above Bottom Blocks
To: 3
Top Right Door

Requires:

"SpaceJump"
{
  "or": [
    {
      "obstaclesCleared": [
        "A"
      ]
    },
    "ScrewAttack"
  ]
}
{
  "heatFrames": 400
}
From: 5
Junction Above Bottom Blocks
To: 3
Top Right Door

Requires:

{
  "obstaclesCleared": [
    "A"
  ]
}
"h_HeatedSpringwall"
{
  "heatFrames": 245
}
From: 5
Junction Above Bottom Blocks
To: 4
Item

Requires:

{
  "heatFrames": 40
}
{
  "or": [
    {
      "obstaclesCleared": [
        "B"
      ]
    },
    {
      "and": [
        "ScrewAttack",
        {
          "heatFrames": 30
        }
      ]
    }
  ]
}

Clears obstacles: B

From: 5
Junction Above Bottom Blocks
To: 4
Item

Requires:

"h_canUsePowerBombs"
{
  "heatFrames": 140
}

Clears obstacles: B

From: 5
Junction Above Bottom Blocks
To: 4
Item

Requires:

"h_canUseMorphBombs"
{
  "heatFrames": 130
}

Clears obstacles: B

From: 5
Junction Above Bottom Blocks
To: 5
Junction Above Bottom Blocks

Requires:

"h_canUsePowerBombs"
"canTrivialMidAirMorph"
{
  "heatFrames": 150
}

Clears obstacles: A

From: 5
Junction Above Bottom Blocks
To: 5
Junction Above Bottom Blocks

Expects that Samus falls down afterwards.

Requires:

"canIBJ"
{
  "heatFrames": 1150
}

Clears obstacles: A

From: 5
Junction Above Bottom Blocks
To: 5
Junction Above Bottom Blocks

Requires:

"h_canUseMorphBombs"
"SpaceJump"
"canMidAirMorph"
{
  "heatFrames": 250
}

Clears obstacles: A

From: 5
Junction Above Bottom Blocks
To: 5
Junction Above Bottom Blocks

Use a Springwall to get up to the bomb blocks, to break them with a bomb.

Requires:

"h_canUseMorphBombs"
"h_HeatedSpringwall"
{
  "heatFrames": 250
}

Clears obstacles: A

From: 5
Junction Above Bottom Blocks
To: 5
Junction Above Bottom Blocks

Requires:

{
  "heatFrames": 40
}
"h_canHeatedCrystalFlash"

Clears obstacles: B

From: 6
Middle Right Door Spawn At Junction
To: 5
Junction Above Bottom Blocks

Requires:

{
  "heatFrames": 50
}

{
  "$schema": "../../../schema/m3-room.schema.json",
  "id": 151,
  "name": "Screw Attack Room",
  "area": "Norfair",
  "subarea": "Lower",
  "subsubarea": "West",
  "playable": true,
  "roomAddress": "0x7B6C1",
  "roomEnvironments": [
    {
      "heated": true
    }
  ],
  "nodes": [
    {
      "id": 1,
      "name": "Bottom Left Door",
      "nodeType": "door",
      "nodeSubType": "blue",
      "nodeAddress": "0x0019a86",
      "doorOrientation": "left",
      "doorEnvironments": [
        {
          "physics": "air"
        }
      ]
    },
    {
      "id": 2,
      "name": "Middle Right Door",
      "nodeType": "door",
      "nodeSubType": "blue",
      "nodeAddress": "0x0019a7a",
      "doorOrientation": "right",
      "doorEnvironments": [
        {
          "physics": "air"
        }
      ],
      "spawnAt": 6
    },
    {
      "id": 3,
      "name": "Top Right Door",
      "nodeType": "door",
      "nodeSubType": "blue",
      "nodeAddress": "0x0019a6e",
      "doorOrientation": "right",
      "doorEnvironments": [
        {
          "physics": "air"
        }
      ]
    },
    {
      "id": 4,
      "name": "Item",
      "nodeType": "item",
      "nodeSubType": "chozo",
      "nodeItem": "ScrewAttack",
      "nodeAddress": "0x79110",
      "locks": [
        {
          "name": "Dummy Item Lock",
          "lockType": "gameFlag",
          "unlockStrats": [
            {
              "name": "Base (Collect Item)",
              "notable": false,
              "requires": []
            }
          ]
        }
      ]
    },
    {
      "id": 5,
      "name": "Junction Above Bottom Blocks",
      "nodeType": "junction",
      "nodeSubType": "junction"
    },
    {
      "id": 6,
      "name": "Middle Right Door Spawn At Junction",
      "nodeType": "junction",
      "nodeSubType": "junction"
    }
  ],
  "obstacles": [
    {
      "id": "A",
      "name": "Top Bomb Blocks",
      "obstacleType": "inanimate"
    },
    {
      "id": "B",
      "name": "Bottom Bomb Blocks",
      "obstacleType": "inanimate"
    },
    {
      "id": "C",
      "name": "Shinecharge from Above",
      "obstacleType": "abstract"
    }
  ],
  "enemies": [],
  "links": [
    {
      "from": 1,
      "to": [
        {
          "id": 1
        },
        {
          "id": 2,
          "note": "Shinespark and XRayClimb have a direct link. Other strats should go 1 -> 4 -> 2."
        },
        {
          "id": 3,
          "note": "Shinespark and XRayClimb have a direct link. Other strats should go 1 -> 4 -> 2 -> 3."
        },
        {
          "id": 4
        },
        {
          "id": 5
        }
      ]
    },
    {
      "from": 2,
      "to": [
        {
          "id": 1
        },
        {
          "id": 2
        },
        {
          "id": 3
        },
        {
          "id": 4
        },
        {
          "id": 5,
          "note": "The heat frames for these strats assumes you've already fallen from the door, because the cost is already baked into the subsequent 5-> 3 heat costs when relevant."
        }
      ]
    },
    {
      "from": 3,
      "to": [
        {
          "id": 1
        },
        {
          "id": 2
        },
        {
          "id": 3
        },
        {
          "id": 4
        },
        {
          "id": 5
        }
      ]
    },
    {
      "from": 4,
      "to": [
        {
          "id": 1
        },
        {
          "id": 2
        },
        {
          "id": 3
        },
        {
          "id": 4
        },
        {
          "id": 5
        }
      ]
    },
    {
      "from": 5,
      "to": [
        {
          "id": 2
        },
        {
          "id": 3
        },
        {
          "id": 4
        },
        {
          "id": 5
        }
      ]
    },
    {
      "from": 6,
      "to": [
        {
          "id": 5
        }
      ]
    }
  ],
  "strats": [
    {
      "id": 1,
      "link": [
        1,
        1
      ],
      "name": "Leave With Runway",
      "requires": [],
      "exitCondition": {
        "leaveWithRunway": {
          "length": 1,
          "openEnd": 1
        }
      }
    },
    {
      "id": 2,
      "link": [
        1,
        1
      ],
      "name": "Crystal Flash",
      "requires": [
        {
          "obstaclesNotCleared": [
            "C"
          ]
        },
        {
          "heatFrames": 10
        },
        "h_canHeatedCrystalFlash",
        {
          "heatFrames": 10
        }
      ],
      "clearsObstacles": [
        "B"
      ],
      "flashSuitChecked": true
    },
    {
      "id": 3,
      "link": [
        1,
        2
      ],
      "name": "Shinespark",
      "entranceCondition": {
        "comeInShinecharged": {
          "framesRequired": 25
        }
      },
      "requires": [
        "h_canNavigateHeatRooms",
        {
          "heatFrames": 200
        },
        {
          "shinespark": {
            "frames": 31,
            "excessFrames": 10
          }
        }
      ],
      "clearsObstacles": [
        "B"
      ],
      "flashSuitChecked": true
    },
    {
      "id": 76,
      "link": [
        1,
        2
      ],
      "name": "Direct jump with Screw Attack",
      "entranceCondition": {
        "comeInJumping": {
          "minTiles": 12.4375,
          "speedBooster": true
        }
      },
      "requires": [
        {
          "doorUnlockedAtNode": 2
        },
        "HiJump",
        "ScrewAttack",
        "canTrickyJump",
        {
          "heatFrames": 80
        }
      ],
      "unlocksDoors": [
        {
          "nodeId": 2,
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "nodeId": 2,
          "types": [
            "missiles",
            "powerbomb"
          ],
          "requires": [
            "never"
          ]
        }
      ],
      "note": [
        "Jump through the lowest part of the door to enter with enough momentum to break the bomb blocks with Screw Attack."
      ]
    },
    {
      "id": 77,
      "link": [
        1,
        2
      ],
      "name": "Direct jump with SpeedBooster",
      "entranceCondition": {
        "comeInGettingBlueSpeed": {
          "length": 0,
          "openEnd": 0,
          "minExtraRunSpeed": "$2.A"
        }
      },
      "requires": [
        "HiJump",
        "canTrickyJump",
        {
          "heatFrames": 80
        }
      ],
      "note": [
        "Jump through the lowest part of the door to enter with enough momentum to break the bomb blocks using SpeedBooster."
      ]
    },
    {
      "id": 4,
      "link": [
        1,
        3
      ],
      "name": "Shinespark",
      "entranceCondition": {
        "comeInShinecharged": {
          "framesRequired": 50
        }
      },
      "requires": [
        "h_canNavigateHeatRooms",
        {
          "heatFrames": 250
        },
        {
          "shinespark": {
            "frames": 41,
            "excessFrames": 4
          }
        }
      ],
      "clearsObstacles": [
        "A",
        "B"
      ],
      "flashSuitChecked": true
    },
    {
      "id": 5,
      "link": [
        1,
        3
      ],
      "name": "Left-Side X-Ray Climb (to Top Door)",
      "entranceCondition": {
        "comeInWithDoorStuckSetup": {}
      },
      "requires": [
        "canXRayClimb",
        {
          "heatFrames": 2800
        }
      ],
      "flashSuitChecked": true,
      "note": "Climb up 2 screens.",
      "devNote": "Heat frames split into the actual climb and the setup in the adjacent room."
    },
    {
      "id": 6,
      "link": [
        1,
        3
      ],
      "name": "Grapple Teleport",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              12,
              12
            ],
            [
              12,
              13
            ]
          ]
        }
      },
      "requires": [],
      "bypassesDoorShell": true
    },
    {
      "id": 7,
      "link": [
        1,
        3
      ],
      "name": "Carry Grapple Teleport (Top Position)",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              12,
              12
            ]
          ]
        }
      },
      "requires": [],
      "bypassesDoorShell": true,
      "exitCondition": {
        "leaveWithGrappleTeleport": {
          "blockPositions": [
            [
              12,
              12
            ]
          ]
        }
      }
    },
    {
      "id": 8,
      "link": [
        1,
        3
      ],
      "name": "Carry Grapple Teleport (Bottom Position)",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              12,
              13
            ]
          ]
        }
      },
      "requires": [],
      "bypassesDoorShell": true,
      "exitCondition": {
        "leaveWithGrappleTeleport": {
          "blockPositions": [
            [
              12,
              13
            ]
          ]
        }
      }
    },
    {
      "id": 9,
      "link": [
        1,
        4
      ],
      "name": "Base",
      "requires": [
        "h_canNavigateHeatRooms",
        {
          "heatFrames": 60
        }
      ]
    },
    {
      "id": 78,
      "link": [
        1,
        5
      ],
      "name": "Direct jump with Screw Attack",
      "entranceCondition": {
        "comeInJumping": {
          "minTiles": 12.4375,
          "speedBooster": true
        }
      },
      "requires": [
        "ScrewAttack",
        "canTrickyJump",
        {
          "heatFrames": 50
        }
      ],
      "note": [
        "Jump through the lowest part of the door to enter with enough momentum to break the bomb blocks with Screw Attack."
      ]
    },
    {
      "id": 79,
      "link": [
        1,
        5
      ],
      "name": "Direct jump with SpeedBooster",
      "entranceCondition": {
        "comeInGettingBlueSpeed": {
          "length": 0,
          "openEnd": 0,
          "minExtraRunSpeed": "$2.A"
        }
      },
      "requires": [
        "canTrickyJump",
        {
          "heatFrames": 50
        }
      ],
      "note": [
        "Jump through the lowest part of the door to enter with enough momentum to break the bomb blocks using SpeedBooster."
      ]
    },
    {
      "id": 10,
      "link": [
        1,
        5
      ],
      "name": "Left-Side X-Ray Climb (to Middle Door)",
      "entranceCondition": {
        "comeInWithDoorStuckSetup": {}
      },
      "requires": [
        "canXRayClimb",
        {
          "heatFrames": 900
        }
      ],
      "flashSuitChecked": true,
      "note": "Climb up half a screen."
    },
    {
      "id": 11,
      "link": [
        2,
        1
      ],
      "name": "Grapple Teleport",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              2,
              34
            ]
          ]
        }
      },
      "requires": [],
      "bypassesDoorShell": true
    },
    {
      "id": 12,
      "link": [
        2,
        1
      ],
      "name": "Carry Grapple Teleport",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              2,
              34
            ]
          ]
        }
      },
      "requires": [],
      "bypassesDoorShell": true,
      "exitCondition": {
        "leaveWithGrappleTeleport": {
          "blockPositions": [
            [
              2,
              34
            ]
          ]
        }
      }
    },
    {
      "id": 13,
      "link": [
        2,
        2
      ],
      "name": "Leave With Runway",
      "requires": [],
      "exitCondition": {
        "leaveWithRunway": {
          "length": 1,
          "openEnd": 1
        }
      }
    },
    {
      "id": 14,
      "link": [
        2,
        2
      ],
      "name": "Crystal Flash",
      "requires": [
        {
          "heatFrames": 40
        },
        "h_canHeatedCrystalFlash"
      ],
      "clearsObstacles": [
        "B"
      ],
      "flashSuitChecked": true
    },
    {
      "id": 15,
      "link": [
        2,
        2
      ],
      "name": "Carry G-Mode Back Through",
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "direct",
          "morphed": false
        }
      },
      "requires": [
        {
          "or": [
            "SpaceJump",
            "canWalljump",
            "HiJump",
            "canSpringBallJumpMidAir",
            "SpeedBooster",
            "h_canCrouchJumpDownGrab",
            "canIBJ"
          ]
        }
      ],
      "exitCondition": {
        "leaveWithGMode": {
          "morphed": false
        }
      },
      "bypassesDoorShell": true,
      "flashSuitChecked": true
    },
    {
      "id": 16,
      "link": [
        2,
        2
      ],
      "name": "Carry G-Mode Morph Back Through",
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "direct",
          "morphed": true
        }
      },
      "requires": [
        "canArtificialMorph"
      ],
      "exitCondition": {
        "leaveWithGMode": {
          "morphed": true
        }
      },
      "bypassesDoorShell": true,
      "flashSuitChecked": true,
      "devNote": "Artificial morph will allow Samus not to fall; real Morph is not sufficient."
    },
    {
      "id": 17,
      "link": [
        2,
        3
      ],
      "name": "Space Screw",
      "entranceCondition": {
        "comeInNormally": {}
      },
      "requires": [
        "canPrepareForNextRoom",
        "SpaceJump",
        "ScrewAttack",
        {
          "heatFrames": 200
        }
      ],
      "clearsObstacles": [
        "A"
      ]
    },
    {
      "id": 18,
      "link": [
        2,
        3
      ],
      "name": "Doorway Speedjump",
      "requires": [
        {
          "obstaclesCleared": [
            "A"
          ]
        },
        "HiJump",
        "SpeedBooster",
        "canPreciseWalljump",
        "canCarefulJump",
        {
          "or": [
            "canTrickyJump",
            "h_canBackIntoCorner"
          ]
        },
        {
          "doorUnlockedAtNode": 2
        },
        {
          "heatFrames": 160
        }
      ],
      "unlocksDoors": [
        {
          "nodeId": 2,
          "types": [
            "missiles"
          ],
          "requires": [
            {
              "heatFrames": 50
            }
          ]
        },
        {
          "nodeId": 2,
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "nodeId": 2,
          "types": [
            "powerbomb"
          ],
          "requires": [
            {
              "heatFrames": 110
            }
          ]
        }
      ],
      "note": "Position yourself in the door way, then run and jump. Makes it possible to walljump up."
    },
    {
      "id": 19,
      "link": [
        2,
        3
      ],
      "name": "Doorway Spring Ball Jump",
      "requires": [
        {
          "obstaclesCleared": [
            "A"
          ]
        },
        "HiJump",
        {
          "doorUnlockedAtNode": 2
        },
        "canTrickySpringBallJump",
        "canLateralMidAirMorph",
        {
          "heatFrames": 120
        }
      ],
      "unlocksDoors": [
        {
          "nodeId": 2,
          "types": [
            "missiles"
          ],
          "requires": [
            {
              "heatFrames": 50
            }
          ]
        },
        {
          "nodeId": 2,
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "nodeId": 2,
          "types": [
            "powerbomb"
          ],
          "requires": [
            {
              "heatFrames": 110
            }
          ]
        }
      ],
      "note": [
        "It may help to disable HiJump first and then re-equip it with the springball jump. ",
        "Doing this, the springball jump may be buffered."
      ]
    },
    {
      "id": 20,
      "link": [
        2,
        3
      ],
      "name": "Doorway CWJ",
      "requires": [
        {
          "notable": "Doorway CWJ"
        },
        {
          "obstaclesCleared": [
            "A"
          ]
        },
        "h_heatProof",
        "HiJump",
        "canCWJ",
        "canStationarySpinJump",
        "canInsaneJump",
        "canInsaneWalljump",
        {
          "doorUnlockedAtNode": 2
        }
      ],
      "unlocksDoors": [
        {
          "nodeId": 2,
          "types": [
            "missiles"
          ],
          "requires": [
            {
              "heatFrames": 50
            }
          ]
        },
        {
          "nodeId": 2,
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "nodeId": 2,
          "types": [
            "powerbomb"
          ],
          "requires": [
            {
              "heatFrames": 110
            }
          ]
        }
      ],
      "note": "Position Samus in the doorway a few pixels from the edge. Dashing stationary spinjump into a delayed CWJ and hopefully catch the upper ledge with a walljump."
    },
    {
      "id": 21,
      "link": [
        2,
        3
      ],
      "name": "Transition Screwjump",
      "entranceCondition": {
        "comeInRunning": {
          "minTiles": 6,
          "speedBooster": true
        }
      },
      "requires": [
        {
          "notable": "Transition Screwjump"
        },
        "h_canNavigateHeatRooms",
        "ScrewAttack",
        "HiJump",
        "canWalljump",
        {
          "heatFrames": 150
        }
      ],
      "clearsObstacles": [
        "A"
      ],
      "note": "Run through the doorway with enough momentum to break the bomb blocks with Screw."
    },
    {
      "id": 80,
      "link": [
        2,
        3
      ],
      "name": "Transition Screwjump (Tricky Jump)",
      "entranceCondition": {
        "comeInRunning": {
          "minTiles": 5.4375,
          "speedBooster": true
        }
      },
      "requires": [
        {
          "notable": "Transition Screwjump"
        },
        "h_canNavigateHeatRooms",
        "ScrewAttack",
        "HiJump",
        "canTrickyJump",
        "canWalljump",
        {
          "heatFrames": 150
        }
      ],
      "clearsObstacles": [
        "A"
      ],
      "note": "Run through the doorway with enough momentum to break the bomb blocks with Screw."
    },
    {
      "id": 81,
      "link": [
        2,
        3
      ],
      "name": "Transition Screwjump (No Walljump)",
      "entranceCondition": {
        "comeInRunning": {
          "minTiles": 7,
          "speedBooster": true
        }
      },
      "requires": [
        {
          "notable": "Transition Screwjump"
        },
        "h_canNavigateHeatRooms",
        "ScrewAttack",
        "HiJump",
        {
          "heatFrames": 150
        }
      ],
      "clearsObstacles": [
        "A"
      ],
      "note": "Run through the doorway with enough momentum to break the bomb blocks with Screw."
    },
    {
      "id": 22,
      "link": [
        2,
        3
      ],
      "name": "Transition Screwjump (Tricky Dash Jump)",
      "entranceCondition": {
        "comeInRunning": {
          "minTiles": 2,
          "speedBooster": true
        }
      },
      "requires": [
        {
          "notable": "Transition Screwjump"
        },
        "h_canNavigateHeatRooms",
        "ScrewAttack",
        "HiJump",
        "canTrickyDashJump",
        "canWalljump",
        {
          "heatFrames": 150
        }
      ],
      "clearsObstacles": [
        "A"
      ],
      "note": "Run through the doorway with enough momentum to break the bomb blocks with Screw."
    },
    {
      "id": 23,
      "link": [
        2,
        3
      ],
      "name": "Shinespark",
      "entranceCondition": {
        "comeInShinecharged": {
          "framesRequired": 50
        }
      },
      "requires": [
        "h_canNavigateHeatRooms",
        {
          "heatFrames": 250
        },
        {
          "shinespark": {
            "frames": 35,
            "excessFrames": 4
          }
        }
      ],
      "clearsObstacles": [
        "A"
      ],
      "flashSuitChecked": true
    },
    {
      "id": 24,
      "link": [
        2,
        3
      ],
      "name": "Jump into Room Shinespark",
      "entranceCondition": {
        "comeInShinecharged": {
          "framesRequired": 15
        }
      },
      "requires": [
        "h_canNavigateHeatRooms",
        "canMidairShinespark",
        "canShinechargeMovement",
        "canPrepareForNextRoom",
        {
          "heatFrames": 250
        },
        {
          "shinespark": {
            "frames": 18,
            "excessFrames": 4
          }
        }
      ],
      "clearsObstacles": [
        "A"
      ],
      "flashSuitChecked": true,
      "note": [
        "Jump into the room and spark diagonally once above the center of the door vertically.",
        "Or diagonally spark anywhere that is not the bottom of the door in the previous room."
      ],
      "devNote": "TODO: Sparking diagonally through the door cannot be shown as an alternative."
    },
    {
      "id": 25,
      "link": [
        2,
        3
      ],
      "name": "X-Ray Climb",
      "entranceCondition": {
        "comeInWithDoorStuckSetup": {}
      },
      "requires": [
        "canXRayClimb",
        {
          "heatFrames": 1600
        }
      ],
      "flashSuitChecked": true,
      "note": "Climb up 1 screen.",
      "devNote": "Heat frames split into the actual climb and the setup in the adjacent room."
    },
    {
      "id": 26,
      "link": [
        2,
        3
      ],
      "name": "Very Deep Stuck X-Ray Climb",
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "direct",
          "morphed": false
        }
      },
      "requires": [
        "h_heatProof",
        {
          "or": [
            "canWalljump",
            "h_canCrouchJumpDownGrab",
            "HiJump",
            "h_canFly",
            "canArtificialMorph"
          ]
        },
        "canXRayClimb"
      ],
      "bypassesDoorShell": true,
      "flashSuitChecked": true,
      "note": [
        "Enter with G-mode direct, back up to between 1 and 6 pixels from the door transition, and activate X-ray to get very deep stuck in the door.",
        "Climb up 1 screen, and perform a turnaround buffered spin-jump away from the door to trigger the transition, bypassing any lock on the door."
      ]
    },
    {
      "id": 27,
      "link": [
        2,
        3
      ],
      "name": "Grapple Teleport",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              5,
              3
            ],
            [
              7,
              2
            ]
          ]
        }
      },
      "requires": [
        {
          "heatFrames": 65
        }
      ]
    },
    {
      "id": 28,
      "link": [
        2,
        3
      ],
      "name": "Grapple Teleport Inside Wall",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              3,
              12
            ]
          ]
        }
      },
      "requires": [
        {
          "notable": "Grapple Teleport Inside Wall"
        },
        "canOffScreenMovement",
        "Morph",
        {
          "heatFrames": 200
        }
      ],
      "note": [
        "After teleporting, Samus should be standing inside the wall.",
        "Retract Grapple by pressing up, which will pull Samus down and right.",
        "Hold right, and release Grapple while still holding right.",
        "Perform a turn-around spin jump (to the left).",
        "Then morph and roll out to the right."
      ]
    },
    {
      "id": 29,
      "link": [
        2,
        4
      ],
      "name": "Prepared Screw Attack",
      "entranceCondition": {
        "comeInNormally": {}
      },
      "requires": [
        "ScrewAttack",
        "canPrepareForNextRoom",
        {
          "heatFrames": 90
        }
      ],
      "clearsObstacles": [
        "B"
      ]
    },
    {
      "id": 30,
      "link": [
        2,
        4
      ],
      "name": "Temporary Blue",
      "entranceCondition": {
        "comeInWithTemporaryBlue": {}
      },
      "requires": [
        {
          "heatFrames": 75
        }
      ],
      "clearsObstacles": [
        "B"
      ],
      "flashSuitChecked": true,
      "note": "This expects the more controlled Temporary Blue to fall though the blocks, not storing a shinecharge through the door."
    },
    {
      "id": 31,
      "link": [
        2,
        4
      ],
      "name": "Temporary Blue Descent and Shinespark Escape Middle Door Part 1",
      "entranceCondition": {
        "comeInShinecharging": {
          "length": 0,
          "openEnd": 1
        }
      },
      "requires": [
        {
          "notable": "Descent and Shinespark Escape"
        },
        "canTemporaryBlue",
        "canPrepareForNextRoom",
        {
          "heatFrames": 75
        }
      ],
      "clearsObstacles": [
        "B",
        "C"
      ],
      "flashSuitChecked": true,
      "note": "Store the shinecharge while hitting the door transition to maintain the ability to break blocks."
    },
    {
      "id": 32,
      "link": [
        2,
        4
      ],
      "name": "Screw Descent and Shinespark Escape Middle Door Part 1",
      "entranceCondition": {
        "comeInShinecharged": {
          "framesRequired": 125
        }
      },
      "requires": [
        {
          "notable": "Descent and Shinespark Escape"
        },
        "ScrewAttack",
        "canShinechargeMovement",
        {
          "heatFrames": 120
        }
      ],
      "clearsObstacles": [
        "B",
        "C"
      ],
      "flashSuitChecked": true,
      "note": "Enter with a shinespark stored and screw attack down to the item."
    },
    {
      "id": 33,
      "link": [
        2,
        5
      ],
      "name": "Base",
      "requires": [
        {
          "heatFrames": 50
        }
      ]
    },
    {
      "id": 34,
      "link": [
        2,
        5
      ],
      "name": "Transition Speedjump with Bombs",
      "entranceCondition": {
        "comeInJumping": {
          "minTiles": 6,
          "speedBooster": true
        }
      },
      "requires": [
        {
          "notable": "Transition Speedjump with Bombs"
        },
        "HiJump",
        "canMidAirMorph",
        "h_canUseMorphBombs",
        {
          "heatFrames": 200
        }
      ],
      "clearsObstacles": [
        "A"
      ],
      "note": "Run in the adjacent room and jump through the door, to place a Bomb to break the top bomb blocks."
    },
    {
      "id": 35,
      "link": [
        2,
        5
      ],
      "name": "Transition Speedjump with Bombs (Tricky Dash Jump)",
      "entranceCondition": {
        "comeInJumping": {
          "minTiles": 2,
          "speedBooster": true
        }
      },
      "requires": [
        {
          "notable": "Transition Speedjump with Bombs"
        },
        "HiJump",
        "canTrickyDashJump",
        "canMidAirMorph",
        "h_canUseMorphBombs",
        {
          "heatFrames": 200
        }
      ],
      "clearsObstacles": [
        "A"
      ],
      "note": "Run in the adjacent room and jump through the door, to place a Bomb to break the top bomb blocks."
    },
    {
      "id": 36,
      "link": [
        3,
        1
      ],
      "name": "Grapple Teleport",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              2,
              34
            ]
          ]
        }
      },
      "requires": [],
      "bypassesDoorShell": true
    },
    {
      "id": 37,
      "link": [
        3,
        1
      ],
      "name": "Carry Grapple Teleport",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              2,
              34
            ]
          ]
        }
      },
      "requires": [],
      "bypassesDoorShell": true,
      "exitCondition": {
        "leaveWithGrappleTeleport": {
          "blockPositions": [
            [
              2,
              34
            ]
          ]
        }
      }
    },
    {
      "id": 38,
      "link": [
        3,
        2
      ],
      "name": "Reset Fall Speed (Wave)",
      "requires": [
        {
          "obstaclesCleared": [
            "A"
          ]
        },
        {
          "doorUnlockedAtNode": 2
        },
        "canResetFallSpeed",
        "Wave",
        {
          "heatFrames": 200
        }
      ],
      "unlocksDoors": [
        {
          "types": [
            "ammo"
          ],
          "requires": [
            "never"
          ]
        }
      ]
    },
    {
      "id": 39,
      "link": [
        3,
        2
      ],
      "name": "Reset Fall Speed (Quick Shot)",
      "requires": [
        {
          "obstaclesCleared": [
            "A"
          ]
        },
        {
          "doorUnlockedAtNode": 2
        },
        "canResetFallSpeed",
        "canTrickyJump",
        {
          "heatFrames": 145
        }
      ],
      "unlocksDoors": [
        {
          "types": [
            "super"
          ],
          "requires": [
            "canPrepareForNextRoom"
          ]
        },
        {
          "types": [
            "missiles",
            "powerbomb"
          ],
          "requires": [
            "never"
          ]
        }
      ]
    },
    {
      "id": 40,
      "link": [
        3,
        3
      ],
      "name": "Leave With Runway (Blocks Broken)",
      "requires": [
        {
          "obstaclesCleared": [
            "A"
          ]
        }
      ],
      "exitCondition": {
        "leaveWithRunway": {
          "length": 4,
          "openEnd": 1
        }
      }
    },
    {
      "id": 41,
      "link": [
        3,
        3
      ],
      "name": "Leave With Runway (Blocks Intact)",
      "requires": [
        {
          "obstaclesNotCleared": [
            "A"
          ]
        }
      ],
      "exitCondition": {
        "leaveWithRunway": {
          "length": 13,
          "openEnd": 1
        }
      }
    },
    {
      "id": 42,
      "link": [
        3,
        3
      ],
      "name": "Crystal Flash",
      "requires": [
        "h_canHeatedCrystalFlash"
      ],
      "clearsObstacles": [
        "A"
      ],
      "flashSuitChecked": true
    },
    {
      "id": 43,
      "link": [
        3,
        4
      ],
      "name": "Temporary Blue (Full Runway)",
      "entranceCondition": {
        "comeInShinecharging": {
          "length": 12,
          "openEnd": 0
        }
      },
      "requires": [
        "canTemporaryBlue",
        "canXRayTurnaround",
        {
          "heatFrames": 285
        }
      ],
      "clearsObstacles": [
        "A",
        "B"
      ],
      "flashSuitChecked": true,
      "note": "This expects the more controlled Temporary Blue to fall though the blocks, not storing a shinecharge on the first breakable block."
    },
    {
      "id": 44,
      "link": [
        3,
        4
      ],
      "name": "Temporary Blue (Short Runway)",
      "entranceCondition": {
        "comeInShinecharging": {
          "length": 3,
          "openEnd": 0
        }
      },
      "requires": [
        "canTemporaryBlue",
        {
          "heatFrames": 240
        }
      ],
      "clearsObstacles": [
        "A",
        "B"
      ],
      "flashSuitChecked": true,
      "note": "This expects the more controlled Temporary Blue to fall though the blocks, not storing a shinecharge on the first breakable block."
    },
    {
      "id": 45,
      "link": [
        3,
        4
      ],
      "name": "Temporary Blue Descent and Shinespark Escape Top Door Part 1",
      "entranceCondition": {
        "comeInShinecharging": {
          "length": 3,
          "openEnd": 1
        }
      },
      "requires": [
        {
          "notable": "Descent and Shinespark Escape"
        },
        "canTemporaryBlue",
        "canShinechargeMovementTricky",
        {
          "heatFrames": 130
        }
      ],
      "clearsObstacles": [
        "A",
        "B",
        "C"
      ],
      "flashSuitChecked": true,
      "note": "Simultaneously store a shinespark and break through the bomb blocks down to the item location.",
      "devNote": "canShinechargeMovementTricky is to represent the difficulty of activating the shinecharge in a precise place near the edge."
    },
    {
      "id": 46,
      "link": [
        3,
        4
      ],
      "name": "Screw Descent and Shinespark Escape Top Door Part 1",
      "entranceCondition": {
        "comeInShinecharging": {
          "length": 12,
          "openEnd": 0
        }
      },
      "requires": [
        {
          "notable": "Descent and Shinespark Escape"
        },
        "ScrewAttack",
        "canShinechargeMovement",
        {
          "heatFrames": 170
        }
      ],
      "clearsObstacles": [
        "A",
        "B",
        "C"
      ],
      "note": "Store a shinespark then use screw to break through the bomb blocks down to the item location.",
      "devNote": "Storing the spark on the left side of the runway takes fine control over shinecharge spacing, but that is ok at this difficulty."
    },
    {
      "id": 47,
      "link": [
        3,
        4
      ],
      "name": "Stored Moonfall Clip",
      "entranceCondition": {
        "comeInWithStoredFallSpeed": {
          "fallSpeedInTiles": 1
        }
      },
      "requires": [
        "canPrepareForNextRoom",
        "canMoonfall",
        "canFreeFallClip",
        {
          "heatFrames": 85
        }
      ],
      "note": [
        "Moonfall to clip through the Bomb blocks to the bottom of the room."
      ]
    },
    {
      "id": 48,
      "link": [
        3,
        5
      ],
      "name": "Base",
      "requires": [
        {
          "heatFrames": 120
        },
        {
          "or": [
            "ScrewAttack",
            {
              "obstaclesCleared": [
                "A"
              ]
            }
          ]
        }
      ],
      "clearsObstacles": [
        "A"
      ]
    },
    {
      "id": 49,
      "link": [
        3,
        5
      ],
      "name": "Power Bombs",
      "requires": [
        "h_canUsePowerBombs",
        {
          "heatFrames": 220
        }
      ],
      "clearsObstacles": [
        "A"
      ]
    },
    {
      "id": 50,
      "link": [
        3,
        5
      ],
      "name": "Bombs",
      "requires": [
        "h_canUseMorphBombs",
        {
          "heatFrames": 220
        }
      ],
      "clearsObstacles": [
        "A"
      ]
    },
    {
      "id": 51,
      "link": [
        3,
        5
      ],
      "name": "Come in Getting Blue Speed",
      "entranceCondition": {
        "comeInGettingBlueSpeed": {
          "length": 8,
          "openEnd": 0
        }
      },
      "requires": [
        {
          "heatFrames": 120
        }
      ],
      "clearsObstacles": [
        "A"
      ],
      "devNote": "FIXME: Running in is not required. Entering the room with canBlueSpaceJump could work, for example."
    },
    {
      "id": 52,
      "link": [
        3,
        5
      ],
      "name": "Grapple Teleport Extension Clip",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              5,
              3
            ]
          ]
        }
      },
      "requires": [
        {
          "heatFrames": 170
        }
      ],
      "note": [
        "After teleporting, as Samus swings to the right, begin holding down to extend Grapple just as Samus is slightly right of vertical.",
        "Samus should swing back left and get stuck on the floor one tile to the right of the Grapple attachment point.",
        "Release Grapple and Samus will clip through the floor."
      ]
    },
    {
      "id": 53,
      "link": [
        3,
        5
      ],
      "name": "Stored Moonfall Clip",
      "entranceCondition": {
        "comeInWithStoredFallSpeed": {
          "fallSpeedInTiles": 1
        }
      },
      "requires": [
        "canPrepareForNextRoom",
        "canMoonfall",
        {
          "heatFrames": 90
        }
      ],
      "note": [
        "Moonfall to clip through the Bomb blocks",
        "Break spin with Shot or Angle Aim to avoid clipping all the way to the bottom of the room."
      ]
    },
    {
      "id": 54,
      "link": [
        4,
        1
      ],
      "name": "Base",
      "requires": [
        "h_canNavigateHeatRooms",
        {
          "heatFrames": 60
        }
      ]
    },
    {
      "id": 55,
      "link": [
        4,
        2
      ],
      "name": "Shinespark Escape Mid Door Part 2",
      "requires": [
        {
          "notable": "Descent and Shinespark Escape"
        },
        "canShinechargeMovement",
        {
          "obstaclesCleared": [
            "C"
          ]
        },
        {
          "heatFrames": 240
        },
        {
          "shinespark": {
            "frames": 31,
            "excessFrames": 10
          }
        }
      ],
      "clearsObstacles": [
        "B"
      ],
      "unlocksDoors": [
        {
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "types": [
            "missiles",
            "powerbomb"
          ],
          "requires": [
            "never"
          ]
        }
      ],
      "note": "Diagonally shinespark towards the middle door.",
      "devNote": [
        "Obstacle C is indicating that Samus has a shinecharge ready to be used.",
        "Useful only if you cannot reach the door at 2."
      ]
    },
    {
      "id": 56,
      "link": [
        4,
        3
      ],
      "name": "Shinespark Escape Top Door Part 2",
      "requires": [
        {
          "notable": "Descent and Shinespark Escape"
        },
        "canShinechargeMovement",
        {
          "obstaclesCleared": [
            "C"
          ]
        },
        {
          "heatFrames": 270
        },
        {
          "shinespark": {
            "frames": 41,
            "excessFrames": 4
          }
        }
      ],
      "clearsObstacles": [
        "A",
        "B"
      ],
      "note": "Carry a shinecharge down though the bomb blocks and shinespark back up.",
      "devNote": "Obstacle C is indicating that Samus has a shinecharge ready to be used."
    },
    {
      "id": 57,
      "link": [
        4,
        4
      ],
      "name": "Crystal Flash",
      "requires": [
        {
          "obstaclesNotCleared": [
            "C"
          ]
        },
        "h_canHeatedCrystalFlash"
      ],
      "clearsObstacles": [
        "B"
      ],
      "flashSuitChecked": true
    },
    {
      "id": 58,
      "link": [
        4,
        5
      ],
      "name": "Lower Bomb Blocks Already Broken",
      "requires": [
        {
          "heatFrames": 120
        },
        {
          "obstaclesCleared": [
            "B"
          ]
        }
      ]
    },
    {
      "id": 59,
      "link": [
        4,
        5
      ],
      "name": "Screw",
      "requires": [
        "ScrewAttack",
        {
          "heatFrames": 120
        }
      ],
      "clearsObstacles": [
        "B"
      ]
    },
    {
      "id": 60,
      "link": [
        4,
        5
      ],
      "name": "Power Bomb",
      "requires": [
        "h_canUsePowerBombs",
        {
          "heatFrames": 220
        }
      ],
      "clearsObstacles": [
        "B"
      ]
    },
    {
      "id": 61,
      "link": [
        4,
        5
      ],
      "name": "Bomb",
      "requires": [
        {
          "or": [
            "canTrivialMidAirMorph",
            "h_canUseSpringBall"
          ]
        },
        "h_canUseMorphBombs",
        {
          "heatFrames": 220
        }
      ],
      "clearsObstacles": [
        "B"
      ]
    },
    {
      "id": 62,
      "link": [
        5,
        2
      ],
      "name": "Base",
      "requires": [
        {
          "heatFrames": 80
        },
        {
          "or": [
            "HiJump",
            "SpaceJump",
            "canWalljump",
            "h_canCrouchJumpDownGrab",
            "canSpringBallJumpMidAir",
            {
              "and": [
                "canIBJ",
                {
                  "heatFrames": 440
                }
              ]
            },
            {
              "and": [
                "canJumpIntoIBJ",
                {
                  "heatFrames": 80
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "id": 63,
      "link": [
        5,
        3
      ],
      "name": "IBJ",
      "requires": [
        {
          "obstaclesCleared": [
            "A"
          ]
        },
        "canIBJ",
        {
          "heatFrames": 1300
        }
      ],
      "devNote": [
        "FIXME: This is a longer IBJ if B is broken with a power bomb (All the blocks are broken).",
        "FIXME: Add more IBJ variations."
      ]
    },
    {
      "id": 64,
      "link": [
        5,
        3
      ],
      "name": "IBJ to Break the Top Blocks",
      "requires": [
        "h_canNavigateHeatRooms",
        "canPowerBombMidIBJ",
        {
          "heatFrames": 1300
        }
      ],
      "clearsObstacles": [
        "A"
      ],
      "note": "Place a Power Bomb during the IBJ to break the blocks without falling."
    },
    {
      "id": 65,
      "link": [
        5,
        3
      ],
      "name": "Space Jump",
      "requires": [
        "SpaceJump",
        {
          "or": [
            {
              "obstaclesCleared": [
                "A"
              ]
            },
            "ScrewAttack"
          ]
        },
        {
          "heatFrames": 400
        }
      ]
    },
    {
      "id": 66,
      "link": [
        5,
        3
      ],
      "name": "Springwall",
      "requires": [
        {
          "obstaclesCleared": [
            "A"
          ]
        },
        "h_HeatedSpringwall",
        {
          "heatFrames": 245
        }
      ]
    },
    {
      "id": 67,
      "link": [
        5,
        4
      ],
      "name": "Base",
      "requires": [
        {
          "heatFrames": 40
        },
        {
          "or": [
            {
              "obstaclesCleared": [
                "B"
              ]
            },
            {
              "and": [
                "ScrewAttack",
                {
                  "heatFrames": 30
                }
              ]
            }
          ]
        }
      ],
      "clearsObstacles": [
        "B"
      ]
    },
    {
      "id": 68,
      "link": [
        5,
        4
      ],
      "name": "Power Bomb",
      "requires": [
        "h_canUsePowerBombs",
        {
          "heatFrames": 140
        }
      ],
      "clearsObstacles": [
        "B"
      ]
    },
    {
      "id": 69,
      "link": [
        5,
        4
      ],
      "name": "Bombs",
      "requires": [
        "h_canUseMorphBombs",
        {
          "heatFrames": 130
        }
      ],
      "clearsObstacles": [
        "B"
      ]
    },
    {
      "id": 70,
      "link": [
        5,
        5
      ],
      "name": "Power Bombs",
      "requires": [
        "h_canUsePowerBombs",
        "canTrivialMidAirMorph",
        {
          "heatFrames": 150
        }
      ],
      "clearsObstacles": [
        "A"
      ],
      "devNote": [
        "FIXME: This doesn't quite break the blocks above, but going up after has more requirements.",
        "The canTrivialMidAirMorph could be avoided by using Spring Ball on entry or from the doorsill."
      ]
    },
    {
      "id": 71,
      "link": [
        5,
        5
      ],
      "name": "IBJ to Break the Top Blocks",
      "requires": [
        "canIBJ",
        {
          "heatFrames": 1150
        }
      ],
      "clearsObstacles": [
        "A"
      ],
      "note": "Expects that Samus falls down afterwards.",
      "devNote": "FIXME: This assumes B is not broken, add other IBJ variants."
    },
    {
      "id": 72,
      "link": [
        5,
        5
      ],
      "name": "Space Bombs",
      "requires": [
        "h_canUseMorphBombs",
        "SpaceJump",
        "canMidAirMorph",
        {
          "heatFrames": 250
        }
      ],
      "clearsObstacles": [
        "A"
      ]
    },
    {
      "id": 73,
      "link": [
        5,
        5
      ],
      "name": "Springwall with Bombs",
      "requires": [
        "h_canUseMorphBombs",
        "h_HeatedSpringwall",
        {
          "heatFrames": 250
        }
      ],
      "clearsObstacles": [
        "A"
      ],
      "note": "Use a Springwall to get up to the bomb blocks, to break them with a bomb."
    },
    {
      "id": 74,
      "link": [
        5,
        5
      ],
      "name": "Crystal Flash",
      "requires": [
        {
          "heatFrames": 40
        },
        "h_canHeatedCrystalFlash"
      ],
      "clearsObstacles": [
        "B"
      ],
      "flashSuitChecked": true
    },
    {
      "id": 75,
      "link": [
        6,
        5
      ],
      "name": "Fall into Room",
      "requires": [
        {
          "heatFrames": 50
        }
      ]
    },
    {
      "link": [
        1,
        1
      ],
      "name": "Base (Unlock Door)",
      "requires": [],
      "unlocksDoors": [
        {
          "types": [
            "missiles"
          ],
          "requires": [
            {
              "heatFrames": 50
            }
          ]
        },
        {
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "types": [
            "powerbomb"
          ],
          "requires": [
            {
              "heatFrames": 110
            }
          ]
        }
      ]
    },
    {
      "link": [
        1,
        1
      ],
      "name": "Base (Come In Normally)",
      "entranceCondition": {
        "comeInNormally": {}
      },
      "requires": []
    },
    {
      "link": [
        2,
        2
      ],
      "name": "Base (Unlock Door)",
      "requires": [],
      "unlocksDoors": [
        {
          "types": [
            "missiles"
          ],
          "requires": [
            {
              "heatFrames": 50
            }
          ]
        },
        {
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "types": [
            "powerbomb"
          ],
          "requires": [
            {
              "heatFrames": 110
            }
          ]
        }
      ]
    },
    {
      "link": [
        2,
        6
      ],
      "name": "Base (Come In Normally)",
      "entranceCondition": {
        "comeInNormally": {}
      },
      "requires": []
    },
    {
      "link": [
        3,
        3
      ],
      "name": "Base (Unlock Door)",
      "requires": [],
      "unlocksDoors": [
        {
          "types": [
            "missiles"
          ],
          "requires": [
            {
              "heatFrames": 50
            }
          ]
        },
        {
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "types": [
            "powerbomb"
          ],
          "requires": [
            {
              "heatFrames": 110
            }
          ]
        }
      ]
    },
    {
      "link": [
        3,
        3
      ],
      "name": "Base (Come In Normally)",
      "entranceCondition": {
        "comeInNormally": {}
      },
      "requires": []
    },
    {
      "name": "Base (Collect Item)",
      "notable": false,
      "requires": [],
      "link": [
        4,
        4
      ],
      "collectsItems": [
        4
      ]
    }
  ],
  "nextStratId": 82,
  "notables": [
    {
      "id": 1,
      "name": "Descent and Shinespark Escape",
      "note": [
        "Store a shinespark and break the bomb blocks from above in order to collect the item and shinespark out.",
        "Screw Attack is easier to excute but has fewer shinespark frames to work with.",
        "Using Temporary Blue is difficult to initiate but moves through the room quickly."
      ]
    },
    {
      "id": 2,
      "name": "Transition Screwjump",
      "note": "Run through the doorway with enough momentum to break the bomb blocks with Screw."
    },
    {
      "id": 3,
      "name": "Transition Speedjump with Bombs",
      "note": "Run in the adjacent room and jump through the door, to place a Bomb to break the obstacle."
    },
    {
      "id": 4,
      "name": "Doorway CWJ",
      "note": "Position Samus in the doorway a few pixels from the edge. Dashing stationary spinjump into a delayed CWJ and hopefully catch the upper ledge with a walljump."
    },
    {
      "id": 5,
      "name": "Grapple Teleport Inside Wall",
      "note": [
        "After teleporting, Samus should be standing inside the wall.",
        "Retract Grapple by pressing up, which will pull Samus down and right.",
        "Hold right, and release Grapple while still holding right.",
        "Perform a turn-around spin jump (to the left).",
        "Then morph and roll out to the right."
      ]
    }
  ],
  "nextNotableId": 6
}