Sponge Bath

Room ID: 164

Wiki
Difficulty filter

From: 1
Left Door
To: 1
Left Door

Exit condition:

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

Requires:

{
  "or": [
    "Gravity",
    {
      "and": [
        {
          "not": "f_DefeatedPhantoon"
        },
        "canRiskPermanentLossOfAccess"
      ]
    }
  ]
}

Exit condition:

{
  "leaveWithRunway": {
    "length": 21,
    "openEnd": 0,
    "steepUpTiles": 3
  }
}
From: 1
Left Door
To: 1
Left Door

If Phantoon is defeated, start at least 2 tiles from the water line, and stutter just before entering it in order to charge a spark in room.

Requires:

{
  "or": [
    "f_DefeatedPhantoon",
    {
      "canShineCharge": {
        "usedTiles": 21,
        "openEnd": 0,
        "steepUpTiles": 3
      }
    }
  ]
}
"canStutterWaterShineCharge"
"canShinechargeMovementComplex"
"h_canShineChargeMaxRunway"
{
  "shinespark": {
    "frames": 20
  }
}

Exit condition:

{
  "leaveWithSpark": {
    "position": "bottom"
  }
}

Unlocks doors:

{"types":["ammo"],"requires":[]}
From: 1
Left Door
To: 1
Left Door

If Phantoon is defeated, start at least 2 tiles from the water line, and stutter just before entering it in order to charge a spark in room.

Requires:

{
  "or": [
    "f_DefeatedPhantoon",
    {
      "canShineCharge": {
        "usedTiles": 21,
        "openEnd": 0,
        "steepUpTiles": 3
      }
    }
  ]
}
"canStutterWaterShineCharge"
"canShinechargeMovementTricky"
"canWalljump"
{
  "or": [
    "canSpaceJumpWaterBounce",
    "HiJump"
  ]
}
"h_canShineChargeMaxRunway"
{
  "shinespark": {
    "frames": 29
  }
}

Exit condition:

{
  "leaveWithSpark": {}
}

Unlocks doors:

{"types":["ammo"],"requires":[]}
From: 1
Left Door
To: 1
Left Door

Requires:

"f_DefeatedPhantoon"
{
  "or": [
    "ScrewAttack",
    "canPseudoScrew",
    "Plasma",
    "Grapple"
  ]
}
{
  "resetRoom": {
    "nodes": [
      1
    ],
    "mustStayPut": false
  }
}
{
  "refill": [
    "PowerBomb"
  ]
}
From: 1
Left Door
To: 1
Left Door

Requires:

"h_canCrystalFlash"
From: 1
Left Door
To: 1
Left Door

Requires:

"f_DefeatedPhantoon"

Exit condition:

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

Requires:

{
  "enemyDamage": {
    "enemy": "Bull",
    "type": "contact",
    "hits": 1
  }
}
"f_DefeatedPhantoon"
From: 1
Left Door
To: 2
Right Door

Requires:

{
  "or": [
    "Gravity",
    "SpaceJump"
  ]
}
From: 1
Left Door
To: 2
Right Door

Requires:

{
  "not": "f_DefeatedPhantoon"
}
"canRiskPermanentLossOfAccess"
From: 1
Left Door
To: 2
Right Door

Requires:

"HiJump"
"canWalljump"
From: 1
Left Door
To: 2
Right Door

Position the Bull with beam shots before jumping into it.

Requires:

{
  "notable": "Bull Boost"
}
"canSuitlessMaridia"
"HiJump"
"canUseEnemies"
"canNeutralDamageBoost"
"canCrouchJump"
"Morph"
{
  "enemyDamage": {
    "enemy": "Bull",
    "hits": 1,
    "type": "contact"
  }
}
Bomb Jump (Very Hard)
Sponge Bath
From: 1
Left Door
To: 2
Right Door

Requires:

"canBombJumpWaterEscape"
From: 1
Left Door
To: 2
Right Door

Requires:

"canSuitlessMaridia"
"canSpringBallJumpMidAir"
From: 1
Left Door
To: 2
Right Door

Entrance condition:

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

Requires:

"canShinechargeMovement"
{
  "shinespark": {
    "frames": 7,
    "excessFrames": 2
  }
}
From: 1
Left Door
To: 2
Right Door

Entrance condition:

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

Requires:

"canWaterShineCharge"
{
  "shinespark": {
    "frames": 7,
    "excessFrames": 2
  }
}
From: 1
Left Door
To: 2
Right Door

Entrance condition:

{
  "comeInShinecharged": {
    "framesRequired": 30
  }
}

Requires:

"canMidairShinespark"
{
  "shinespark": {
    "frames": 39,
    "excessFrames": 10
  }
}
From: 1
Left Door
To: 2
Right Door

Requires at least 3 tiles to work, but some longer lengths don't work.

Entrance condition:

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

Requires:

"canSuitlessMaridia"
"canCarefulJump"
{
  "or": [
    "canWalljump",
    "HiJump"
  ]
}
From: 1
Left Door
To: 2
Right Door

Requires a very precise runway length in the previous room of 15 tiles with no open end. Jump while under or to the right of the Bull. Samus's speed no longer changes once hitting the water, so the jump is very forgiving, while the runway length is not.

Entrance condition:

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

Requires:

"canTrickyDashJump"
From: 1
Left Door
To: 2
Right Door

It doesn't work from flush against the door. Start moving about half a tile away from it.

Requires:

"canSuitlessMaridia"
"canTrickyDashJump"
"canWalljump"
From: 1
Left Door
To: 2
Right Door

Requires:

{
  "useFlashSuit": {}
}
{
  "shinespark": {
    "frames": 4,
    "excessFrames": 2
  }
}
From: 1
Left Door
To: 2
Right Door

Requires:

"canCeilingBombJump"
From: 1
Left Door
To: 2
Right Door

Kill the Bull with bombs, by switching between the high and low ground. Rapidly place bombs while rolling slowly.

Entrance condition:

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

Requires:

"h_canArtificialMorphCeilingBombJump"
From: 1
Left Door
To: 2
Right Door

If Phantoon is defeated, start at least 2 tiles from the water line, and stutter just before entering it in order to charge a spark in room.

Requires:

"canStutterWaterShineCharge"
"h_canShineChargeMaxRunway"
{
  "shinespark": {
    "frames": 7,
    "excessFrames": 2
  }
}

Entrance condition:

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

Requires:

{
  "or": [
    "Gravity",
    {
      "and": [
        {
          "not": "f_DefeatedPhantoon"
        },
        "canRiskPermanentLossOfAccess"
      ]
    }
  ]
}
"canShinechargeMovementComplex"

Exit condition:

{
  "leaveShinecharged": {
    "framesRemaining": 100
  }
}

Unlocks doors:

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

Entrance condition:

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

Requires:

"canWaterShineCharge"
"HiJump"
"canWalljump"
"canShinechargeMovementComplex"

Exit condition:

{
  "leaveShinecharged": {
    "framesRemaining": 80
  }
}

Unlocks doors:

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

Entrance condition:

{
  "comeInShinecharged": {
    "framesRequired": 110
  }
}

Requires:

"Gravity"
"canShinechargeMovementComplex"

Exit condition:

{
  "leaveShinecharged": {
    "framesRemaining": "auto"
  }
}

Unlocks doors:

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

Entrance condition:

{
  "comeInShinecharged": {
    "framesRequired": 160
  }
}

Requires:

"canShinechargeMovementComplex"
"HiJump"
"canWalljump"

Exit condition:

{
  "leaveShinecharged": {
    "framesRemaining": "auto"
  }
}

Unlocks doors:

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

If needed, shoot the Bull to prevent it from blocking Samus' path.

Entrance condition:

{
  "comeInShinecharged": {
    "framesRequired": 150
  }
}

Requires:

"SpaceJump"
"canShinechargeMovementComplex"
{
  "shinespark": {
    "frames": 9
  }
}

Exit condition:

{
  "leaveWithSpark": {}
}

Unlocks doors:

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

If Phantoon is defeated, start at least 2 tiles from the water line, and stutter just before entering it in order to shinecharge in room.

Requires:

{
  "or": [
    "f_DefeatedPhantoon",
    {
      "canShineCharge": {
        "usedTiles": 20,
        "openEnd": 0,
        "steepDownTiles": 3
      }
    }
  ]
}
"canStutterWaterShineCharge"
"canShinechargeMovementComplex"
"canWalljump"
"canSpaceJumpWaterBounce"
"h_canShineChargeMaxRunway"

Exit condition:

{
  "leaveShinecharged": {
    "framesRemaining": 30
  }
}

Unlocks doors:

{"types":["ammo"],"requires":[]}
From: 1
Left Door
To: 2
Right Door

If Phantoon is defeated, start at least 2 tiles from the water line, and stutter just before entering it in order to shinecharge in room.

Requires:

{
  "or": [
    "f_DefeatedPhantoon",
    {
      "canShineCharge": {
        "usedTiles": 20,
        "openEnd": 0,
        "steepDownTiles": 3
      }
    }
  ]
}
"canStutterWaterShineCharge"
"canShinechargeMovementComplex"
"canWalljump"
"HiJump"
"h_canShineChargeMaxRunway"

Exit condition:

{
  "leaveShinecharged": {
    "framesRemaining": 75
  }
}

Unlocks doors:

{"types":["ammo"],"requires":[]}
From: 1
Left Door
To: 2
Right Door

Requires:

{
  "or": [
    {
      "and": [
        {
          "not": "f_DefeatedPhantoon"
        },
        "canRiskPermanentLossOfAccess"
      ]
    },
    "Gravity"
  ]
}

Exit condition:

{
  "leaveSpinning": {
    "remoteRunway": {
      "length": 15,
      "openEnd": 1
    },
    "minExtraRunSpeed": "$1.6"
  }
}

Unlocks doors:

{"types":["ammo"],"requires":[]}
From: 1
Left Door
To: 2
Right Door

Requires:

{
  "or": [
    {
      "and": [
        {
          "not": "f_DefeatedPhantoon"
        },
        "canRiskPermanentLossOfAccess"
      ]
    },
    "Gravity"
  ]
}
{
  "doorUnlockedAtNode": 1
}

Exit condition:

{
  "leaveSpinning": {
    "remoteRunway": {
      "length": 16,
      "openEnd": 1
    },
    "minExtraRunSpeed": "$1.6"
  }
}

Unlocks doors:

{"types":["ammo"],"requires":[]}
From: 1
Left Door
To: 2
Right Door

Requires:

{
  "or": [
    {
      "and": [
        {
          "not": "f_DefeatedPhantoon"
        },
        "canRiskPermanentLossOfAccess"
      ]
    },
    "Gravity"
  ]
}

Exit condition:

{
  "leaveWithMockball": {
    "remoteRunway": {
      "length": 15,
      "openEnd": 1
    },
    "landingRunway": {
      "length": 2,
      "openEnd": 1
    }
  }
}

Unlocks doors:

{"types":["ammo"],"requires":[]}
From: 1
Left Door
To: 2
Right Door

Requires:

{
  "or": [
    {
      "and": [
        {
          "not": "f_DefeatedPhantoon"
        },
        "canRiskPermanentLossOfAccess"
      ]
    },
    "Gravity"
  ]
}
{
  "doorUnlockedAtNode": 1
}

Exit condition:

{
  "leaveWithMockball": {
    "remoteRunway": {
      "length": 16,
      "openEnd": 1
    },
    "landingRunway": {
      "length": 2,
      "openEnd": 1
    }
  }
}

Unlocks doors:

{"types":["ammo"],"requires":[]}
From: 1
Left Door
To: 2
Right Door

Requires:

{
  "or": [
    {
      "and": [
        {
          "not": "f_DefeatedPhantoon"
        },
        "canRiskPermanentLossOfAccess"
      ]
    },
    "Gravity"
  ]
}

Exit condition:

{
  "leaveSpaceJumping": {
    "remoteRunway": {
      "length": 15,
      "openEnd": 1
    },
    "minExtraRunSpeed": "$1.8"
  }
}

Unlocks doors:

{"types":["ammo"],"requires":[]}
From: 1
Left Door
To: 2
Right Door

Requires:

{
  "or": [
    {
      "and": [
        {
          "not": "f_DefeatedPhantoon"
        },
        "canRiskPermanentLossOfAccess"
      ]
    },
    "Gravity"
  ]
}
{
  "doorUnlockedAtNode": 1
}

Exit condition:

{
  "leaveSpaceJumping": {
    "remoteRunway": {
      "length": 16,
      "openEnd": 1
    },
    "minExtraRunSpeed": "$1.8"
  }
}

Unlocks doors:

{"types":["ammo"],"requires":[]}
From: 1
Left Door
To: 2
Right Door

Requires:

{
  "or": [
    {
      "and": [
        {
          "not": "f_DefeatedPhantoon"
        },
        "canRiskPermanentLossOfAccess"
      ]
    },
    "Gravity"
  ]
}
{
  "canShineCharge": {
    "usedTiles": 19,
    "openEnd": 0,
    "steepDownTiles": 3
  }
}
"canChainTemporaryBlue"

Exit condition:

{
  "leaveWithTemporaryBlue": {}
}

Unlocks doors:

{"types":["ammo"],"requires":[]}

If possible (and applicable), kill the Bull ahead of time, and do a shinecharge to gain temporary blue. Otherwise, shoot the Bull to get it out of the way; then, after getting blue speed with a stutter water shinecharge, jump directly into a spring ball jump rather than shinecharging first.

Requires:

{
  "or": [
    {
      "enemyKill": {
        "enemies": [
          [
            "Bull"
          ]
        ]
      }
    },
    {
      "and": [
        {
          "not": "f_DefeatedPhantoon"
        },
        "canRiskPermanentLossOfAccess"
      ]
    },
    "canTrickyJump"
  ]
}
"canStutterWaterShineCharge"
"h_getBlueSpeedMaxRunway"
"canTrickySpringBallJump"
"canChainTemporaryBlue"

Unlocks doors:

{"types":["ammo"],"requires":[]}
From: 2
Right Door
To: 1
Left Door

From: 2
Right Door
To: 1
Left Door

To maximize frames remaining, gain a shinecharge while sliding off the ledge into the water.

Entrance condition:

{
  "comeInShinecharging": {
    "length": 8,
    "openEnd": 1,
    "steepUpTiles": 2
  }
}

Requires:

"Gravity"
"canShinechargeMovementComplex"

Exit condition:

{
  "leaveShinecharged": {
    "framesRemaining": 70
  }
}

Unlocks doors:

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

Enter the room with a shinecharge. Run and jump over the Bull (if power is on), and carry the shinecharge into the next room.

Entrance condition:

{
  "comeInShinecharged": {
    "framesRequired": 130
  }
}

Requires:

"Gravity"
"canShinechargeMovementComplex"

Exit condition:

{
  "leaveShinecharged": {
    "framesRemaining": "auto"
  }
}

Unlocks doors:

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

Enter the room with a shinecharge. Use Space Jump to run and jump over the Bull and water (if power is on), and carry the shinecharge into the next room.

Entrance condition:

{
  "comeInShinecharged": {
    "framesRequired": 135
  }
}

Requires:

"SpaceJump"
"canShinechargeMovementComplex"

Exit condition:

{
  "leaveShinecharged": {
    "framesRemaining": "auto"
  }
}

Unlocks doors:

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

Enter the room with a shinecharge. Run and jump over the Bull (if power is on). Fire a shot mid-air, and activate the shinespark wind-up. Wait to spark until the shot as reached the door.

Entrance condition:

{
  "comeInShinecharged": {
    "framesRequired": 75
  }
}

Requires:

"canShinechargeMovementComplex"
{
  "shinespark": {
    "frames": 25
  }
}

Exit condition:

{
  "leaveWithSpark": {}
}

Unlocks doors:

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

Enter the room with a shinecharge. Run and jump off the ledge. Fire a shot mid-air and activate the shinespark wind-up. Take a hit from the the Bull (if power is on). Wait until the shot is at a specific position before sparking. Sparking too late will cause the shot to despawn before reaching the door. Sparking too early will cause Samus to bonk the door as it will not yet be open. A beam shot, Missile, or Super can be used.

Entrance condition:

{
  "comeInShinecharged": {
    "framesRequired": 60
  }
}

Requires:

"canShinechargeMovementTricky"
"canHeroShot"
{
  "or": [
    {
      "enemyDamage": {
        "enemy": "Bull",
        "type": "contact",
        "hits": 1
      }
    },
    {
      "and": [
        {
          "not": "f_DefeatedPhantoon"
        },
        "canRiskPermanentLossOfAccess"
      ]
    }
  ]
}
{
  "shinespark": {
    "frames": 32
  }
}

Exit condition:

{
  "leaveWithSpark": {}
}

Unlocks doors:

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

Requires:

"SpaceJump"

Exit condition:

{
  "leaveSpinning": {
    "remoteRunway": {
      "length": 8,
      "steepDownTiles": 2,
      "openEnd": 1
    }
  }
}

Unlocks doors:

{"types":["ammo"],"requires":[]}
From: 2
Right Door
To: 1
Left Door

Requires:

"SpaceJump"
{
  "doorUnlockedAtNode": 2
}

Exit condition:

{
  "leaveSpinning": {
    "remoteRunway": {
      "length": 9,
      "steepUpTiles": 2,
      "openEnd": 1
    }
  }
}

Unlocks doors:

{"types":["ammo"],"requires":[]}
From: 2
Right Door
To: 1
Left Door

Exit condition:

{
  "leaveWithMockball": {
    "remoteRunway": {
      "length": 8,
      "steepUpTiles": 2,
      "openEnd": 1
    },
    "landingRunway": {
      "length": 4,
      "openEnd": 1
    }
  }
}

Unlocks doors:

{"types":["ammo"],"requires":[]}
From: 2
Right Door
To: 1
Left Door

Requires:

{
  "doorUnlockedAtNode": 2
}

Exit condition:

{
  "leaveWithMockball": {
    "remoteRunway": {
      "length": 9,
      "steepUpTiles": 2,
      "openEnd": 1
    },
    "landingRunway": {
      "length": 4,
      "openEnd": 1
    }
  }
}

Unlocks doors:

{"types":["ammo"],"requires":[]}
From: 2
Right Door
To: 1
Left Door

Exit condition:

{
  "leaveSpaceJumping": {
    "remoteRunway": {
      "length": 8,
      "steepUpTiles": 2,
      "openEnd": 1
    }
  }
}

Unlocks doors:

{"types":["ammo"],"requires":[]}
From: 2
Right Door
To: 1
Left Door

Requires:

{
  "doorUnlockedAtNode": 2
}

Exit condition:

{
  "leaveSpaceJumping": {
    "remoteRunway": {
      "length": 9,
      "steepUpTiles": 2,
      "openEnd": 1
    }
  }
}

Unlocks doors:

{"types":["ammo"],"requires":[]}
From: 2
Right Door
To: 1
Left Door

Jump at the end of the runway to kill the Bull with blue speed, or jump over it. Then gain a speedball to approach the door with temporary blue.

Entrance condition:

{
  "comeInGettingBlueSpeed": {
    "length": 8,
    "steepUpTiles": 2,
    "openEnd": 1
  }
}

Requires:

"canSpeedball"

Exit condition:

{
  "leaveWithTemporaryBlue": {}
}

Unlocks doors:

{"types":["ammo"],"requires":[]}
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: 2
Right Door

Exit condition:

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

Requires:

"f_DefeatedPhantoon"
{
  "or": [
    "ScrewAttack",
    "canPseudoScrew",
    "Plasma",
    "Grapple"
  ]
}
{
  "resetRoom": {
    "nodes": [
      2
    ],
    "mustStayPut": false
  }
}
{
  "refill": [
    "PowerBomb"
  ]
}
From: 2
Right Door
To: 2
Right Door

Requires:

"h_canCrystalFlash"
From: 2
Right Door
To: 2
Right Door

Requires:

"f_DefeatedPhantoon"

Exit condition:

{
  "leaveWithGModeSetup": {}
}
From: 2
Right Door
To: 2
Right Door

Requires:

{
  "enemyDamage": {
    "enemy": "Bull",
    "type": "contact",
    "hits": 1
  }
}
"f_DefeatedPhantoon"

{
  "$schema": "../../../schema/m3-room.schema.json",
  "id": 164,
  "name": "Sponge Bath",
  "area": "Wrecked Ship",
  "subarea": "Main",
  "playable": true,
  "roomAddress": "0x7CD5C",
  "roomEnvironments": [
    {
      "heated": false
    }
  ],
  "nodes": [
    {
      "id": 1,
      "name": "Left Door",
      "nodeType": "door",
      "nodeSubType": "blue",
      "nodeAddress": "0x001a2d0",
      "doorOrientation": "left",
      "doorEnvironments": [
        {
          "physics": "air"
        }
      ]
    },
    {
      "id": 2,
      "name": "Right Door",
      "nodeType": "door",
      "nodeSubType": "blue",
      "nodeAddress": "0x001a2dc",
      "doorOrientation": "right",
      "doorEnvironments": [
        {
          "physics": "air"
        }
      ]
    }
  ],
  "enemies": [
    {
      "id": "e1",
      "groupName": "Sponge Bath Bull",
      "enemyName": "Bull",
      "quantity": 1,
      "homeNodes": [
        1,
        2
      ],
      "spawn": [
        "f_DefeatedPhantoon"
      ]
    }
  ],
  "links": [
    {
      "from": 1,
      "to": [
        {
          "id": 1
        },
        {
          "id": 2
        }
      ]
    },
    {
      "from": 2,
      "to": [
        {
          "id": 1
        },
        {
          "id": 2
        }
      ]
    }
  ],
  "strats": [
    {
      "id": 1,
      "link": [
        1,
        1
      ],
      "name": "Leave with Runway",
      "requires": [],
      "exitCondition": {
        "leaveWithRunway": {
          "length": 4,
          "openEnd": 1
        }
      }
    },
    {
      "id": 2,
      "link": [
        1,
        1
      ],
      "name": "Leave with Runway, Full Length",
      "requires": [
        {
          "or": [
            "Gravity",
            {
              "and": [
                {
                  "not": "f_DefeatedPhantoon"
                },
                "canRiskPermanentLossOfAccess"
              ]
            }
          ]
        }
      ],
      "exitCondition": {
        "leaveWithRunway": {
          "length": 21,
          "openEnd": 0,
          "steepUpTiles": 3
        }
      }
    },
    {
      "id": 3,
      "link": [
        1,
        1
      ],
      "name": "Suitless Water Shinecharge, Leave Shinesparking (Bottom)",
      "requires": [
        {
          "or": [
            "f_DefeatedPhantoon",
            {
              "canShineCharge": {
                "usedTiles": 21,
                "openEnd": 0,
                "steepUpTiles": 3
              }
            }
          ]
        },
        "canStutterWaterShineCharge",
        "canShinechargeMovementComplex",
        "h_canShineChargeMaxRunway",
        {
          "shinespark": {
            "frames": 20
          }
        }
      ],
      "exitCondition": {
        "leaveWithSpark": {
          "position": "bottom"
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "ammo"
          ],
          "requires": []
        }
      ],
      "note": "If Phantoon is defeated, start at least 2 tiles from the water line, and stutter just before entering it in order to charge a spark in room.",
      "devNote": "Using the dry runway and leaving with shinecharged would require canRiskPermanentLossOfAccess."
    },
    {
      "id": 4,
      "link": [
        1,
        1
      ],
      "name": "Suitless Water Shinecharge, Leave Shinesparking",
      "requires": [
        {
          "or": [
            "f_DefeatedPhantoon",
            {
              "canShineCharge": {
                "usedTiles": 21,
                "openEnd": 0,
                "steepUpTiles": 3
              }
            }
          ]
        },
        "canStutterWaterShineCharge",
        "canShinechargeMovementTricky",
        "canWalljump",
        {
          "or": [
            "canSpaceJumpWaterBounce",
            "HiJump"
          ]
        },
        "h_canShineChargeMaxRunway",
        {
          "shinespark": {
            "frames": 29
          }
        }
      ],
      "exitCondition": {
        "leaveWithSpark": {}
      },
      "unlocksDoors": [
        {
          "types": [
            "ammo"
          ],
          "requires": []
        }
      ],
      "note": "If Phantoon is defeated, start at least 2 tiles from the water line, and stutter just before entering it in order to charge a spark in room.",
      "devNote": "Using the dry runway and leaving with shinecharged would require canRiskPermanentLossOfAccess."
    },
    {
      "id": 5,
      "link": [
        1,
        1
      ],
      "name": "Bull Farm",
      "requires": [
        "f_DefeatedPhantoon",
        {
          "or": [
            "ScrewAttack",
            "canPseudoScrew",
            "Plasma",
            "Grapple"
          ]
        },
        {
          "resetRoom": {
            "nodes": [
              1
            ],
            "mustStayPut": false
          }
        },
        {
          "refill": [
            "PowerBomb"
          ]
        }
      ]
    },
    {
      "id": 6,
      "link": [
        1,
        1
      ],
      "name": "Crystal Flash",
      "requires": [
        "h_canCrystalFlash"
      ],
      "flashSuitChecked": true
    },
    {
      "id": 7,
      "link": [
        1,
        1
      ],
      "name": "G-Mode Setup - Get Hit By Bull",
      "requires": [
        "f_DefeatedPhantoon"
      ],
      "exitCondition": {
        "leaveWithGModeSetup": {}
      },
      "flashSuitChecked": true
    },
    {
      "id": 8,
      "link": [
        1,
        1
      ],
      "name": "G-Mode Regain Mobility",
      "requires": [
        {
          "enemyDamage": {
            "enemy": "Bull",
            "type": "contact",
            "hits": 1
          }
        },
        "f_DefeatedPhantoon"
      ],
      "gModeRegainMobility": {},
      "flashSuitChecked": true
    },
    {
      "id": 9,
      "link": [
        1,
        2
      ],
      "name": "Base",
      "requires": [
        {
          "or": [
            "Gravity",
            "SpaceJump"
          ]
        }
      ]
    },
    {
      "id": 10,
      "link": [
        1,
        2
      ],
      "name": "Ship Unpowered",
      "requires": [
        {
          "not": "f_DefeatedPhantoon"
        },
        "canRiskPermanentLossOfAccess"
      ]
    },
    {
      "id": 11,
      "link": [
        1,
        2
      ],
      "name": "HiJump",
      "requires": [
        "HiJump",
        "canWalljump"
      ]
    },
    {
      "id": 12,
      "link": [
        1,
        2
      ],
      "name": "Bull Boost",
      "requires": [
        {
          "notable": "Bull Boost"
        },
        "canSuitlessMaridia",
        "HiJump",
        "canUseEnemies",
        "canNeutralDamageBoost",
        "canCrouchJump",
        "Morph",
        {
          "enemyDamage": {
            "enemy": "Bull",
            "hits": 1,
            "type": "contact"
          }
        }
      ],
      "note": "Position the Bull with beam shots before jumping into it."
    },
    {
      "id": 13,
      "link": [
        1,
        2
      ],
      "name": "Bomb Jump",
      "requires": [
        "canBombJumpWaterEscape"
      ]
    },
    {
      "id": 14,
      "link": [
        1,
        2
      ],
      "name": "Midair SpringBall",
      "requires": [
        "canSuitlessMaridia",
        "canSpringBallJumpMidAir"
      ]
    },
    {
      "id": 15,
      "link": [
        1,
        2
      ],
      "name": "Shinespark, Come in Charging",
      "entranceCondition": {
        "comeInShinecharging": {
          "length": 3,
          "openEnd": 1
        }
      },
      "requires": [
        "canShinechargeMovement",
        {
          "shinespark": {
            "frames": 7,
            "excessFrames": 2
          }
        }
      ]
    },
    {
      "id": 16,
      "link": [
        1,
        2
      ],
      "name": "Shinespark, Come in Charging, Water Shinecharge",
      "entranceCondition": {
        "comeInShinecharging": {
          "length": 10,
          "openEnd": 0,
          "steepDownTiles": 1
        }
      },
      "requires": [
        "canWaterShineCharge",
        {
          "shinespark": {
            "frames": 7,
            "excessFrames": 2
          }
        }
      ],
      "devNote": "The 17 submerged tiles behave as 7 tiles with high run speed. The 3 steep down tiles behave as approximately 1."
    },
    {
      "id": 17,
      "link": [
        1,
        2
      ],
      "name": "Shinespark, Come in Charged",
      "entranceCondition": {
        "comeInShinecharged": {
          "framesRequired": 30
        }
      },
      "requires": [
        "canMidairShinespark",
        {
          "shinespark": {
            "frames": 39,
            "excessFrames": 10
          }
        }
      ],
      "flashSuitChecked": true
    },
    {
      "id": 18,
      "link": [
        1,
        2
      ],
      "name": "Exterior Speedjump",
      "entranceCondition": {
        "comeInRunning": {
          "speedBooster": true,
          "minTiles": 3
        }
      },
      "requires": [
        "canSuitlessMaridia",
        "canCarefulJump",
        {
          "or": [
            "canWalljump",
            "HiJump"
          ]
        }
      ],
      "note": "Requires at least 3 tiles to work, but some longer lengths don't work."
    },
    {
      "id": 19,
      "link": [
        1,
        2
      ],
      "name": "Cross-Room Wall-Jumpless Tricky Dash Jump",
      "entranceCondition": {
        "comeInRunning": {
          "speedBooster": true,
          "minTiles": 14.4375
        }
      },
      "requires": [
        "canTrickyDashJump"
      ],
      "note": [
        "Requires a very precise runway length in the previous room of 15 tiles with no open end.",
        "Jump while under or to the right of the Bull.",
        "Samus's speed no longer changes once hitting the water, so the jump is very forgiving, while the runway length is not."
      ]
    },
    {
      "id": 20,
      "link": [
        1,
        2
      ],
      "name": "Sponge Bath In-Room Speedjump",
      "requires": [
        "canSuitlessMaridia",
        "canTrickyDashJump",
        "canWalljump"
      ],
      "note": "It doesn't work from flush against the door. Start moving about half a tile away from it."
    },
    {
      "id": 21,
      "link": [
        1,
        2
      ],
      "name": "Use Flash Suit",
      "requires": [
        {
          "useFlashSuit": {}
        },
        {
          "shinespark": {
            "frames": 4,
            "excessFrames": 2
          }
        }
      ],
      "flashSuitChecked": true
    },
    {
      "id": 22,
      "link": [
        1,
        2
      ],
      "name": "Ceiling Bomb Jump",
      "requires": [
        "canCeilingBombJump"
      ],
      "devNote": "It is possible with a low vertical diagonal bomb jump, or a double HBJ, but those aren't tech yet."
    },
    {
      "id": 23,
      "link": [
        1,
        2
      ],
      "name": "G-mode Morph Ceiling Bomb Jump",
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "any",
          "morphed": true
        }
      },
      "requires": [
        "h_canArtificialMorphCeilingBombJump"
      ],
      "flashSuitChecked": true,
      "note": "Kill the Bull with bombs, by switching between the high and low ground. Rapidly place bombs while rolling slowly.",
      "devNote": "It is possible with a low vertical diagonal bomb jump, or a double HBJ, but those aren't tech yet."
    },
    {
      "id": 24,
      "link": [
        1,
        2
      ],
      "name": "Suitless Water Shinecharge",
      "requires": [
        "canStutterWaterShineCharge",
        "h_canShineChargeMaxRunway",
        {
          "shinespark": {
            "frames": 7,
            "excessFrames": 2
          }
        }
      ],
      "note": "If Phantoon is defeated, start at least 2 tiles from the water line, and stutter just before entering it in order to charge a spark in room."
    },
    {
      "id": 25,
      "link": [
        1,
        2
      ],
      "name": "Come in Shinecharging, Leave Shinecharged (Gravity or Phantoon Alive)",
      "entranceCondition": {
        "comeInShinecharging": {
          "length": 19,
          "openEnd": 0,
          "steepDownTiles": 3
        }
      },
      "requires": [
        {
          "or": [
            "Gravity",
            {
              "and": [
                {
                  "not": "f_DefeatedPhantoon"
                },
                "canRiskPermanentLossOfAccess"
              ]
            }
          ]
        },
        "canShinechargeMovementComplex"
      ],
      "exitCondition": {
        "leaveShinecharged": {
          "framesRemaining": 100
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "types": [
            "missiles",
            "powerbomb"
          ],
          "requires": [
            "never"
          ]
        }
      ],
      "flashSuitChecked": true,
      "devNote": [
        "One runway tile is considered unusable, in order to allow a quick jump up without needing to turn around."
      ]
    },
    {
      "id": 26,
      "link": [
        1,
        2
      ],
      "name": "Come in Shinecharging, Leave Shinecharged (HiJump Wall Jump)",
      "entranceCondition": {
        "comeInShinecharging": {
          "length": 10,
          "openEnd": 0,
          "steepDownTiles": 1
        }
      },
      "requires": [
        "canWaterShineCharge",
        "HiJump",
        "canWalljump",
        "canShinechargeMovementComplex"
      ],
      "exitCondition": {
        "leaveShinecharged": {
          "framesRemaining": 80
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "types": [
            "missiles",
            "powerbomb"
          ],
          "requires": [
            "never"
          ]
        }
      ],
      "flashSuitChecked": true,
      "devNote": [
        "The 17 submerged tiles behave as 7 tiles with high run speed. The 3 steep down tiles behave as approximately 1."
      ]
    },
    {
      "id": 27,
      "link": [
        1,
        2
      ],
      "name": "Carry Shinecharge (Gravity)",
      "entranceCondition": {
        "comeInShinecharged": {
          "framesRequired": 110
        }
      },
      "requires": [
        "Gravity",
        "canShinechargeMovementComplex"
      ],
      "exitCondition": {
        "leaveShinecharged": {
          "framesRemaining": "auto"
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "types": [
            "missiles",
            "powerbomb"
          ],
          "requires": [
            "never"
          ]
        }
      ],
      "flashSuitChecked": true
    },
    {
      "id": 28,
      "link": [
        1,
        2
      ],
      "name": "Carry Shinecharge (HiJump, Wall Jump)",
      "entranceCondition": {
        "comeInShinecharged": {
          "framesRequired": 160
        }
      },
      "requires": [
        "canShinechargeMovementComplex",
        "HiJump",
        "canWalljump"
      ],
      "exitCondition": {
        "leaveShinecharged": {
          "framesRemaining": "auto"
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "types": [
            "missiles",
            "powerbomb"
          ],
          "requires": [
            "never"
          ]
        }
      ],
      "flashSuitChecked": true
    },
    {
      "id": 29,
      "link": [
        1,
        2
      ],
      "name": "Come in Shinecharged, Leave with Spark (Space Jump)",
      "entranceCondition": {
        "comeInShinecharged": {
          "framesRequired": 150
        }
      },
      "requires": [
        "SpaceJump",
        "canShinechargeMovementComplex",
        {
          "shinespark": {
            "frames": 9
          }
        }
      ],
      "exitCondition": {
        "leaveWithSpark": {}
      },
      "unlocksDoors": [
        {
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "types": [
            "missiles",
            "powerbomb"
          ],
          "requires": [
            "never"
          ]
        }
      ],
      "flashSuitChecked": true,
      "note": "If needed, shoot the Bull to prevent it from blocking Samus' path."
    },
    {
      "id": 30,
      "link": [
        1,
        2
      ],
      "name": "Suitless Water Shinecharge, Leave Shinecharged (SpaceJump)",
      "requires": [
        {
          "or": [
            "f_DefeatedPhantoon",
            {
              "canShineCharge": {
                "usedTiles": 20,
                "openEnd": 0,
                "steepDownTiles": 3
              }
            }
          ]
        },
        "canStutterWaterShineCharge",
        "canShinechargeMovementComplex",
        "canWalljump",
        "canSpaceJumpWaterBounce",
        "h_canShineChargeMaxRunway"
      ],
      "exitCondition": {
        "leaveShinecharged": {
          "framesRemaining": 30
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "ammo"
          ],
          "requires": []
        }
      ],
      "flashSuitChecked": true,
      "note": "If Phantoon is defeated, start at least 2 tiles from the water line, and stutter just before entering it in order to shinecharge in room.",
      "devNote": "Using the dry runway and leaving with shinecharged with more frames would require canRiskPermanentLossOfAccess."
    },
    {
      "id": 31,
      "link": [
        1,
        2
      ],
      "name": "Suitless Water Shinecharge, Leave Shinecharged (HiJump)",
      "requires": [
        {
          "or": [
            "f_DefeatedPhantoon",
            {
              "canShineCharge": {
                "usedTiles": 20,
                "openEnd": 0,
                "steepDownTiles": 3
              }
            }
          ]
        },
        "canStutterWaterShineCharge",
        "canShinechargeMovementComplex",
        "canWalljump",
        "HiJump",
        "h_canShineChargeMaxRunway"
      ],
      "exitCondition": {
        "leaveShinecharged": {
          "framesRemaining": 75
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "ammo"
          ],
          "requires": []
        }
      ],
      "flashSuitChecked": true,
      "note": "If Phantoon is defeated, start at least 2 tiles from the water line, and stutter just before entering it in order to shinecharge in room.",
      "devNote": "Using the dry runway and leaving with shinecharged with more frames would require canRiskPermanentLossOfAccess."
    },
    {
      "id": 32,
      "link": [
        1,
        2
      ],
      "name": "Leave Spinning",
      "requires": [
        {
          "or": [
            {
              "and": [
                {
                  "not": "f_DefeatedPhantoon"
                },
                "canRiskPermanentLossOfAccess"
              ]
            },
            "Gravity"
          ]
        }
      ],
      "exitCondition": {
        "leaveSpinning": {
          "remoteRunway": {
            "length": 15,
            "openEnd": 1
          },
          "minExtraRunSpeed": "$1.6"
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "ammo"
          ],
          "requires": []
        }
      ]
    },
    {
      "id": 33,
      "link": [
        1,
        2
      ],
      "name": "Leave Spinning (Door Open)",
      "requires": [
        {
          "or": [
            {
              "and": [
                {
                  "not": "f_DefeatedPhantoon"
                },
                "canRiskPermanentLossOfAccess"
              ]
            },
            "Gravity"
          ]
        },
        {
          "doorUnlockedAtNode": 1
        }
      ],
      "exitCondition": {
        "leaveSpinning": {
          "remoteRunway": {
            "length": 16,
            "openEnd": 1
          },
          "minExtraRunSpeed": "$1.6"
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "ammo"
          ],
          "requires": []
        }
      ]
    },
    {
      "id": 34,
      "link": [
        1,
        2
      ],
      "name": "Leave With Mockball",
      "requires": [
        {
          "or": [
            {
              "and": [
                {
                  "not": "f_DefeatedPhantoon"
                },
                "canRiskPermanentLossOfAccess"
              ]
            },
            "Gravity"
          ]
        }
      ],
      "exitCondition": {
        "leaveWithMockball": {
          "remoteRunway": {
            "length": 15,
            "openEnd": 1
          },
          "landingRunway": {
            "length": 2,
            "openEnd": 1
          }
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "ammo"
          ],
          "requires": []
        }
      ],
      "devNote": "Longer landing runway could be used but would be difficult at high run speeds."
    },
    {
      "id": 35,
      "link": [
        1,
        2
      ],
      "name": "Leave With Mockball (Open Door)",
      "requires": [
        {
          "or": [
            {
              "and": [
                {
                  "not": "f_DefeatedPhantoon"
                },
                "canRiskPermanentLossOfAccess"
              ]
            },
            "Gravity"
          ]
        },
        {
          "doorUnlockedAtNode": 1
        }
      ],
      "exitCondition": {
        "leaveWithMockball": {
          "remoteRunway": {
            "length": 16,
            "openEnd": 1
          },
          "landingRunway": {
            "length": 2,
            "openEnd": 1
          }
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "ammo"
          ],
          "requires": []
        }
      ],
      "devNote": "Longer landing runway could be used but would be difficult at high run speeds."
    },
    {
      "id": 36,
      "link": [
        1,
        2
      ],
      "name": "Leave Space Jumping",
      "requires": [
        {
          "or": [
            {
              "and": [
                {
                  "not": "f_DefeatedPhantoon"
                },
                "canRiskPermanentLossOfAccess"
              ]
            },
            "Gravity"
          ]
        }
      ],
      "exitCondition": {
        "leaveSpaceJumping": {
          "remoteRunway": {
            "length": 15,
            "openEnd": 1
          },
          "minExtraRunSpeed": "$1.8"
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "ammo"
          ],
          "requires": []
        }
      ]
    },
    {
      "id": 37,
      "link": [
        1,
        2
      ],
      "name": "Leave Space Jumping (Door Open)",
      "requires": [
        {
          "or": [
            {
              "and": [
                {
                  "not": "f_DefeatedPhantoon"
                },
                "canRiskPermanentLossOfAccess"
              ]
            },
            "Gravity"
          ]
        },
        {
          "doorUnlockedAtNode": 1
        }
      ],
      "unlocksDoors": [
        {
          "types": [
            "ammo"
          ],
          "requires": []
        }
      ],
      "exitCondition": {
        "leaveSpaceJumping": {
          "remoteRunway": {
            "length": 16,
            "openEnd": 1
          },
          "minExtraRunSpeed": "$1.8"
        }
      }
    },
    {
      "id": 38,
      "link": [
        1,
        2
      ],
      "name": "Leave With Temporary Blue (Gravity or Power Off)",
      "requires": [
        {
          "or": [
            {
              "and": [
                {
                  "not": "f_DefeatedPhantoon"
                },
                "canRiskPermanentLossOfAccess"
              ]
            },
            "Gravity"
          ]
        },
        {
          "canShineCharge": {
            "usedTiles": 19,
            "openEnd": 0,
            "steepDownTiles": 3
          }
        },
        "canChainTemporaryBlue"
      ],
      "exitCondition": {
        "leaveWithTemporaryBlue": {}
      },
      "unlocksDoors": [
        {
          "types": [
            "ammo"
          ],
          "requires": []
        }
      ]
    },
    {
      "id": 39,
      "link": [
        1,
        2
      ],
      "name": "Leave With Temporary Blue (Stutter Shinecharge Spring Ball Jump)",
      "requires": [
        {
          "or": [
            {
              "enemyKill": {
                "enemies": [
                  [
                    "Bull"
                  ]
                ]
              }
            },
            {
              "and": [
                {
                  "not": "f_DefeatedPhantoon"
                },
                "canRiskPermanentLossOfAccess"
              ]
            },
            "canTrickyJump"
          ]
        },
        "canStutterWaterShineCharge",
        "h_getBlueSpeedMaxRunway",
        "canTrickySpringBallJump",
        "canChainTemporaryBlue"
      ],
      "unlocksDoors": [
        {
          "types": [
            "ammo"
          ],
          "requires": []
        }
      ],
      "note": [
        "If possible (and applicable), kill the Bull ahead of time, and do a shinecharge to gain temporary blue.",
        "Otherwise, shoot the Bull to get it out of the way;",
        "then, after getting blue speed with a stutter water shinecharge, jump directly into a spring ball jump rather than shinecharging first."
      ]
    },
    {
      "id": 40,
      "link": [
        2,
        1
      ],
      "name": "Base",
      "requires": []
    },
    {
      "id": 41,
      "link": [
        2,
        1
      ],
      "name": "Come in Shinecharging, Leave Shinecharged (Gravity)",
      "entranceCondition": {
        "comeInShinecharging": {
          "length": 8,
          "openEnd": 1,
          "steepUpTiles": 2
        }
      },
      "requires": [
        "Gravity",
        "canShinechargeMovementComplex"
      ],
      "exitCondition": {
        "leaveShinecharged": {
          "framesRemaining": 70
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "types": [
            "missiles",
            "powerbomb"
          ],
          "requires": [
            "never"
          ]
        }
      ],
      "flashSuitChecked": true,
      "note": [
        "To maximize frames remaining, gain a shinecharge while sliding off the ledge into the water."
      ]
    },
    {
      "id": 42,
      "link": [
        2,
        1
      ],
      "name": "Carry Shinecharge (Gravity)",
      "entranceCondition": {
        "comeInShinecharged": {
          "framesRequired": 130
        }
      },
      "requires": [
        "Gravity",
        "canShinechargeMovementComplex"
      ],
      "exitCondition": {
        "leaveShinecharged": {
          "framesRemaining": "auto"
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "types": [
            "missiles",
            "powerbomb"
          ],
          "requires": [
            "never"
          ]
        }
      ],
      "flashSuitChecked": true,
      "note": [
        "Enter the room with a shinecharge.",
        "Run and jump over the Bull (if power is on), and carry the shinecharge into the next room."
      ]
    },
    {
      "id": 43,
      "link": [
        2,
        1
      ],
      "name": "Carry Shinecharge (SpaceJump)",
      "entranceCondition": {
        "comeInShinecharged": {
          "framesRequired": 135
        }
      },
      "requires": [
        "SpaceJump",
        "canShinechargeMovementComplex"
      ],
      "exitCondition": {
        "leaveShinecharged": {
          "framesRemaining": "auto"
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "types": [
            "missiles",
            "powerbomb"
          ],
          "requires": [
            "never"
          ]
        }
      ],
      "flashSuitChecked": true,
      "note": [
        "Enter the room with a shinecharge.",
        "Use Space Jump to run and jump over the Bull and water (if power is on), and carry the shinecharge into the next room."
      ]
    },
    {
      "id": 44,
      "link": [
        2,
        1
      ],
      "name": "Come in Shinecharged, Leave with Spark",
      "entranceCondition": {
        "comeInShinecharged": {
          "framesRequired": 75
        }
      },
      "requires": [
        "canShinechargeMovementComplex",
        {
          "shinespark": {
            "frames": 25
          }
        }
      ],
      "exitCondition": {
        "leaveWithSpark": {}
      },
      "unlocksDoors": [
        {
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "types": [
            "missiles",
            "powerbomb"
          ],
          "requires": [
            "never"
          ]
        }
      ],
      "flashSuitChecked": true,
      "note": [
        "Enter the room with a shinecharge.",
        "Run and jump over the Bull (if power is on).",
        "Fire a shot mid-air, and activate the shinespark wind-up.",
        "Wait to spark until the shot as reached the door."
      ]
    },
    {
      "id": 45,
      "link": [
        2,
        1
      ],
      "name": "Hero Shot Spark",
      "entranceCondition": {
        "comeInShinecharged": {
          "framesRequired": 60
        }
      },
      "requires": [
        "canShinechargeMovementTricky",
        "canHeroShot",
        {
          "or": [
            {
              "enemyDamage": {
                "enemy": "Bull",
                "type": "contact",
                "hits": 1
              }
            },
            {
              "and": [
                {
                  "not": "f_DefeatedPhantoon"
                },
                "canRiskPermanentLossOfAccess"
              ]
            }
          ]
        },
        {
          "shinespark": {
            "frames": 32
          }
        }
      ],
      "exitCondition": {
        "leaveWithSpark": {}
      },
      "unlocksDoors": [
        {
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "types": [
            "missiles",
            "powerbomb"
          ],
          "requires": [
            "never"
          ]
        }
      ],
      "flashSuitChecked": true,
      "note": [
        "Enter the room with a shinecharge.",
        "Run and jump off the ledge.",
        "Fire a shot mid-air and activate the shinespark wind-up.",
        "Take a hit from the the Bull (if power is on).",
        "Wait until the shot is at a specific position before sparking.",
        "Sparking too late will cause the shot to despawn before reaching the door.",
        "Sparking too early will cause Samus to bonk the door as it will not yet be open.",
        "A beam shot, Missile, or Super can be used."
      ]
    },
    {
      "id": 46,
      "link": [
        2,
        1
      ],
      "name": "Leave Spinning (Space Jump)",
      "requires": [
        "SpaceJump"
      ],
      "exitCondition": {
        "leaveSpinning": {
          "remoteRunway": {
            "length": 8,
            "steepDownTiles": 2,
            "openEnd": 1
          }
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "ammo"
          ],
          "requires": []
        }
      ]
    },
    {
      "id": 47,
      "link": [
        2,
        1
      ],
      "name": "Leave Spinning (Space Jump, Door Open)",
      "requires": [
        "SpaceJump",
        {
          "doorUnlockedAtNode": 2
        }
      ],
      "exitCondition": {
        "leaveSpinning": {
          "remoteRunway": {
            "length": 9,
            "steepUpTiles": 2,
            "openEnd": 1
          }
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "ammo"
          ],
          "requires": []
        }
      ]
    },
    {
      "id": 48,
      "link": [
        2,
        1
      ],
      "name": "Leave With Mockball",
      "requires": [],
      "exitCondition": {
        "leaveWithMockball": {
          "remoteRunway": {
            "length": 8,
            "steepUpTiles": 2,
            "openEnd": 1
          },
          "landingRunway": {
            "length": 4,
            "openEnd": 1
          }
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "ammo"
          ],
          "requires": []
        }
      ]
    },
    {
      "id": 49,
      "link": [
        2,
        1
      ],
      "name": "Leave With Mockball (Door Open)",
      "requires": [
        {
          "doorUnlockedAtNode": 2
        }
      ],
      "exitCondition": {
        "leaveWithMockball": {
          "remoteRunway": {
            "length": 9,
            "steepUpTiles": 2,
            "openEnd": 1
          },
          "landingRunway": {
            "length": 4,
            "openEnd": 1
          }
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "ammo"
          ],
          "requires": []
        }
      ]
    },
    {
      "id": 50,
      "link": [
        2,
        1
      ],
      "name": "Leave Space Jumping",
      "requires": [],
      "exitCondition": {
        "leaveSpaceJumping": {
          "remoteRunway": {
            "length": 8,
            "steepUpTiles": 2,
            "openEnd": 1
          }
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "ammo"
          ],
          "requires": []
        }
      ]
    },
    {
      "id": 51,
      "link": [
        2,
        1
      ],
      "name": "Leave Space Jumping (Door Open)",
      "requires": [
        {
          "doorUnlockedAtNode": 2
        }
      ],
      "exitCondition": {
        "leaveSpaceJumping": {
          "remoteRunway": {
            "length": 9,
            "steepUpTiles": 2,
            "openEnd": 1
          }
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "ammo"
          ],
          "requires": []
        }
      ]
    },
    {
      "id": 52,
      "link": [
        2,
        1
      ],
      "name": "Come in Getting Blue Speed, Leave With Temporary Blue",
      "entranceCondition": {
        "comeInGettingBlueSpeed": {
          "length": 8,
          "steepUpTiles": 2,
          "openEnd": 1
        }
      },
      "requires": [
        "canSpeedball"
      ],
      "exitCondition": {
        "leaveWithTemporaryBlue": {}
      },
      "unlocksDoors": [
        {
          "types": [
            "ammo"
          ],
          "requires": []
        }
      ],
      "note": [
        "Jump at the end of the runway to kill the Bull with blue speed, or jump over it.",
        "Then gain a speedball to approach the door with temporary blue."
      ]
    },
    {
      "id": 53,
      "link": [
        2,
        1
      ],
      "name": "Grapple Teleport Door Lock Skip",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              3,
              12
            ],
            [
              3,
              13
            ]
          ]
        }
      },
      "requires": [],
      "bypassesDoorShell": true
    },
    {
      "id": 54,
      "link": [
        2,
        1
      ],
      "name": "Carry Grapple Teleport (Top Position)",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              3,
              12
            ]
          ]
        }
      },
      "requires": [],
      "bypassesDoorShell": true,
      "exitCondition": {
        "leaveWithGrappleTeleport": {
          "blockPositions": [
            [
              3,
              12
            ]
          ]
        }
      }
    },
    {
      "id": 55,
      "link": [
        2,
        1
      ],
      "name": "Carry Grapple Teleport (Bottom Position)",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              3,
              13
            ]
          ]
        }
      },
      "requires": [],
      "bypassesDoorShell": true,
      "exitCondition": {
        "leaveWithGrappleTeleport": {
          "blockPositions": [
            [
              3,
              13
            ]
          ]
        }
      }
    },
    {
      "id": 56,
      "link": [
        2,
        2
      ],
      "name": "Leave with Runway",
      "requires": [],
      "exitCondition": {
        "leaveWithRunway": {
          "length": 9,
          "openEnd": 1,
          "steepDownTiles": 2
        }
      }
    },
    {
      "id": 57,
      "link": [
        2,
        2
      ],
      "name": "Bull Farm",
      "requires": [
        "f_DefeatedPhantoon",
        {
          "or": [
            "ScrewAttack",
            "canPseudoScrew",
            "Plasma",
            "Grapple"
          ]
        },
        {
          "resetRoom": {
            "nodes": [
              2
            ],
            "mustStayPut": false
          }
        },
        {
          "refill": [
            "PowerBomb"
          ]
        }
      ]
    },
    {
      "id": 58,
      "link": [
        2,
        2
      ],
      "name": "Crystal Flash",
      "requires": [
        "h_canCrystalFlash"
      ],
      "flashSuitChecked": true
    },
    {
      "id": 59,
      "link": [
        2,
        2
      ],
      "name": "G-Mode Setup - Get Hit By Bull",
      "requires": [
        "f_DefeatedPhantoon"
      ],
      "exitCondition": {
        "leaveWithGModeSetup": {}
      },
      "flashSuitChecked": true
    },
    {
      "id": 60,
      "link": [
        2,
        2
      ],
      "name": "G-Mode Regain Mobility",
      "requires": [
        {
          "enemyDamage": {
            "enemy": "Bull",
            "type": "contact",
            "hits": 1
          }
        },
        "f_DefeatedPhantoon"
      ],
      "gModeRegainMobility": {},
      "flashSuitChecked": true
    },
    {
      "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": 61,
  "notables": [
    {
      "id": 1,
      "name": "Bull Boost",
      "note": "Position the Bull with beam shots before jumping into it."
    }
  ],
  "nextNotableId": 2
}