Room ID: 101
Exit condition: { "leaveWithRunway": { "length": 7, "openEnd": 1 } } |
Requires: "h_heatProof" { "or": [ "ScrewAttack", "Ice", "Spazer", "Wave", "Plasma" ] } { "refill": [ "Energy", "Missile", "Super" ] } |
Requires: "h_canHeatedCrystalFlash" |
Requires: { "obstaclesNotCleared": [ "A" ] } { "heatFrames": 650 } Clears obstacles: A |
Requires: { "obstaclesNotCleared": [ "A" ] } { "heatFrames": 630 } Exit condition: { "leaveWithRunway": { "length": 8, "openEnd": 1 } } Clears obstacles: A |
Requires: { "obstaclesCleared": [ "A" ] } "h_heatProof" |
Requires: { "obstaclesNotCleared": [ "A" ] } "SpeedBooster" { "heatFrames": 360 } Clears obstacles: A |
Requires: { "obstaclesNotCleared": [ "A" ] } { "canShineCharge": { "usedTiles": 33, "openEnd": 2 } } { "heatFrames": 360 } Exit condition: { "leaveShinecharged": { "framesRemaining": 145 } } Clears obstacles: A |
Shoot from the middle of the second set of crumble blocks from the left. Requires: { "obstaclesNotCleared": [ "A" ] } "SpeedBooster" "canHeroShot" { "heatFrames": 290 } Exit condition: { "leaveWithRunway": { "length": 45, "openEnd": 1 } } Clears obstacles: A |
Entrance condition: { "comeInWithStoredFallSpeed": { "fallSpeedInTiles": 1 } } Requires: { "or": [ { "heatFrames": 650 }, { "and": [ "SpeedBooster", { "heatFrames": 360 } ] } ] } Exit condition: { "leaveWithStoredFallSpeed": { "fallSpeedInTiles": 1 } } |
From: 1
Left Door
To: 2
Right Door
Entrance condition: { "comeInWithStoredFallSpeed": { "fallSpeedInTiles": 2 } } Requires: { "or": [ { "heatFrames": 650 }, { "and": [ "SpeedBooster", { "heatFrames": 360 } ] } ] } Exit condition: { "leaveWithStoredFallSpeed": { "fallSpeedInTiles": 2 } } |
Requires: { "obstaclesNotCleared": [ "A" ] } { "heatFrames": 650 } Clears obstacles: A |
Requires: { "obstaclesCleared": [ "A" ] } { "or": [ "h_heatProof", { "and": [ { "heatFrames": 690 }, { "or": [ { "ammo": { "type": "Super", "count": 3 } }, { "ammo": { "type": "Missile", "count": 6 } }, "ScrewAttack", "Plasma", "Spazer", "Wave" ] } ] } ] } { "or": [ { "and": [ "canCarefulJump", { "heatFrames": 420 } ] }, { "and": [ { "heatFrames": 720 }, { "lavaFrames": 60 } ] } ] } |
Requires: { "obstaclesNotCleared": [ "A" ] } { "heatFrames": 630 } Exit condition: { "leaveWithRunway": { "length": 8, "openEnd": 1 } } Clears obstacles: A |
Requires: { "obstaclesNotCleared": [ "A" ] } "SpeedBooster" { "heatFrames": 360 } Clears obstacles: A |
Requires: { "obstaclesNotCleared": [ "A" ] } { "canShineCharge": { "usedTiles": 33, "openEnd": 2 } } { "heatFrames": 360 } Exit condition: { "leaveShinecharged": { "framesRemaining": 145 } } Clears obstacles: A |
Shoot while climbing the highest ramp for the shot to open the door. Requires: { "obstaclesNotCleared": [ "A" ] } "SpeedBooster" "canHeroShot" { "heatFrames": 290 } Exit condition: { "leaveWithRunway": { "length": 45, "openEnd": 1 } } Clears obstacles: A |
Align with the right side of a wall or door then turn around and shinespark in order to avoid colliding with a slope. Requires: { "obstaclesCleared": [ "A" ] } "canShinechargeMovementComplex" "canHorizontalShinespark" { "canShineCharge": { "usedTiles": 33, "openEnd": 2 } } { "heatFrames": 335 } { "shinespark": { "frames": 221 } } |
Entrance condition: { "comeInWithGrappleTeleport": { "blockPositions": [ [ 5, 3 ], [ 7, 2 ] ] } } Requires: { "heatFrames": 45 } |
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 |
Exit the previous room with Samus in a standing pose (while grappled). After teleporting, press right to release Grapple while staying standing (not being forced into a crouch). Then X-ray climb to get up to the door transition, without needing to open the door. Entrance condition: { "comeInWithGrappleTeleport": { "blockPositions": [ [ 2, 18 ], [ 2, 19 ], [ 2, 28 ], [ 2, 29 ] ] } } Requires: "canXRayClimb" { "heatFrames": 1600 } { "lavaFrames": 1600 } Bypasses door shell: true |
Entrance condition: { "comeInWithStoredFallSpeed": { "fallSpeedInTiles": 1 } } Requires: { "or": [ { "heatFrames": 650 }, { "and": [ "SpeedBooster", { "heatFrames": 360 } ] } ] } Exit condition: { "leaveWithStoredFallSpeed": { "fallSpeedInTiles": 1 } } |
From: 2
Right Door
To: 1
Left Door
Entrance condition: { "comeInWithStoredFallSpeed": { "fallSpeedInTiles": 2 } } Requires: { "or": [ { "heatFrames": 650 }, { "and": [ "SpeedBooster", { "heatFrames": 360 } ] } ] } Exit condition: { "leaveWithStoredFallSpeed": { "fallSpeedInTiles": 2 } } |
Exit condition: { "leaveWithRunway": { "length": 8, "openEnd": 1 } } |
Requires: { "heatFrames": 25 } |
Requires: { "heatFrames": 25 } |
{ "$schema": "../../../schema/m3-room.schema.json", "id": 101, "name": "Speed Booster Hall", "area": "Norfair", "subarea": "Upper", "subsubarea": "East", "playable": true, "roomAddress": "0x7ACF0", "roomEnvironments": [ { "heated": true } ], "nodes": [ { "id": 1, "name": "Left Door", "nodeType": "door", "nodeSubType": "blue", "nodeAddress": "0x00195a6", "doorEnvironments": [ { "physics": "air" } ] }, { "id": 2, "name": "Right Door", "nodeType": "door", "nodeSubType": "red", "nodeAddress": "0x00195b2", "doorEnvironments": [ { "physics": "air", "note": "This can be lava when entering from node 2, but it's still possible to have air physics" } ], "locks": [ { "name": "Speed Booster Hall Red Lock (to Speed Booster)", "lockType": "coloredDoor", "unlockStrats": [ { "name": "Base", "notable": false, "requires": [ "h_canOpenRedDoors" ] } ] } ] }, { "id": 3, "name": "Hidden Item", "nodeType": "item", "nodeSubType": "hidden", "nodeItem": "Missile", "nodeAddress": "0x78C74" } ], "obstacles": [ { "id": "A", "name": "Crumble Blocks Broken", "obstacleType": "inanimate" } ], "enemies": [ { "id": "e1", "groupName": "Speed Booster Hall Metarees", "enemyName": "Metaree", "quantity": 2, "homeNodes": [ 1 ], "dropRequires": [ "h_heatProof" ] }, { "id": "e2", "groupName": "Speed Booster Hall Gerutas", "enemyName": "Geruta", "quantity": 3, "betweenNodes": [ 1, 2 ], "dropRequires": [ "Gravity", "h_heatProof" ], "devNote": "Accessible without Gravity going left to right but not right to left with speedbooster. Letting it slide" } ], "links": [ { "from": 1, "to": [ { "id": 1 }, { "id": 2 } ] }, { "from": 2, "to": [ { "id": 1 }, { "id": 2 }, { "id": 3 } ] }, { "from": 3, "to": [ { "id": 2 } ] } ], "strats": [ { "link": [ 1, 1 ], "name": "Leave with Runway", "requires": [], "exitCondition": { "leaveWithRunway": { "length": 7, "openEnd": 1 } } }, { "link": [ 1, 1 ], "name": "Geruta Farm", "requires": [ "h_heatProof", { "or": [ "ScrewAttack", "Ice", "Spazer", "Wave", "Plasma" ] }, { "refill": [ "Energy", "Missile", "Super" ] } ] }, { "link": [ 1, 1 ], "name": "Crystal Flash", "requires": [ "h_canHeatedCrystalFlash" ], "devNote": [ "FIXME: A Crystal Flash at node 2 could be added to logic, but would have to take into account the lava rising (if entering from the right door, with Speedbooster collected, without the lava having finished rising before)." ] }, { "link": [ 1, 2 ], "name": "Base", "requires": [ { "obstaclesNotCleared": [ "A" ] }, { "heatFrames": 650 } ], "clearsObstacles": [ "A" ], "unlocksDoors": [ { "types": [ "missiles" ], "requires": [ { "heatFrames": 20 } ] } ] }, { "link": [ 1, 2 ], "name": "Leave with Runway", "requires": [ { "obstaclesNotCleared": [ "A" ] }, { "heatFrames": 630 } ], "exitCondition": { "leaveWithRunway": { "length": 8, "openEnd": 1 } }, "clearsObstacles": [ "A" ], "unlocksDoors": [ { "types": [ "missiles" ], "requires": [ { "heatFrames": 50 } ] }, { "types": [ "super" ], "requires": [] }, { "types": [ "powerbomb" ], "requires": [ { "heatFrames": 110 } ] } ] }, { "link": [ 1, 2 ], "name": "Crumble Bridges Broken", "requires": [ { "obstaclesCleared": [ "A" ] }, "h_heatProof" ], "devNote": "There is no reason to logically run back through the room this way." }, { "link": [ 1, 2 ], "name": "Speed Run", "requires": [ { "obstaclesNotCleared": [ "A" ] }, "SpeedBooster", { "heatFrames": 360 } ], "clearsObstacles": [ "A" ] }, { "link": [ 1, 2 ], "name": "Speed Run and Leave Shinecharged", "requires": [ { "obstaclesNotCleared": [ "A" ] }, { "canShineCharge": { "usedTiles": 33, "openEnd": 2 } }, { "heatFrames": 360 } ], "exitCondition": { "leaveShinecharged": { "framesRemaining": 145 } }, "clearsObstacles": [ "A" ], "unlocksDoors": [ { "types": [ "super" ], "requires": [] }, { "types": [ "missiles", "powerbomb" ], "requires": [ "never" ] } ] }, { "link": [ 1, 2 ], "name": "Speed Run and Leave Running", "requires": [ { "obstaclesNotCleared": [ "A" ] }, "SpeedBooster", "canHeroShot", { "heatFrames": 290 } ], "exitCondition": { "leaveWithRunway": { "length": 45, "openEnd": 1 } }, "clearsObstacles": [ "A" ], "unlocksDoors": [ { "types": [ "super" ], "requires": [] }, { "types": [ "missiles", "powerbomb" ], "requires": [ "never" ] } ], "note": "Shoot from the middle of the second set of crumble blocks from the left." }, { "link": [ 1, 2 ], "name": "Transition with Stored Fall Speed", "entranceCondition": { "comeInWithStoredFallSpeed": { "fallSpeedInTiles": 1 } }, "requires": [ { "or": [ { "heatFrames": 650 }, { "and": [ "SpeedBooster", { "heatFrames": 360 } ] } ] } ], "exitCondition": { "leaveWithStoredFallSpeed": { "fallSpeedInTiles": 1 } }, "unlocksDoors": [ { "types": [ "missiles", "super" ], "requires": [] }, { "types": [ "powerbomb" ], "requires": [ "never" ] } ] }, { "link": [ 1, 2 ], "name": "Transition with Stored Fall Speed (more speed)", "entranceCondition": { "comeInWithStoredFallSpeed": { "fallSpeedInTiles": 2 } }, "requires": [ { "or": [ { "heatFrames": 650 }, { "and": [ "SpeedBooster", { "heatFrames": 360 } ] } ] } ], "exitCondition": { "leaveWithStoredFallSpeed": { "fallSpeedInTiles": 2 } }, "unlocksDoors": [ { "types": [ "missiles", "super" ], "requires": [] }, { "types": [ "powerbomb" ], "requires": [ "never" ] } ] }, { "link": [ 2, 1 ], "name": "Base", "requires": [ { "obstaclesNotCleared": [ "A" ] }, { "heatFrames": 650 } ], "clearsObstacles": [ "A" ], "unlocksDoors": [ { "types": [ "missiles" ], "requires": [ { "heatFrames": 20 } ] } ] }, { "link": [ 2, 1 ], "name": "Crumble Bridges Broken", "requires": [ { "obstaclesCleared": [ "A" ] }, { "or": [ "h_heatProof", { "and": [ { "heatFrames": 690 }, { "or": [ { "ammo": { "type": "Super", "count": 3 } }, { "ammo": { "type": "Missile", "count": 6 } }, "ScrewAttack", "Plasma", "Spazer", "Wave" ] } ] } ] }, { "or": [ { "and": [ "canCarefulJump", { "heatFrames": 420 } ] }, { "and": [ { "heatFrames": 720 }, { "lavaFrames": 60 } ] } ] } ], "unlocksDoors": [ { "types": [ "missiles" ], "requires": [ { "heatFrames": 20 } ] } ], "devNote": "This can be used for collecting the item without needing to reset the room." }, { "link": [ 2, 1 ], "name": "Leave with Runway", "requires": [ { "obstaclesNotCleared": [ "A" ] }, { "heatFrames": 630 } ], "exitCondition": { "leaveWithRunway": { "length": 8, "openEnd": 1 } }, "clearsObstacles": [ "A" ], "unlocksDoors": [ { "types": [ "missiles" ], "requires": [ { "heatFrames": 50 } ] }, { "types": [ "super" ], "requires": [] }, { "types": [ "powerbomb" ], "requires": [ { "heatFrames": 110 } ] } ] }, { "link": [ 2, 1 ], "name": "Speed Run", "requires": [ { "obstaclesNotCleared": [ "A" ] }, "SpeedBooster", { "heatFrames": 360 } ], "clearsObstacles": [ "A" ] }, { "link": [ 2, 1 ], "name": "Speed Run and Leave Shinecharged", "requires": [ { "obstaclesNotCleared": [ "A" ] }, { "canShineCharge": { "usedTiles": 33, "openEnd": 2 } }, { "heatFrames": 360 } ], "exitCondition": { "leaveShinecharged": { "framesRemaining": 145 } }, "clearsObstacles": [ "A" ], "unlocksDoors": [ { "types": [ "super" ], "requires": [] }, { "types": [ "missiles", "powerbomb" ], "requires": [ "never" ] } ] }, { "link": [ 2, 1 ], "name": "Speed Run and Leave Running", "requires": [ { "obstaclesNotCleared": [ "A" ] }, "SpeedBooster", "canHeroShot", { "heatFrames": 290 } ], "exitCondition": { "leaveWithRunway": { "length": 45, "openEnd": 1 } }, "clearsObstacles": [ "A" ], "unlocksDoors": [ { "types": [ "super" ], "requires": [] }, { "types": [ "missiles", "powerbomb" ], "requires": [ "never" ] } ], "note": "Shoot while climbing the highest ramp for the shot to open the door." }, { "link": [ 2, 1 ], "name": "Return Shinespark", "requires": [ { "obstaclesCleared": [ "A" ] }, "canShinechargeMovementComplex", "canHorizontalShinespark", { "canShineCharge": { "usedTiles": 33, "openEnd": 2 } }, { "heatFrames": 335 }, { "shinespark": { "frames": 221 } } ], "note": "Align with the right side of a wall or door then turn around and shinespark in order to avoid colliding with a slope.", "devNote": [ "There is enough time to visit 3 and return to 2 before performing this strat with the shinespark.", "The obstacle being broken means Samus has run far enough to charge a shinespark." ] }, { "link": [ 2, 1 ], "name": "Grapple Teleport", "entranceCondition": { "comeInWithGrappleTeleport": { "blockPositions": [ [ 5, 3 ], [ 7, 2 ] ] } }, "requires": [ { "heatFrames": 45 } ] }, { "link": [ 2, 1 ], "name": "Grapple Teleport Door Lock Skip", "entranceCondition": { "comeInWithGrappleTeleport": { "blockPositions": [ [ 3, 12 ], [ 3, 13 ] ] } }, "requires": [], "bypassesDoorShell": true }, { "link": [ 2, 1 ], "name": "Carry Grapple Teleport (Top Position)", "entranceCondition": { "comeInWithGrappleTeleport": { "blockPositions": [ [ 3, 12 ] ] } }, "requires": [], "bypassesDoorShell": true, "exitCondition": { "leaveWithGrappleTeleport": { "blockPositions": [ [ 3, 12 ] ] } } }, { "link": [ 2, 1 ], "name": "Carry Grapple Teleport (Bottom Position)", "entranceCondition": { "comeInWithGrappleTeleport": { "blockPositions": [ [ 3, 13 ] ] } }, "requires": [], "bypassesDoorShell": true, "exitCondition": { "leaveWithGrappleTeleport": { "blockPositions": [ [ 3, 13 ] ] } } }, { "link": [ 2, 1 ], "name": "Grapple Teleport X-Ray Climb", "entranceCondition": { "comeInWithGrappleTeleport": { "blockPositions": [ [ 2, 18 ], [ 2, 19 ], [ 2, 28 ], [ 2, 29 ] ] } }, "requires": [ "canXRayClimb", { "heatFrames": 1600 }, { "lavaFrames": 1600 } ], "bypassesDoorShell": true, "note": [ "Exit the previous room with Samus in a standing pose (while grappled).", "After teleporting, press right to release Grapple while staying standing (not being forced into a crouch).", "Then X-ray climb to get up to the door transition, without needing to open the door." ], "devNote": [ "FIXME: Add a way to model the flag that gets set in this room after outrunning the lava, with SpeedBooster collected.", "That would be a way to avoid the lavaFrames.", "We also could have a canRiskPermanentLossOfAccess version based on not having SpeedBooster." ] }, { "link": [ 2, 1 ], "name": "Transition with Stored Fall Speed", "entranceCondition": { "comeInWithStoredFallSpeed": { "fallSpeedInTiles": 1 } }, "requires": [ { "or": [ { "heatFrames": 650 }, { "and": [ "SpeedBooster", { "heatFrames": 360 } ] } ] } ], "exitCondition": { "leaveWithStoredFallSpeed": { "fallSpeedInTiles": 1 } }, "unlocksDoors": [ { "types": [ "missiles", "super" ], "requires": [] }, { "types": [ "powerbomb" ], "requires": [ "never" ] } ] }, { "link": [ 2, 1 ], "name": "Transition with Stored Fall Speed (more speed)", "entranceCondition": { "comeInWithStoredFallSpeed": { "fallSpeedInTiles": 2 } }, "requires": [ { "or": [ { "heatFrames": 650 }, { "and": [ "SpeedBooster", { "heatFrames": 360 } ] } ] } ], "exitCondition": { "leaveWithStoredFallSpeed": { "fallSpeedInTiles": 2 } }, "unlocksDoors": [ { "types": [ "missiles", "super" ], "requires": [] }, { "types": [ "powerbomb" ], "requires": [ "never" ] } ] }, { "link": [ 2, 2 ], "name": "Leave with Runway", "requires": [], "exitCondition": { "leaveWithRunway": { "length": 8, "openEnd": 1 } } }, { "link": [ 2, 3 ], "name": "Base", "requires": [ { "heatFrames": 25 } ] }, { "link": [ 3, 2 ], "name": "Base", "requires": [ { "heatFrames": 25 } ] } ] }