The ability to jump through a horizontal door transition from a nearby platform below the doorway, jumping close and low enough through the door to be able to pass through while carrying upward momentum into the next room.
From: 1
Left Door
To: 1
Left Door
Exit condition: { "leaveWithSidePlatform": { "height": 3, "runway": { "length": 10, "openEnd": 0 }, "obstruction": [ 1, 0 ] } } |
From: 1
Left Door
To: 1
Left Door
Requires: "f_DefeatedBombTorizo" Exit condition: { "leaveWithSidePlatform": { "height": 3, "runway": { "length": 13, "openEnd": 0 }, "obstruction": [ 1, 0 ] } } |
Leaving with upward momentum is possible in three ways: 1) Most easily, with a momentum-conserving morph against the ceiling through the transition, 2) With a momentum-conserving turnaround through the transition, or 3) Jumping specifically with a extra run speed $5.2 or $5.3 and aiming down through the transition. For the first two methods, back into the corner at the start of runway. Requires: "SpeedBooster" { "or": [ "canMomentumConservingMorph", "canInsaneJump" ] } Exit condition: { "leaveWithSidePlatform": { "height": 3, "runway": { "length": 40, "openEnd": 0 }, "obstruction": [ 5, 2 ] } } |
Leaving with upward momentum is possible in three ways: 1) Most easily, with a momentum-conserving morph against the ceiling through the transition, 2) With a momentum-conserving turnaround through the transition, or 3) Jumping specifically with a extra run speed $5.2 or $5.3 and aiming down through the transition. For the first two methods, avoid backing into the corner at the start of runway; instead press against it and turn around, to put Samus into a better position. Requires: "SpeedBooster" { "or": [ "canMomentumConservingMorph", "canInsaneJump" ] } Exit condition: { "leaveWithSidePlatform": { "height": 3, "runway": { "length": 40, "openEnd": 0 }, "obstruction": [ 3, 0 ] } } |
Leaving with upward momentum is possible in three ways: 1) Most easily, with a momentum-conserving morph against the ceiling through the transition, 2) With a momentum-conserving turnaround through the transition, or 3) Jumping specifically with a extra run speed $5.2 or $5.3 and aiming down through the transition. For the first two methods, back into the corner to use the full runway; it helps to use an arm pump to advance a single pixel while running. This can be done by holding an angle button before starting to move forward, then releasing angle while running. Requires: "SpeedBooster" { "or": [ "canMomentumConservingMorph", "canInsaneJump" ] } Exit condition: { "leaveWithSidePlatform": { "height": 2, "runway": { "length": 45, "openEnd": 1 }, "obstruction": [ 3, 0 ] } } |
Leaving with upward momentum is possible in three ways: 1) Most easily, with a momentum-conserving morph against the ceiling through the transition, 2) With a momentum-conserving turnaround through the transition, or 3) Jumping specifically with a extra run speed $5.2 or $5.3 and aiming down through the transition. For the first two methods, back into the corner to use the full runway. Requires: "SpeedBooster" { "or": [ "canMomentumConservingMorph", "canInsaneJump" ] } Exit condition: { "leaveWithSidePlatform": { "height": 2, "runway": { "length": 45, "openEnd": 1 }, "obstruction": [ 3, 0 ] } } |
Requires: "Gravity" Exit condition: { "leaveWithSidePlatform": { "height": 3, "runway": { "length": 5, "openEnd": 0 }, "obstruction": [ 1, 0 ] } } |
From: 2
Right Door
To: 2
Right Door
Run and jump to the left, turning around right before landing on the spikes. Continue holding right, gaining speed to jump out through the door. Requires: "Gravity" { "spikeHits": 1 } "canUseIFrames" { "or": [ { "spikeHits": 2 }, "canInsaneJump" ] } Exit condition: { "leaveWithSidePlatform": { "height": 3, "runway": { "length": 16, "openEnd": 0 }, "obstruction": [ 1, 0 ] } } |
From: 1
Bottom Left Door
To: 1
Bottom Left Door
Leaving with upward momentum is possible in three ways: 1) Most easily, with a momentum-conserving morph against the ceiling through the transition, 2) With a momentum-conserving turnaround through the transition, or 3) Jumping specifically with a extra run speed between $5.2 and $5.4 and aiming down through the transition. For the first two methods, avoid backing into the corner; instead press against it and turn around, to put Samus into a better position. For the third method, use only the part of the runway in front of the Power Bomb blocks, or about a tile less. Requires: { "obstaclesCleared": [ "C" ] } "SpeedBooster" { "or": [ "canMomentumConservingMorph", "canInsaneJump" ] } Exit condition: { "leaveWithSidePlatform": { "height": 3, "runway": { "length": 42, "openEnd": 0 }, "obstruction": [ 3, 0 ] } } |
From: 1
Bottom Left Door
To: 1
Bottom Left Door
Leaving with upward momentum is possible in three ways: 1) Most easily, with a momentum-conserving morph against the ceiling through the transition, 2) With a momentum-conserving turnaround through the transition, or 3) Jumping and aiming down through the transition. Either back into the corner, or press against it and turn around; it doesn't matter which. Requires: "SpeedBooster" { "or": [ "canMomentumConservingMorph", "canInsaneJump" ] } Exit condition: { "leaveWithSidePlatform": { "height": 3, "runway": { "length": 31, "openEnd": 0 }, "obstruction": [ 3, 0 ] } } |
Requires: { "obstaclesCleared": [ "C" ] } "SpeedBooster" "canInsaneJump" "canMomentumConservingMorph" Exit condition: { "leaveWithSidePlatform": { "height": 2, "runway": { "length": 25, "openEnd": 0 }, "obstruction": [ 4, 0 ] } } |
Exit condition: { "leaveWithSidePlatform": { "height": 2, "runway": { "length": 6, "openEnd": 0 }, "obstruction": [ 1, 0 ] } } |
Requires: "canTrickyJump" { "or": [ "canLateralMidAirMorph", { "and": [ "canMomentumConservingTurnaround", "canInsaneJump" ] } ] } Exit condition: { "leaveWithSidePlatform": { "height": 2, "runway": { "length": 10, "openEnd": 0 }, "obstruction": [ 2, 0 ] } } |
Exit condition: { "leaveWithSidePlatform": { "height": 2, "runway": { "length": 45, "openEnd": 1 }, "obstruction": [ 1, 0 ] } } |
Requires: "SpeedBooster" "canMomentumConservingMorph" Exit condition: { "leaveWithSidePlatform": { "height": 2, "runway": { "length": 20, "openEnd": 0 }, "obstruction": [ 3, 0 ] } } |
Requires: { "obstaclesCleared": [ "A" ] } Exit condition: { "leaveWithSidePlatform": { "height": 3, "runway": { "length": 12, "openEnd": 0 }, "obstruction": [ 1, 0 ] } } |
Requires: "Gravity" "canTrickyJump" Exit condition: { "leaveWithSidePlatform": { "height": 2, "runway": { "length": 45, "openEnd": 1 }, "obstruction": [ 2, 0 ] } } |
Exit condition: { "leaveWithSidePlatform": { "height": 1, "runway": { "length": 4, "openEnd": 1 }, "obstruction": [ 1, 0 ] } } |
Exit condition: { "leaveWithSidePlatform": { "height": 1, "runway": { "length": 4, "openEnd": 1 }, "obstruction": [ 1, 0 ] } } |
Leaving with upward momentum is possible in three ways: 1) Most easily, with a momentum-conserving morph against the ceiling through the transition, 2) With a momentum-conserving turnaround through the transition, or 3) Jumping specifically with a extra run speed $5.2 or $5.3 and aiming down through the transition. For the first two methods, avoid backing into the corner at the start of runway; instead press against it and turn around, to put Samus into a better position. Requires: { "obstaclesCleared": [ "A" ] } "SpeedBooster" { "or": [ "canMomentumConservingMorph", "canInsaneJump" ] } Exit condition: { "leaveWithSidePlatform": { "height": 2, "runway": { "length": 45, "openEnd": 1 }, "obstruction": [ 3, 0 ] } } |
Requires: { "obstaclesCleared": [ "A" ] } "SpeedBooster" "canInsaneJump" "canMomentumConservingMorph" "canInsaneMidAirMorph" Exit condition: { "leaveWithSidePlatform": { "height": 2, "runway": { "length": 45, "openEnd": 1 }, "obstruction": [ 4, 0 ] } } |
Requires: { "or": [ "f_DefeatedKraid", { "obstaclesCleared": [ "f_DefeatedKraid" ] } ] } "SpeedBooster" "canInsaneJump" "canMomentumConservingMorph" Exit condition: { "leaveWithSidePlatform": { "height": 2, "runway": { "length": 24, "openEnd": 0 }, "obstruction": [ 4, 0 ] } } |
Requires: { "or": [ "f_DefeatedKraid", { "obstaclesCleared": [ "f_DefeatedKraid" ] } ] } "SpeedBooster" "canInsaneJump" "canMomentumConservingMorph" Exit condition: { "leaveWithSidePlatform": { "height": 2, "runway": { "length": 24, "openEnd": 0 }, "obstruction": [ 4, 0 ] } } |
Requires: { "or": [ { "obstaclesCleared": [ "A" ] }, { "enemyDamage": { "enemy": "Beetom", "type": "contact", "hits": 2 } } ] } Exit condition: { "leaveWithSidePlatform": { "height": 1, "runway": { "length": 6, "openEnd": 0 }, "obstruction": [ 1, 0 ] } } |
Exit condition: { "leaveWithSidePlatform": { "height": 1, "runway": { "length": 17, "openEnd": 1 }, "obstruction": [ 1, 0 ] } } |
Requires: { "heatFrames": 320 } Exit condition: { "leaveWithSidePlatform": { "height": 3, "runway": { "length": 28, "openEnd": 0, "gentleDownTiles": 3, "gentleUpTiles": 3 }, "obstruction": [ 1, 0 ] } } |
Requires: { "heatFrames": 250 } Exit condition: { "leaveWithSidePlatform": { "height": 1, "runway": { "length": 16, "openEnd": 1 }, "obstruction": [ 1, 0 ] } } |
From: 2
Bottom Right Door
To: 2
Bottom Right Door
Requires: { "heatFrames": 135 } "canTrickyJump" Exit condition: { "leaveWithSidePlatform": { "height": 2, "runway": { "length": 3, "openEnd": 2 }, "obstruction": [ 3, 2 ] } } |
Exit condition: { "leaveWithSidePlatform": { "height": 3, "runway": { "length": 3, "openEnd": 0 }, "obstruction": [ 1, 0 ] } } |
From: 1
Top Right Door
To: 1
Top Right Door
Requires: { "heatFrames": 105 } Exit condition: { "leaveWithSidePlatform": { "height": 1, "runway": { "length": 2, "openEnd": 0 }, "obstruction": [ 1, 0 ] } } |
Exit condition: { "leaveWithSidePlatform": { "height": 1, "runway": { "length": 1, "openEnd": 1 }, "obstruction": [ 1, 0 ] } } |
Exit condition: { "leaveWithSidePlatform": { "height": 1, "runway": { "length": 4, "openEnd": 1 }, "obstruction": [ 1, 0 ] } } |
From: 1
Bottom Left Door
To: 1
Bottom Left Door
Requires: { "heatFrames": 120 } Exit condition: { "leaveWithSidePlatform": { "height": 1, "runway": { "length": 9, "openEnd": 0 }, "obstruction": [ 1, 0 ] } } |
From: 2
Middle Right Door
To: 2
Middle Right Door
Requires: { "heatFrames": 190 } "HiJump" Exit condition: { "leaveWithSidePlatform": { "height": 8, "runway": { "length": 12, "openEnd": 0 }, "obstruction": [ 1, 0 ] } } |
From: 4
Top Right Door
To: 4
Top Right Door
Requires: { "heatFrames": 270 } "canTrickyDodgeEnemies" Exit condition: { "leaveWithSidePlatform": { "height": 6, "runway": { "length": 4, "openEnd": 2 }, "obstruction": [ 5, 6 ] } } |
Requires: { "heatFrames": 120 } Exit condition: { "leaveWithSidePlatform": { "height": 1, "runway": { "length": 2, "openEnd": 1 }, "obstruction": [ 1, 0 ] } } |
From: 1
Left Door
To: 1
Left Door
Requires: { "heatFrames": 280 } "canTrickyJump" { "or": [ { "obstaclesCleared": [ "A" ] }, { "and": [ "canHitbox", "canTrickyDodgeEnemies" ] } ] } Exit condition: { "leaveWithSidePlatform": { "height": 3, "runway": { "length": 40, "openEnd": 0 }, "obstruction": [ 3, 2 ] } } |
From: 1
Left Door
To: 1
Left Door
Requires: { "heatFrames": 130 } Exit condition: { "leaveWithSidePlatform": { "height": 2, "runway": { "length": 2, "openEnd": 1 }, "obstruction": [ 1, 0 ] } } |
From: 2
Right Door
To: 2
Right Door
Requires: { "heatFrames": 280 } "canTrickyJump" { "or": [ { "obstaclesCleared": [ "A" ] }, { "and": [ "canHitbox", "canTrickyDodgeEnemies" ] } ] } Exit condition: { "leaveWithSidePlatform": { "height": 3, "runway": { "length": 40, "openEnd": 0 }, "obstruction": [ 3, 2 ] } } |
From: 2
Right Door
To: 2
Right Door
Requires: { "heatFrames": 130 } Exit condition: { "leaveWithSidePlatform": { "height": 2, "runway": { "length": 2, "openEnd": 1 }, "obstruction": [ 1, 0 ] } } |
Entrance condition: { "comeInNormally": {} } Requires: { "heatFrames": 180 } Exit condition: { "leaveWithSidePlatform": { "height": 3, "runway": { "length": 12, "openEnd": 0 }, "obstruction": [ 1, 0 ] } } Unlocks doors: {"types":["missiles"],"requires":[{"heatFrames":50}]} {"types":["super"],"requires":[]} {"types":["powerbomb"],"requires":[{"heatFrames":110}]} |
Requires: { "heatFrames": 150 } Exit condition: { "leaveWithSidePlatform": { "height": 2, "runway": { "length": 12, "openEnd": 0 }, "obstruction": [ 1, 0 ] } } |
Requires: { "heatFrames": 210 } "canMomentumConservingMorph" "canInsaneJump" Exit condition: { "leaveWithSidePlatform": { "height": 1, "runway": { "length": 9, "openEnd": 2 }, "obstruction": [ 2, 1 ] } } |
Requires: "SpeedBooster" { "heatFrames": 240 } "canTrickyJump" "canLateralMidAirMorph" Exit condition: { "leaveWithSidePlatform": { "height": 3, "runway": { "length": 8, "openEnd": 0 }, "obstruction": [ 3, 0 ] } } |
Exit condition: { "leaveWithSidePlatform": { "height": 5, "runway": { "length": 14, "openEnd": 0 }, "obstruction": [ 3, 0 ] } } |
Requires: { "not": "f_DefeatedPhantoon" } "SpeedBooster" "canInsaneJump" "canMomentumConservingMorph" "canInsaneMidAirMorph" Exit condition: { "leaveWithSidePlatform": { "height": 3, "runway": { "length": 45, "openEnd": 1 }, "obstruction": [ 5, 0 ] } } |
Requires: "f_DefeatedPhantoon" "SpeedBooster" { "or": [ "canMomentumConservingMorph", { "and": [ "canMomentumConservingTurnaround", "canInsaneJump" ] } ] } Exit condition: { "leaveWithSidePlatform": { "height": 3, "runway": { "length": 45, "openEnd": 1 }, "obstruction": [ 3, 0 ] } } |
Requires: "SpeedBooster" Exit condition: { "leaveWithSidePlatform": { "height": 3, "runway": { "length": 5, "openEnd": 0 }, "obstruction": [ 4, 2 ] } } |
From: 2
Middle Left Door
To: 2
Middle Left Door
Requires: { "not": "f_DefeatedPhantoon" } "canRiskPermanentLossOfAccess" { "or": [ "canMomentumConservingMorph", { "and": [ "canMomentumConservingTurnaround", "canInsaneJump" ] } ] } Exit condition: { "leaveWithSidePlatform": { "height": 3, "runway": { "length": 45, "openEnd": 1 }, "obstruction": [ 3, 0 ] } } |
Requires: { "obstaclesNotCleared": [ "C" ] } Exit condition: { "leaveWithSidePlatform": { "height": 2, "runway": { "length": 10, "openEnd": 0, "steepDownTiles": 6 }, "obstruction": [ 1, 0 ] } } |
From: 3
Bottom Left Door
To: 3
Bottom Left Door
Requires: { "or": [ "Gravity", { "and": [ { "not": "f_DefeatedPhantoon" }, "canRiskPermanentLossOfAccess" ] } ] } Exit condition: { "leaveWithSidePlatform": { "height": 5, "runway": { "length": 5, "openEnd": 0, "steepDownTiles": 3 }, "obstruction": [ 5, 5 ] } } |
Exit condition: { "leaveWithSidePlatform": { "height": 3, "runway": { "length": 12, "openEnd": 0 }, "obstruction": [ 1, 0 ] } } |
Requires: { "or": [ { "and": [ "Gravity", "canTrickyDodgeEnemies" ] }, { "and": [ { "not": "f_DefeatedPhantoon" }, "canRiskPermanentLossOfAccess" ] } ] } Exit condition: { "leaveWithSidePlatform": { "height": 3, "runway": { "length": 4, "openEnd": 0 }, "obstruction": [ 1, 0 ] } } |
Requires: { "or": [ { "and": [ "Gravity", "canTrickyDodgeEnemies" ] }, { "and": [ { "not": "f_DefeatedPhantoon" }, "canRiskPermanentLossOfAccess" ] } ] } Exit condition: { "leaveWithSidePlatform": { "height": 3, "runway": { "length": 4, "openEnd": 0 }, "obstruction": [ 1, 0 ] } } |
Requires: "Gravity" Exit condition: { "leaveWithSidePlatform": { "height": 3, "runway": { "length": 12, "openEnd": 0, "steepDownTiles": 1, "gentleUpTiles": 1, "gentleDownTiles": 1, "startingDownTiles": 1 }, "obstruction": [ 1, 0 ] } } |
Entrance condition: { "comeInWithSidePlatform": { "platforms": [ { "minHeight": 2, "maxHeight": 2, "minTiles": 27.4375, "speedBooster": true, "obstructions": [ [ 1, 0 ] ], "requires": [ "canMomentumConservingTurnaround" ], "note": [ "This applies to Dust Torizo Room." ], "devNote": [ "The jump could also be done with a shorter runway, with a tricky dash jump using run speed $4.0 or $4.1.", "But it wouldn't apply to any more rooms in the game." ] }, { "minHeight": 3, "maxHeight": 3, "minTiles": 39.4375, "speedBooster": true, "obstructions": [ [ 3, 2 ] ], "requires": [ "canTrickyJump" ], "note": [ "This applies to Metal Pirates Room." ] }, { "minHeight": 2, "maxHeight": 2, "minTiles": 45, "speedBooster": true, "obstructions": [ [ 3, 0 ] ], "requires": [ "canInsaneJump", { "or": [ "canMomentumConservingMorph", { "and": [ "canMomentumConservingTurnaround", "canBeVeryPatient" ] } ] } ], "note": [ "This applies to Statues Hallway.", "This can be done in two ways:", "1) If Morph is available, perform a momentum-conserving morph through the transition,", "then unmorph as soon as possible after the transition.", "2) Alternatively, do an extremely precise momentum-conserving turnaround through the transition." ], "devNote": [ "The momentum-conserving turnaround is double frame-perfect,", "requiring a last-frame jump and frame-perfect turnaround just before Samus would bonk the ceiling." ] }, { "minHeight": 3, "maxHeight": 3, "minTiles": 39.4375, "speedBooster": true, "obstructions": [ [ 3, 0 ] ], "requires": [ "canMomentumConservingMorph" ], "note": [ "This applies to Flyway." ] }, { "minHeight": 2, "maxHeight": 2, "minTiles": 45, "speedBooster": true, "obstructions": [ [ 4, 0 ] ], "requires": [ "canMomentumConservingMorph", "canInsaneJump", "canInsaneMidAirMorph" ], "note": [ "This applies to Baby Kraid Room.", "In the previous room, there is a 2-frame window for the jump, just before Samus would hit the door ledge,", "then a 1-frame or 2-frame window (depending on the jump) for the morph, just before Samus would bonk the ceiling.", "After the transition, unmorph within the first 2 frames, to conserve upward momentum;", "if Samus got the later frame for the morph (where the animation does not show as fully morphed in the previous room),", "then there will only be 1 frame to unmorph." ] } ] } } Requires: "canCrossRoomJumpIntoWater" Exit condition: { "leaveNormally": {} } Unlocks doors: {"types":["super"],"requires":[]} {"types":["missiles","powerbomb"],"requires":["never"]} |
From: 1
Bottom Left Door
To: 5
Platform Junction Near Top Left Door
Entrance condition: { "comeInWithSidePlatform": { "platforms": [ { "minHeight": 1, "maxHeight": 1, "minTiles": 8.4375, "speedBooster": true, "obstructions": [ [ 1, 0 ] ], "requires": [ "HiJump", "canMomentumConservingTurnaround" ], "note": [ "This applies to Warehouse Entrance." ] }, { "minHeight": 2, "maxHeight": 2, "minTiles": 8, "speedBooster": true, "obstructions": [ [ 1, 0 ] ], "requires": [ "HiJump", "canMomentumConservingTurnaround" ], "note": [ "This applies to Ridley Tank Room and Dust Torizo Room." ] }, { "minHeight": 3, "maxHeight": 3, "minTiles": 9, "speedBooster": true, "obstructions": [ [ 1, 0 ] ], "requires": [ "HiJump", "canMomentumConservingTurnaround" ], "note": [ "This applies to Big Boy Room and Mickey Mouse Room." ] }, { "minHeight": 2, "maxHeight": 2, "minTiles": 27.4375, "speedBooster": true, "obstructions": [ [ 1, 0 ] ], "requires": [ "canMomentumConservingTurnaround" ], "note": [ "This applies to Dust Torizo Room." ], "devNote": [ "The jump could also be done with a shorter runway, with a tricky dash jump using run speed $4.0 or $4.1.", "But it wouldn't apply to any more rooms in the game." ] }, { "minHeight": 3, "maxHeight": 3, "minTiles": 39.4375, "speedBooster": true, "obstructions": [ [ 3, 2 ] ], "requires": [ "canTrickyJump" ], "note": [ "This applies to Metal Pirates Room." ] }, { "minHeight": 2, "maxHeight": 2, "minTiles": 23, "speedBooster": true, "obstructions": [ [ 3, 0 ] ], "requires": [ "HiJump", "canMomentumConservingMorph", "canInsaneJump", "canInsaneMidAirMorph" ], "note": [ "This applies to Metroid Room 1.", "In the previous room, perform a last-frame jump,", "then morph on the last possible frame before bonking the ceiling.", "After the transition, unmorph within the first 2 frames, to conserve upward momentum." ] }, { "minHeight": 2, "maxHeight": 2, "minTiles": 45, "speedBooster": true, "obstructions": [ [ 3, 0 ] ], "requires": [ "canInsaneJump", { "or": [ "canMomentumConservingMorph", { "and": [ "canMomentumConservingTurnaround", "canBeVeryPatient" ] } ] } ], "note": [ "This applies to Statues Hallway.", "This can be done in two ways:", "1) If Morph is available, perform a momentum-conserving morph through the transition,", "then unmorph as soon as possible after the transition.", "2) Alternatively, do an extremely precise momentum-conserving turnaround through the transition." ], "devNote": [ "The momentum-conserving turnaround is double frame-perfect,", "requiring a last-frame jump and frame-perfect turnaround just before Samus would bonk the ceiling." ] }, { "minHeight": 3, "maxHeight": 3, "minTiles": 39.4375, "speedBooster": true, "obstructions": [ [ 3, 0 ] ], "requires": [ "canMomentumConservingMorph" ], "note": [ "This applies to Flyway." ] }, { "minHeight": 2, "maxHeight": 2, "minTiles": 45, "speedBooster": true, "obstructions": [ [ 4, 0 ] ], "requires": [ "canMomentumConservingMorph", "canInsaneJump", "canInsaneMidAirMorph" ], "note": [ "This applies to Baby Kraid Room.", "In the previous room, there is a 2-frame window for the jump, just before Samus would hit the door ledge,", "then a 1-frame or 2-frame window (depending on the jump) for the morph, just before Samus would bonk the ceiling.", "After the transition, unmorph within the first 2 frames, to conserve upward momentum;", "if Samus got the later frame for the morph (where the animation does not show as fully morphed in the previous room),", "then there will only be 1 frame to unmorph." ] } ] } } Requires: "canCrossRoomJumpIntoWater" |
Requires: "Gravity" "SpeedBooster" "canInsaneJump" "canMomentumConservingMorph" "canInsaneMidAirMorph" Exit condition: { "leaveWithSidePlatform": { "height": 3, "runway": { "length": 17, "openEnd": 0, "steepDownTiles": 2, "startingDownTiles": 1 }, "obstruction": [ 4, 0 ] } } |
Requires: "Gravity" Exit condition: { "leaveWithSidePlatform": { "height": 4, "runway": { "length": 12, "openEnd": 0 }, "obstruction": [ 1, 0 ] } } |
Requires: { "obstaclesCleared": [ "A" ] } "Gravity" "canInsaneJump" { "or": [ "canMomentumConservingMorph", "canMomentumConservingTurnaround" ] } Exit condition: { "leaveWithSidePlatform": { "height": 1, "runway": { "length": 23, "openEnd": 1, "gentleDownTiles": 2, "gentleUpTiles": 2, "steepUpTiles": 1 }, "obstruction": [ 3, 0 ] } } |
Requires: { "obstaclesCleared": [ "A" ] } "Gravity" "SpeedBooster" "canInsaneJump" { "or": [ { "and": [ "canMomentumConservingMorph", "canInsaneMidAirMorph" ] }, "canMomentumConservingTurnaround" ] } Exit condition: { "leaveWithSidePlatform": { "height": 1, "runway": { "length": 36, "openEnd": 1, "gentleUpTiles": 2 }, "obstruction": [ 3, 0 ] } } |
From: 1
Left Door
To: 1
Left Door
Requires: "Gravity" Exit condition: { "leaveWithSidePlatform": { "height": 3, "runway": { "length": 13, "openEnd": 0 }, "obstruction": [ 1, 0 ] } } |
From: 1
Left Door
To: 1
Left Door
Requires: "Gravity" { "or": [ "f_DefeatedBotwoon", { "obstaclesCleared": [ "f_DefeatedBotwoon" ] } ] } Exit condition: { "leaveWithSidePlatform": { "height": 3, "runway": { "length": 16, "openEnd": 0 }, "obstruction": [ 1, 0 ] } } |
Requires: "Gravity" "canInsaneJump" "canMomentumConservingMorph" Exit condition: { "leaveWithSidePlatform": { "height": 3, "runway": { "length": 22, "openEnd": 0 }, "obstruction": [ 3, 0 ] } } |
Gain run speed using a platform below the door in the other room. Jump through the door, carrying upward momentum into this room. Entrance condition: { "comeInWithSidePlatform": { "platforms": [ { "minHeight": 1, "maxHeight": 1, "minTiles": 7.4375, "speedBooster": false, "obstructions": [ [ 1, 0 ] ], "requires": [ "canInsaneJump" ], "note": [ "This applies to Warehouse Entrance.", "This requires a last-frame jump and specific horizontal alignment in order to make it past the overhang in the next room.", "A way to get a correct starting position is to jump, press against the ceiling overhang near the end of the runway,", "land, turn around away from the door, then jump and mid-air turnaround toward the door." ] } ] } } Requires: "canCrossRoomJumpIntoWater" Clears obstacles: door_1 |
From: 1
Top Left Door
To: 4
Top Right Door
Entrance condition: { "comeInWithSidePlatform": { "platforms": [ { "minHeight": 1, "maxHeight": 1, "minTiles": 13, "speedBooster": true, "obstructions": [ [ 1, 0 ] ], "requires": [ "HiJump", "canMomentumConservingTurnaround" ], "note": [ "This applies to Warehouse Entrance.", "With Hi-Jump equipped, gain extra run speed of at least $3.1, jump, and aim-down before the transition.", "Then hold down and backward through the transition." ] }, { "minHeight": 2, "maxHeight": 2, "minTiles": 27.4375, "speedBooster": true, "obstructions": [ [ 1, 0 ] ], "requires": [ "canDownGrab", "canTrickyJump" ], "note": [ "This applies to Dust Torizo Room.", "Use the full runway, with a last-frame jump (extra run speed $5.0), and a down-grab." ], "devNote": [ "The jump could also be done with a shorter runway, with a tricky dash jump using run speed $4.0 or $4.1." ] }, { "minHeight": 3, "maxHeight": 3, "minTiles": 39.4375, "speedBooster": true, "obstructions": [ [ 3, 2 ] ], "note": [ "This applies to Metal Pirates Room.", "Use the full runway, though there is no need to back into the corner;", "jump on one of the last three possible frames (extra run speed between $6.6 and $6.8)" ] }, { "minHeight": 2, "maxHeight": 2, "minTiles": 45, "speedBooster": true, "obstructions": [ [ 3, 0 ] ], "requires": [ "canInsaneJump", { "or": [ "canMomentumConservingMorph", { "and": [ "canMomentumConservingTurnaround", "canBeVeryPatient" ] } ] } ], "note": [ "This applies to Statues Hallway." ], "devNote": [ "Using the full runway and single-pixel arm pump, with a momentum-conserving morph", "this has a 4-frame window for the jump, and a 2-frame to 4-frame window for the morph (with later jumps giving a larger window for the morph).", "With a momentum-conserving turnaround, it requires a last-frame jump and last-frame turnaround.", "The arm pump doesn't really help with the turnaround.", "There are 2 frames for the turnaround that allow Samus to make it past the overhang in the next room,", "but only the last frame provides the horizontal momentum needed to reach the ledge." ] }, { "minHeight": 3, "maxHeight": 3, "minTiles": 39.4375, "speedBooster": true, "obstructions": [ [ 3, 0 ] ], "requires": [ "canMomentumConservingMorph", "canInsaneJump" ], "note": [ "This applies to Flyway.", "Avoid backing into the corner of runway (instead press into it and turn around).", "Using the full runway, this has a 2-frame window for the jump,", "and either a 1-frame window or 2-frame window for the morph, depending on the jump timing (last-frame jump being better)." ], "devNote": [ "This involves getting extra dash speed $6.0 or $6.1." ] }, { "minHeight": 2, "maxHeight": 2, "minTiles": 45, "speedBooster": true, "obstructions": [ [ 4, 0 ] ], "requires": [ "canMomentumConservingMorph", "canInsaneJump", "canInsaneMidAirMorph" ], "note": [ "This applies to Baby Kraid Room.", "Using the full runway, this is double frame perfect:", "it requires jumping on the last possible frame before Samus would bonk on the doorway ledge,", "and morphing on the last possible frame before Samus would bonk the ceiling." ] } ] } } Requires: "canCrossRoomJumpIntoWater" |
From: 2
Bottom Left Door
To: 4
Top Right Door
Gain run speed using a platform below the door in the other room. Jump through the door, carrying upward momentum into this room; if necessary, use a momentum-conserving morph or momentum-conserving turnaround through the transition. Entrance condition: { "comeInWithSidePlatform": { "platforms": [ { "minHeight": 2, "maxHeight": 2, "minTiles": 27.4375, "speedBooster": true, "obstructions": [ [ 1, 0 ] ], "requires": [], "note": [ "This applies to Dust Torizo Room." ] }, { "minHeight": 3, "maxHeight": 3, "minTiles": 39.4375, "speedBooster": true, "obstructions": [ [ 3, 2 ] ], "requires": [ "canTrickyDashJump", "canMomentumConservingTurnaround" ], "note": [ "This applies to Metal Pirates Room." ], "devNote": [ "FIXME: canTrickyDashJump is for difficulty placement; it doesn't really have anything to do with the non-linearity of Speed Booster jump height." ] }, { "minHeight": 2, "maxHeight": 2, "minTiles": 45, "speedBooster": true, "obstructions": [ [ 3, 0 ] ], "requires": [ "canMomentumConservingMorph", "caneInsaneJump" ], "note": [ "This applies to Statues Hallway.", "Using the full runway (backing into the corner, with or without a single-pixel arm jump),", "this has a 3-frame window for the jump, and a 3-frame window for the morph." ] }, { "minHeight": 3, "maxHeight": 3, "minTiles": 39.4375, "speedBooster": true, "obstructions": [ [ 3, 0 ] ], "requires": [ "canMomentumConservingMorph", "canInsaneJump" ], "note": [ "This applies to Flyway.", "Using the full runway, this has a 2-frame window for the jump,", "and either a 1-frame window or 2-frame window for the morph, depending on the jump timing (last-frame jump being better)." ] } ] } } Requires: "HiJump" "canCrossRoomJumpIntoWater" |
From: 2
Bottom Left Door
To: 4
Top Right Door
Entrance condition: { "comeInWithSidePlatform": { "platforms": [ { "minHeight": 2, "maxHeight": 2, "minTiles": 27.4375, "speedBooster": true, "obstructions": [ [ 1, 0 ] ], "requires": [], "note": [ "This applies to Dust Torizo Room." ] }, { "minHeight": 3, "maxHeight": 3, "minTiles": 39.4375, "speedBooster": true, "obstructions": [ [ 3, 2 ] ], "note": [ "This applies to Metal Pirates Room." ] }, { "minHeight": 2, "maxHeight": 2, "minTiles": 45, "speedBooster": true, "obstructions": [ [ 3, 0 ] ], "requires": [ "canMomentumConservingMorph", "canInsaneJump" ], "note": [ "This applies to Statues Hallway.", "Using the full runway with a single-pixel arm pump, this has a 4-frame window for the jump,", "and between a 2-frame and 4-frame window for the morph (with later jumps giving a larger window)." ] }, { "minHeight": 3, "maxHeight": 3, "minTiles": 39.4375, "speedBooster": true, "obstructions": [ [ 3, 0 ] ], "requires": [ "canMomentumConservingMorph", "canInsaneJump" ], "note": [ "This applies to Flyway.", "Using the full runway, this has a 2-frame window for the jump,", "and either a 1-frame window and 2-frame window for the morph, depending on the jump timing (last-frame jump being better)." ] }, { "minHeight": 2, "maxHeight": 2, "minTiles": 45, "speedBooster": true, "obstructions": [ [ 4, 0 ] ], "requires": [ "canMomentumConservingMorph", "canInsaneJump", "canInsaneMidAirMorph" ], "note": [ "This applies to Baby Kraid Room.", "Using the full runway, this is double frame perfect:", "it requires jumping on the last possible frame before Samus would bonk on the doorway ledge,", "and morphing on the last possible frame before Samus would bonk the ceiling." ] } ] } } Requires: "canSpringBallJumpMidAir" "canCrossRoomJumpIntoWater" |
From: 3
Bottom Right Door
To: 3
Bottom Right Door
Requires: "Gravity" Exit condition: { "leaveWithSidePlatform": { "height": 2, "runway": { "length": 13, "openEnd": 0 }, "obstruction": [ 1, 0 ] } } |
From: 2
Bottom Left Door
To: 1
Top Left Door
Gain run speed using a platform below the door in the other room. Jump through the door, carrying upward momentum into this room; if necessary, use a momentum-conserving morph or momentum-conserving turnaround through the transition. Entrance condition: { "comeInWithSidePlatform": { "platforms": [ { "minHeight": 2, "maxHeight": 2, "minTiles": 27.4375, "speedBooster": true, "obstructions": [ [ 1, 0 ] ], "note": [ "This applies to Dust Torizo Room" ] }, { "minHeight": 3, "maxHeight": 3, "minTiles": 39.4375, "speedBooster": true, "obstructions": [ [ 3, 2 ] ], "note": [ "This applies to Metal Pirates Room" ] }, { "minHeight": 2, "maxHeight": 2, "minTiles": 20.4375, "speedBooster": true, "obstructions": [ [ 3, 0 ] ], "requires": [ "canTrickyDashJump", "canMomentumConservingMorph" ], "note": [ "This applies to Metroid Room 1 and Statues Hallway.", "Jump with an extra run speed of $4.0 or $4.1." ] }, { "minHeight": 2, "maxHeight": 2, "minTiles": 45, "speedBooster": true, "obstructions": [ [ 3, 0 ] ], "requires": [ { "or": [ "canMomentumConservingMorph", { "and": [ "canInsaneJump", "canMomentumConservingTurnaround" ] } ] } ], "note": [ "This applies to Statues Hallway." ] }, { "minHeight": 3, "maxHeight": 3, "minTiles": 39.4375, "speedBooster": true, "obstructions": [ [ 3, 0 ] ], "requires": [ "canMomentumConservingMorph" ], "note": [ "This applies to Flyway." ] }, { "minHeight": 2, "maxHeight": 2, "minTiles": 45, "speedBooster": true, "obstructions": [ [ 4, 0 ] ], "requires": [ "canMomentumConservingMorph" ], "note": [ "This applies to Baby Kraid Room." ] } ] } } Requires: "canCrossRoomJumpIntoWater" |
From: 2
Bottom Left Door
To: 1
Top Left Door
Entrance condition: { "comeInWithSidePlatform": { "platforms": [ { "minHeight": 1, "maxHeight": 1, "minTiles": 7.4375, "speedBooster": true, "obstructions": [ [ 1, 0 ] ], "requires": [ "canTrickyDashJump" ], "note": [ "This applies to Warehouse Entrance.", "Jump with an extra run speed of $2.0 or $2.1." ] } ] } } Requires: "canCrossRoomJumpIntoWater" "canSpringBallJumpMidAir" |
From: 1
Bottom Left Door
To: 2
Top Right Door
Entrance condition: { "comeInWithSidePlatform": { "platforms": [ { "minHeight": 1, "maxHeight": 1, "minTiles": 2.4375, "speedBooster": false, "obstructions": [ [ 1, 0 ] ], "note": [ "This applies to Seaweed Room, Skree Boost Room, Grapple Tutorial Room 2, Warehouse Energy Tank Room, and Warehouse Entrance." ], "devNote": [ "With Speed Booster and a Spring Ball jump, this can also work with shorter runways, as in Ice Beam Snake Room and Grapple Beam Room,", "but it wouldn't be very useful, because with those items there are alternative strats using the doorway runway." ] }, { "minHeight": 2, "maxHeight": 2, "minTiles": 4, "speedBooster": false, "obstructions": [ [ 1, 0 ] ], "note": [ "This applies to Ridley Tank Room and Dust Torizo Room." ] }, { "minHeight": 3, "maxHeight": 3, "minTiles": 7.4375, "speedBooster": false, "obstructions": [ [ 1, 0 ] ], "requires": [ "HiJump" ], "note": [ "This applies to Big Boy Room and Mickey Mouse Room." ], "devNote": [ "With a momentum-conserving turnaround, this could be done with shorter runway,", "but there aren't rooms in the game that it would apply to." ] }, { "minHeight": 3, "maxHeight": 3, "minTiles": 7.4375, "speedBooster": false, "obstructions": [ [ 3, 2 ] ], "requires": [ "HiJump", "canMomentumConservingMorph" ], "note": [ "This applies to Metal Pirates Room." ], "devNote": [ "FIXME: assuming the other room is heated based on its geometry is awkward;", "consider setting up a more proper way of representing it." ] } ] } } Requires: "canCrossRoomJumpIntoWater" |
Requires: "Gravity" { "or": [ { "ammo": { "type": "Super", "count": 1 } }, "canTrickyDodgeEnemies" ] } Exit condition: { "leaveWithSidePlatform": { "height": 3, "runway": { "length": 2, "openEnd": 1 }, "obstruction": [ 1, 0 ] } } |
Requires: "Gravity" { "or": [ { "ammo": { "type": "Super", "count": 1 } }, "canTrickyDodgeEnemies" ] } Exit condition: { "leaveWithSidePlatform": { "height": 3, "runway": { "length": 2, "openEnd": 1 }, "obstruction": [ 1, 0 ] } } |
Requires: "Gravity" Exit condition: { "leaveWithSidePlatform": { "height": 2, "runway": { "length": 4, "openEnd": 1 }, "obstruction": [ 1, 0 ] } } |
Requires: "Gravity" Exit condition: { "leaveWithSidePlatform": { "height": 2, "runway": { "length": 4, "openEnd": 1 }, "obstruction": [ 1, 0 ] } } |
Exit condition: { "leaveWithSidePlatform": { "height": 1, "runway": { "length": 1, "openEnd": 1 }, "obstruction": [ 1, 0 ] } } |
Use Screw Attack to break the bomb block by entering from a non-water room with a spin jump. It generally helps to enter as low as possible and with as much horizontal speed as possible, and with HiJump turned off except if jumping from a very low platform. Even if executed correctly, in most cases the trick can fail with 50% probability due to collision oscillation. Entrance condition: { "comeInWithSidePlatform": { "platforms": [ { "minHeight": 1, "maxHeight": 2, "minTiles": 13.4375, "speedBooster": true, "obstructions": [ [ 1, 0 ] ], "requires": [ "canTrickyDashJump" ], "note": [ "Applies to Warehouse Entrance and Dust Torizo Room.", "Gain extra run speed between $3.2 and $3.5, at a position where Samus just barely clears the obstruction." ], "devNote": [ "It is technically also possible from Ridley Tank Room, using exact run speed $1.8 and subpixels in a narrow range.", "But without a normalized setup it doesn't seem reasonable." ] }, { "minHeight": 3, "maxHeight": 3, "minTiles": 8.4375, "speedBooster": "any", "obstructions": [ [ 1, 0 ], [ 3, 2 ] ], "note": [ "Applies to Big Boy Room, Mickey Mouse Room, and Metal Pirates." ] }, { "minHeight": 6, "maxHeight": 6, "minTiles": 2.5625, "speedBooster": true, "obstructions": [ [ 5, 6 ] ], "requires": [ "canTrickyDashJump" ], "note": [ "Applies to Fast Pillars Setup Room.", "Gain extra run speed exactly $1.1." ] }, { "minHeight": 8, "maxHeight": 8, "minTiles": 6, "speedBooster": false, "obstructions": [ [ 1, 0 ] ], "requires": [ "HiJump" ], "note": [ "Applies to Screw Attack Room.", "With extra run speed exactly $1.E, it works without collision oscillation.", "Extra run speed $1.D also works, but with collision oscillation giving a 50% failure rate, as with most other setups." ] } ] } } Requires: { "notable": "Cross Room Jump with Screw Attack" } "ScrewAttack" "canCrossRoomJumpIntoWater" "canTrickyJump" Clears obstacles: A |
Use Screw Attack to break the bomb block by entering from a non-water room with a spin jump. It generally helps to enter as low as possible and with as much horizontal speed as possible, and with HiJump turned off. Even if executed correctly, the trick can fail with 50% probability due to collision oscillation. Entrance condition: { "comeInWithSidePlatform": { "platforms": [ { "minHeight": 1, "maxHeight": 1, "minTiles": 13.4375, "speedBooster": true, "obstructions": [ [ 1, 0 ] ], "requires": [ "canTrickyDashJump" ], "note": [ "Applies to Lava Dive.", "Gain extra run speed of $3.5, at a position where Samus just barely clears the obstruction:", "Starting at a horizontal position of $110 (272) or $111 (273) works at any subpixels;", "parts of the neighboring pixels on either side also work." ], "devNote": [ "Run speed $3.2 works, at a pixel position of $F7 (247) with any subpixel, or on parts of the neighboring pixel on either side;", "run speed $3.8 is possible but does not have an entire pixel that works." ] }, { "minHeight": 2, "maxHeight": 2, "minTiles": 5.4375, "speedBooster": true, "obstructions": [ [ 1, 0 ] ], "note": [ "Applies to Early Super Room, Bowling Alley (Bottom), Blue Hopper Room, Dust Torizo Room, and Noob Bridge." ] }, { "minHeight": 2, "maxHeight": 2, "minTiles": 8.4375, "speedBooster": "any", "obstructions": [ [ 1, 0 ] ], "requires": [ "canInsaneJump" ], "note": [ "Applies to Bowling Alley (Bottom), Blue Hopper Room, Dust Torizo Room, and Noob Bridge.", "Without Speed Booster, this requires specific positioning to align Samus to just barely clear the door ledge." ] }, { "minHeight": 3, "maxHeight": 3, "minTiles": 8.4375, "speedBooster": "any", "obstructions": [ [ 1, 0 ] ], "note": [ "Applies to Bomb Torizo Room, Pink Brinstar Hopper Room, Phantoon's Room, Big Boy Room, Double Chamber." ] }, { "minHeight": 3, "maxHeight": 3, "minTiles": 5, "speedBooster": true, "obstructions": [ [ 1, 0 ], [ 3, 2 ] ], "note": [ "Applies to Bomb Torizo Room, Pink Brinstar Hopper Room, Phantoon's Room, Big Boy Room, Double Chamber, and Metal Pirates Room.", "With extra run speed exactly $1.2, this works without collision oscillation.", "Extra run speed up through $1.8 also work but with collision oscillation giving a 50% failure rate, as with most other setups." ] }, { "minHeight": 4, "maxHeight": 4, "minTiles": 4.5625, "speedBooster": true, "obstructions": [ [ 5, 4 ] ], "note": [ "Applies to Tourian Escape Room 4." ] } ] } } Requires: { "notable": "Cross Room Jump with Screw Attack" } "ScrewAttack" "canCrossRoomJumpIntoWater" "canTrickyJump" Clears obstacles: A |
Requires: "Gravity" Exit condition: { "leaveWithSidePlatform": { "height": 2, "runway": { "length": 10, "openEnd": 0 }, "obstruction": [ 1, 0 ] } } |
Requires: "Gravity" Exit condition: { "leaveWithSidePlatform": { "height": 2, "runway": { "length": 8, "openEnd": 0 }, "obstruction": [ 1, 0 ] } } |
Requires: { "obstaclesCleared": [ "A" ] } Exit condition: { "leaveWithSidePlatform": { "height": 3, "runway": { "length": 15, "openEnd": 0 }, "obstruction": [ 1, 0 ] } } |
Exit condition: { "leaveWithSidePlatform": { "height": 3, "runway": { "length": 11, "openEnd": 0 }, "obstruction": [ 1, 0 ] } } |
From: 2
Left Door
To: 2
Left Door
Requires: { "or": [ { "obstaclesCleared": [ "A" ] }, { "and": [ { "enemyDamage": { "enemy": "Blue Sidehopper", "type": "contact", "hits": 2 } }, "canUseIFrames" ] } ] } Exit condition: { "leaveWithSidePlatform": { "height": 2, "runway": { "length": 12, "openEnd": 0 }, "obstruction": [ 1, 0 ] } } Unlocks doors: {"types":["super"],"requires":[]} {"types":["missiles","powerbomb"],"requires":["never"]} |
From: 2
Left Door
To: 2
Left Door
Requires: { "enemyDamage": { "enemy": "Blue Sidehopper", "type": "contact", "hits": 1 } } "canUseIFrames" "canTrickyDodgeEnemies" Exit condition: { "leaveWithSidePlatform": { "height": 2, "runway": { "length": 10, "openEnd": 0 }, "obstruction": [ 1, 0 ] } } Unlocks doors: {"types":["super"],"requires":[]} {"types":["missiles","powerbomb"],"requires":["never"]} |
Exit condition: { "leaveWithSidePlatform": { "height": 2, "runway": { "length": 28, "openEnd": 0 }, "obstruction": [ 1, 0 ] } } |
Exit condition: { "leaveWithSidePlatform": { "height": 2, "runway": { "length": 28, "openEnd": 0 }, "obstruction": [ 1, 0 ] } } |
Requires: "SpeedBooster" { "or": [ "canMetroidAvoid", "Ice", { "or": [ "f_KilledMetroidRoom1", { "obstaclesCleared": [ "f_KilledMetroidRoom1" ] } ] } ] } { "or": [ "canMomentumConservingMorph", { "and": [ "canMomentumConservingTurnaround", "canInsaneJump" ] } ] } Exit condition: { "leaveWithSidePlatform": { "height": 2, "runway": { "length": 31, "openEnd": 1 }, "obstruction": [ 3, 0 ] } } |
Requires: "SpeedBooster" { "or": [ "canMetroidAvoid", { "or": [ "f_KilledMetroidRoom1", { "obstaclesCleared": [ "f_KilledMetroidRoom1" ] } ] } ] } { "or": [ "canMomentumConservingMorph", { "and": [ "canMomentumConservingTurnaround", "canInsaneJump" ] } ] } Exit condition: { "leaveWithSidePlatform": { "height": 2, "runway": { "length": 23, "openEnd": 1 }, "obstruction": [ 3, 0 ] } } |
Requires: "SpeedBooster" { "or": [ "canMetroidAvoid", { "or": [ "f_KilledMetroidRoom2", { "obstaclesCleared": [ "f_KilledMetroidRoom2" ] } ] } ] } "canInsaneJump" "canMomentumConservingMorph" Exit condition: { "leaveWithSidePlatform": { "height": 3, "runway": { "length": 11, "openEnd": 0 }, "obstruction": [ 3, 0 ] } } |
From: 1
Left Blast Door
To: 1
Left Blast Door
Exit condition: { "leaveWithSidePlatform": { "height": 3, "runway": { "length": 3, "openEnd": 0 }, "obstruction": [ 1, 0 ] } } |
Requires: "canMomentumConservingMorph" "canInsaneJump" Exit condition: { "leaveWithSidePlatform": { "height": 2, "runway": { "length": 2, "openEnd": 2 }, "obstruction": [ 2, 2 ] } } |
Exit condition: { "leaveWithSidePlatform": { "height": 1, "runway": { "length": 3, "openEnd": 0 }, "obstruction": [ 1, 0 ] } } |
Exit condition: { "leaveWithSidePlatform": { "height": 3, "runway": { "length": 4, "openEnd": 0 }, "obstruction": [ 1, 0 ] } } |
Exit condition: { "leaveWithSidePlatform": { "height": 4, "runway": { "length": 4, "openEnd": 2 }, "obstruction": [ 5, 4 ] } } |