Room ID: 193
Exit condition: { "leaveWithRunway": { "length": 3, "openEnd": 1 } } |
Requires: "Gravity" Exit condition: { "leaveSpinning": { "remoteRunway": { "length": 19, "openEnd": 1 }, "minExtraRunSpeed": "$0.8" } } |
Requires: "Gravity" Exit condition: { "leaveWithMockball": { "remoteRunway": { "length": 18, "openEnd": 2 }, "landingRunway": { "length": 3, "openEnd": 1 } } } |
Requires: "Gravity" Exit condition: { "leaveWithMockball": { "remoteRunway": { "length": 17, "openEnd": 1 }, "landingRunway": { "length": 1, "openEnd": 1 } } } |
Requires: "Gravity" Exit condition: { "leaveSpaceJumping": { "remoteRunway": { "length": 19, "openEnd": 1 } } } |
Requires: "Gravity" { "canShineCharge": { "usedTiles": 21, "openEnd": 0 } } "canChainTemporaryBlue" { "or": [ { "or": [ "f_DefeatedDraygon", { "obstaclesCleared": [ "f_DefeatedDraygon" ] } ] }, "h_canBreakOneDraygonTurret" ] } Exit condition: { "leaveWithTemporaryBlue": {} } |
Kill Draygon by grappling to the top left turret. Number of Draygon hits varies; 5 hits are assumed, which is close to a worst-case scenario. Requires: { "notable": "Grapple Kill" } "h_canNavigateUnderwater" "canUseGrapple" { "draygonElectricityFrames": 240 } { "enemyDamage": { "enemy": "Draygon", "type": "contact", "hits": 5 } } Clears obstacles: f_DefeatedDraygon |
Kill Draygon by grappling to a bottom turret as you get grabbed. Avoids taking all the hits from Draygon. Requires: { "notable": "Grapple Quick Kill" } "h_canNavigateUnderwater" "canPreciseGrapple" "h_canBreakOneDraygonTurret" { "draygonElectricityFrames": 240 } Clears obstacles: f_DefeatedDraygon |
Shinecharge in-room, then horizontally spark through Draygon multiple times. It takes 3 Shinesparks if that is the only source of damage onto Draygon. Be careful of taking damage at the end of a Shinespark when near walls and on the killing Shinespark. Requires: { "notable": "Shinespark Kill" } "Gravity" "canMidairShinespark" "canShinechargeMovementComplex" { "or": [ "canShinechargeMovementTricky", "h_canBreakThreeDraygonTurrets" ] } { "canShineCharge": { "usedTiles": 22, "openEnd": 0 } } { "enemyDamage": { "enemy": "Draygon", "type": "contact", "hits": 2 } } { "or": [ "HiJump", { "enemyDamage": { "enemy": "Draygon", "type": "contact", "hits": 1 } } ] } { "shinespark": { "frames": 150 } } Clears obstacles: f_DefeatedDraygon |
Requires: "Gravity" { "enemyKill": { "enemies": [ [ "Draygon" ] ], "farmableAmmo": [ "Missile", "Super" ] } } Clears obstacles: f_DefeatedDraygon |
Requires: { "notable": "Suitless Fight" } "canSuitlessMaridia" "Morph" "h_canBreakThreeDraygonTurrets" { "enemyKill": { "enemies": [ [ "Draygon" ] ], "farmableAmmo": [ "Missile", "Super" ] } } Clears obstacles: f_DefeatedDraygon |
Requires: { "or": [ { "or": [ "f_DefeatedDraygon", { "obstaclesCleared": [ "f_DefeatedDraygon" ] } ] }, "h_canBreakOneDraygonTurret" ] } "h_canCrystalFlash" |
Requires: "Gravity" "canShinechargeMovement" { "canShineCharge": { "usedTiles": 22, "openEnd": 0 } } Exit condition: { "leaveShinecharged": { "framesRemaining": 80 } } Unlocks doors: {"types":["ammo"],"requires":[]} |
Requires: { "not": "f_DefeatedDraygon" } "canRiskPermanentLossOfAccess" { "enemyDamage": { "enemy": "Draygon", "type": "contact", "hits": 1 } } |
From: 1
Left Door
To: 1
Left Door
Get a boost from a Bomb or Power Bomb while grappled to the bottom half of the turret above the door. Samus will enter a 'glitched grapple hanging' state where Samus' graphics will appear corrupted while swinging with Grapple. Slightly delay the down press to extend Grapple, to avoid getting caught on the corner of the floor. Swing down, and hold left while approaching the door to trigger the transition. Continue holding Grapple through the door transition to initiate a teleport in the next room. If Samus needs to be standing in the next room (e.g. for an X-Ray climb), then be sure to touch the ground before reaching the transition; this can be done by timing the Grapple extension early enough, or, if enough energy is available, by doing a small bounce before going through the transition. Samus can reach the transition at either horizontal position 20 or 21, depending on the specific timing and positioning of the swing. Pressing diagonal up-left just before the transition (to retracting Grapple slightly) can help more consistently reach it at position 21. Requires: "h_canBreakOneDraygonTurret" "Gravity" "canGrappleBombHang" "h_canBombThings" { "draygonElectricityFrames": 40 } { "or": [ "canInsaneJump", { "draygonElectricityFrames": 40 } ] } Exit condition: { "leaveWithGrappleTeleport": { "blockPositions": [ [ 2, 19 ] ] } } |
From: 1
Left Door
To: 1
Left Door
Get a boost from a Bomb or Power Bomb while grappled to the top half of the turret above the door. Samus will enter a 'glitched grapple hanging' state where Samus' graphics will appear corrupted while swinging with Grapple. Swing down, and hold left while approaching the door to trigger the transition. Continue holding Grapple through the door transition to initiate a teleport in the next room. If Samus needs to be standing in the next room (e.g. for an X-Ray climb), then be sure to touch the ground before reaching the transition; this can be done by timing the Grapple extension early enough, or, if enough energy is available, by doing a small bounce before going through the transition. If it is needed to enter far to the right (at horizontal position 21), this can be done by pressing up to retract Grapple just before the transition. Requires: "h_canBreakOneDraygonTurret" "Gravity" "canGrappleBombHang" "h_canBombThings" { "draygonElectricityFrames": 40 } { "or": [ "canInsaneJump", { "draygonElectricityFrames": 40 } ] } Exit condition: { "leaveWithGrappleTeleport": { "blockPositions": [ [ 2, 18 ] ] } } |
From: 1
Left Door
To: 1
Left Door
Get a boost from a Bomb or Power Bomb while grappled to the bottom half of the turret above the door. This can be done by standing at the very edge of the ledge, jumping up into a mid-air morph, laying a bomb or Power Bomb, unmorphing, then grappling diagonally. It can also be done with a crouch jump, without needing to be so close to the edge of the ledge. Samus will enter a 'glitched grapple hanging' state where Samus' graphics will appear corrupted while swinging with Grapple. After the Grapple attachment, hold diagonally down-left to swing directly into the door and through the transition. Continue holding Grapple through the door transition to initiate a teleport in the next room. Samus should be able to stand in the next room (e.g. in case this is needed for an X-Ray climb). Samus may trigger the transition at either horizontal position 20 or 21, depending on the specific timing and positioning of the swing. To reliably trigger it at position 21, press diagonally up-left just before the transition to retract Grapple slightly. Requires: "h_canBreakOneDraygonTurret" "canGrappleBombHang" "h_canBombThings" { "draygonElectricityFrames": 45 } { "or": [ "canInsaneJump", { "draygonElectricityFrames": 45 } ] } Exit condition: { "leaveWithGrappleTeleport": { "blockPositions": [ [ 2, 19 ] ] } } |
From: 1
Left Door
To: 1
Left Door
Get a boost from a Bomb or Power Bomb while grappled to the top half of the turret above the door. With HiJump, this can be done by standing on the low ground a couple tiles right of the ledge, jumping up into a mid-air morph, laying a bomb or Power Bomb, unmorphing, then grappling diagonally. Samus will enter a 'glitched grapple hanging' state where Samus' graphics will appear corrupted while swinging with Grapple. Slightly delay the down press to extend Grapple, to avoid getting caught on the corner of the floor. Swing down, and hold left while approaching the door to trigger the transition. Continue holding Grapple through the door transition to initiate a teleport in the next room. Samus should be able to stand in the next room (e.g. in case this is needed for an X-Ray climb). Samus can reach the transition at either horizontal position 20 or 21, depending on the specific timing and positioning of the swing. Requires: "h_canBreakOneDraygonTurret" "HiJump" "canGrappleBombHang" "h_canBombThings" { "draygonElectricityFrames": 50 } { "or": [ "canInsaneJump", { "draygonElectricityFrames": 50 } ] } Exit condition: { "leaveWithGrappleTeleport": { "blockPositions": [ [ 2, 18 ] ] } } |
Requires: "Gravity" "h_canFly" |
Requires: "Gravity" "canGravityJump" |
Requires: "Gravity" "HiJump" "canSpringBallJumpMidAir" |
Requires: "Gravity" "HiJump" "SpeedBooster" { "or": [ "canWalljump", "canTrickyDashJump" ] } |
There is a very precise speed where the HiJumpless speedjump is doable. Starting against the left wall, jump just to the left of the rightmost pipe sticking out of the ground. Requires: "Gravity" "canTrickyDashJump" "canPreciseWalljump" |
Requires: "Gravity" "canSpringwall" { "resetRoom": { "nodes": [ 1 ] } } |
Requires: "Gravity" { "canShineCharge": { "usedTiles": 22, "openEnd": 1 } } { "or": [ { "shinespark": { "frames": 26, "excessFrames": 5 } }, { "and": [ "canMidairShinespark", { "shinespark": { "frames": 20, "excessFrames": 4 } } ] } ] } |
Performing a grapple jump off of a Draygon turret. Usually done by bouncing off the wall for momentum. Requires: { "notable": "Turret Grapple Jump" } "canSuitlessMaridia" "canGrappleJump" { "draygonElectricityFrames": 60 } "h_canBreakOneDraygonTurret" |
From: 1
Left Door
To: 2
Right Door
Charge a shinespark in the bottom of Draygon's room, then Gravity jump up in order to shinespark out of the right door. Requires: { "notable": "Shinespark out the Right with a Gravity Jump" } "canGravityJump" "canShinechargeMovementComplex" "canMidairShinespark" { "canShineCharge": { "usedTiles": 20, "openEnd": 1 } } { "shinespark": { "frames": 14 } } Exit condition: { "leaveWithSpark": {} } Unlocks doors: {"types":["ammo"],"requires":[]} |
Requires: { "useFlashSuit": {} } { "or": [ { "shinespark": { "frames": 22, "excessFrames": 5 } }, { "and": [ "HiJump", { "shinespark": { "frames": 19, "excessFrames": 5 } } ] } ] } |
Entrance condition: { "comeInShinecharged": { "framesRequired": 50 } } Requires: "Gravity" { "shinespark": { "frames": 25 } } Clears obstacles: door_1 |
Takes more time to setup than with Gravity, but you can spark from a bit further out because of the water physics. Entrance condition: { "comeInShinecharged": { "framesRequired": 90 } } Requires: "canSuitlessMaridia" { "shinespark": { "frames": 25 } } Clears obstacles: door_1 |
Requires a runway of at least 3 tiles (with no open end) in the adjacent room. Entrance condition: { "comeInJumping": { "speedBooster": "any", "minTiles": 2.4375 } } Requires: "canCrossRoomJumpIntoWater" Clears obstacles: door_1 |
Requires a runway of at least 2 tiles (with no open end) in the adjacent room. Jump as late as possible to avoid the ledge hanging over the door. Entrance condition: { "comeInJumping": { "speedBooster": false, "minTiles": 1.4375 } } Requires: "canCrossRoomJumpIntoWater" "canTrickyJump" Clears obstacles: door_1 |
Requires a runway of at least 2 tiles in the adjacent room. Jump as late as possible to avoid the ledge hanging over the door. Entrance condition: { "comeInJumping": { "speedBooster": "any", "minTiles": 2 } } Requires: "canCrossRoomJumpIntoWater" "canTrickyJump" Clears obstacles: door_1 |
Entrance condition: { "comeInJumping": { "speedBooster": true, "minTiles": 0.4375 } } Requires: "canCrossRoomJumpIntoWater" "canTrickyDashJump" Clears obstacles: door_1 |
Requires an air ball and a runway of only 1 tile in the adjacent room. Aim to morph on contact with the ceiling to slide accross it for extra distance. Entrance condition: { "comeInJumping": { "speedBooster": "any", "minTiles": 1 } } Requires: "canCrossRoomJumpIntoWater" "canLateralMidAirMorph" "canTrickyJump" Clears obstacles: door_1 |
Entrance condition: { "comeInSpaceJumping": { "minTiles": 2, "speedBooster": "any" } } Clears obstacles: door_1 |
Entrance condition: { "comeInWithGMode": { "mode": "any", "morphed": true } } Requires: { "or": [ "f_DefeatedDraygon", { "obstaclesCleared": [ "f_DefeatedDraygon" ] } ] } "Gravity" "h_canArtificialMorphIBJ" Clears obstacles: door_1 |
There is enough time to IBJ to the top door before Draygon appears. Entrance condition: { "comeInWithGMode": { "mode": "any", "morphed": true, "mobility": "mobile" } } Requires: "Gravity" "h_canArtificialMorphIBJ" Clears obstacles: door_1 |
|
Entrance condition: { "comeInWithGrappleTeleport": { "blockPositions": [ [ 2, 18 ], [ 2, 19 ], [ 2, 28 ], [ 2, 29 ] ] } } Clears obstacles: door_2 Bypasses door shell: true |
Entrance condition: { "comeInWithGrappleTeleport": { "blockPositions": [ [ 2, 18 ] ] } } Exit condition: { "leaveWithGrappleTeleport": { "blockPositions": [ [ 2, 18 ] ] } } Clears obstacles: door_2 Bypasses door shell: true |
From: 2
Right Door
To: 1
Left Door
Entrance condition: { "comeInWithGrappleTeleport": { "blockPositions": [ [ 2, 19 ] ] } } Exit condition: { "leaveWithGrappleTeleport": { "blockPositions": [ [ 2, 19 ] ] } } Clears obstacles: door_2 Bypasses door shell: true |
From: 2
Right Door
To: 1
Left Door
Entrance condition: { "comeInWithGrappleTeleport": { "blockPositions": [ [ 2, 28 ] ] } } Exit condition: { "leaveWithGrappleTeleport": { "blockPositions": [ [ 2, 28 ] ] } } Clears obstacles: door_2 Bypasses door shell: true |
From: 2
Right Door
To: 1
Left Door
Entrance condition: { "comeInWithGrappleTeleport": { "blockPositions": [ [ 2, 29 ] ] } } Exit condition: { "leaveWithGrappleTeleport": { "blockPositions": [ [ 2, 29 ] ] } } Clears obstacles: door_2 Bypasses door shell: true |
Exit condition: { "leaveWithRunway": { "length": 6, "openEnd": 1 } } |
Requires: { "canShineCharge": { "usedTiles": 20, "openEnd": 1 } } "canGravityJump" "canChainTemporaryBlue" { "or": [ { "or": [ "f_DefeatedDraygon", { "obstaclesCleared": [ "f_DefeatedDraygon" ] } ] }, { "and": [ "h_canBreakOneDraygonTurret", "h_canBreakOneDraygonTurret" ] } ] } Exit condition: { "leaveWithTemporaryBlue": {} } |
Requires: { "or": [ "f_DefeatedDraygon", { "obstaclesCleared": [ "f_DefeatedDraygon" ] } ] } "h_canCrystalFlash" |
{ "$schema": "../../../schema/m3-room.schema.json", "id": 193, "name": "Draygon's Room", "area": "Maridia", "subarea": "Inner", "subsubarea": "Pink", "playable": true, "roomAddress": "0x7DA60", "roomEnvironments": [ { "heated": false } ], "nodes": [ { "id": 1, "name": "Left Door", "nodeType": "door", "nodeSubType": "gray", "nodeAddress": "0x001a978", "doorOrientation": "left", "doorEnvironments": [ { "physics": "water" } ], "locks": [ { "name": "Draygon Left Gray Lock (to Space Jump)", "lockType": "gameFlag", "unlockStrats": [ { "name": "Base", "notable": false, "requires": [ { "or": [ "f_DefeatedDraygon", { "obstaclesCleared": [ "f_DefeatedDraygon" ] } ] } ] } ] } ] }, { "id": 2, "name": "Right Door", "nodeType": "door", "nodeSubType": "gray", "nodeAddress": "0x001a96c", "doorOrientation": "right", "doorEnvironments": [ { "physics": "water" } ], "locks": [ { "name": "Draygon Right Gray Lock (to Precious Room)", "lockType": "gameFlag", "unlockStrats": [ { "name": "Base", "notable": false, "requires": [ { "or": [ "f_DefeatedDraygon", { "obstaclesCleared": [ "f_DefeatedDraygon" ] } ] } ] } ] } ] } ], "enemies": [ { "id": "e1", "groupName": "Draygon", "enemyName": "Draygon", "quantity": 1, "homeNodes": [ 1 ], "stopSpawn": [ "f_DefeatedDraygon" ] } ], "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": 3, "openEnd": 1 } } }, { "id": 2, "link": [ 1, 1 ], "name": "Leave Spinning", "requires": [ "Gravity" ], "exitCondition": { "leaveSpinning": { "remoteRunway": { "length": 19, "openEnd": 1 }, "minExtraRunSpeed": "$0.8" } } }, { "id": 3, "link": [ 1, 1 ], "name": "Leave With Mockball", "requires": [ "Gravity" ], "exitCondition": { "leaveWithMockball": { "remoteRunway": { "length": 18, "openEnd": 2 }, "landingRunway": { "length": 3, "openEnd": 1 } } } }, { "id": 4, "link": [ 1, 1 ], "name": "Leave With Spring Ball Bounce", "requires": [ "Gravity" ], "exitCondition": { "leaveWithMockball": { "remoteRunway": { "length": 17, "openEnd": 1 }, "landingRunway": { "length": 1, "openEnd": 1 } } } }, { "id": 5, "link": [ 1, 1 ], "name": "Leave Space Jumping", "requires": [ "Gravity" ], "exitCondition": { "leaveSpaceJumping": { "remoteRunway": { "length": 19, "openEnd": 1 } } } }, { "id": 6, "link": [ 1, 1 ], "name": "Leave With Temporary Blue", "requires": [ "Gravity", { "canShineCharge": { "usedTiles": 21, "openEnd": 0 } }, "canChainTemporaryBlue", { "or": [ { "or": [ "f_DefeatedDraygon", { "obstaclesCleared": [ "f_DefeatedDraygon" ] } ] }, "h_canBreakOneDraygonTurret" ] } ], "exitCondition": { "leaveWithTemporaryBlue": {} }, "devNote": "This may be possible without destroying the turret, but it might be unreliable or need other requirements." }, { "id": 45, "link": [ 1, 1 ], "name": "Grapple Kill", "requires": [ { "notable": "Grapple Kill" }, "h_canNavigateUnderwater", "canUseGrapple", { "draygonElectricityFrames": 240 }, { "enemyDamage": { "enemy": "Draygon", "type": "contact", "hits": 5 } } ], "setsFlags": [ "f_DefeatedDraygon" ], "note": [ "Kill Draygon by grappling to the top left turret.", "Number of Draygon hits varies; 5 hits are assumed, which is close to a worst-case scenario." ], "clearsObstacles": [ "f_DefeatedDraygon" ] }, { "id": 46, "link": [ 1, 1 ], "name": "Grapple Quick Kill", "requires": [ { "notable": "Grapple Quick Kill" }, "h_canNavigateUnderwater", "canPreciseGrapple", "h_canBreakOneDraygonTurret", { "draygonElectricityFrames": 240 } ], "setsFlags": [ "f_DefeatedDraygon" ], "note": [ "Kill Draygon by grappling to a bottom turret as you get grabbed.", "Avoids taking all the hits from Draygon." ], "clearsObstacles": [ "f_DefeatedDraygon" ] }, { "id": 47, "link": [ 1, 1 ], "name": "Shinespark Kill", "requires": [ { "notable": "Shinespark Kill" }, "Gravity", "canMidairShinespark", "canShinechargeMovementComplex", { "or": [ "canShinechargeMovementTricky", "h_canBreakThreeDraygonTurrets" ] }, { "canShineCharge": { "usedTiles": 22, "openEnd": 0 } }, { "enemyDamage": { "enemy": "Draygon", "type": "contact", "hits": 2 } }, { "or": [ "HiJump", { "enemyDamage": { "enemy": "Draygon", "type": "contact", "hits": 1 } } ] }, { "shinespark": { "frames": 150 } } ], "setsFlags": [ "f_DefeatedDraygon" ], "note": [ "Shinecharge in-room, then horizontally spark through Draygon multiple times.", "It takes 3 Shinesparks if that is the only source of damage onto Draygon.", "Be careful of taking damage at the end of a Shinespark when near walls and on the killing Shinespark." ], "devNote": "150 frames is an approximate sum of all required shinesparks.", "clearsObstacles": [ "f_DefeatedDraygon" ] }, { "id": 48, "link": [ 1, 1 ], "name": "Gravity Draygon", "requires": [ "Gravity", { "enemyKill": { "enemies": [ [ "Draygon" ] ], "farmableAmmo": [ "Missile", "Super" ] } } ], "setsFlags": [ "f_DefeatedDraygon" ], "clearsObstacles": [ "f_DefeatedDraygon" ] }, { "id": 49, "link": [ 1, 1 ], "name": "Suitless Fight", "requires": [ { "notable": "Suitless Fight" }, "canSuitlessMaridia", "Morph", "h_canBreakThreeDraygonTurrets", { "enemyKill": { "enemies": [ [ "Draygon" ] ], "farmableAmmo": [ "Missile", "Super" ] } } ], "setsFlags": [ "f_DefeatedDraygon" ], "note": "Fight Draygon without gravity, but with morph.", "devNote": "This will require coming into the fight with ammo to kill the turrets. Although that ammo could instead be farmed in the fight.", "clearsObstacles": [ "f_DefeatedDraygon" ] }, { "id": 7, "link": [ 1, 1 ], "name": "Crystal Flash", "requires": [ { "or": [ { "or": [ "f_DefeatedDraygon", { "obstaclesCleared": [ "f_DefeatedDraygon" ] } ] }, "h_canBreakOneDraygonTurret" ] }, "h_canCrystalFlash" ], "flashSuitChecked": true }, { "id": 34, "link": [ 1, 1 ], "name": "Leave Shinecharged", "requires": [ "Gravity", "canShinechargeMovement", { "canShineCharge": { "usedTiles": 22, "openEnd": 0 } } ], "exitCondition": { "leaveShinecharged": { "framesRemaining": 80 } }, "unlocksDoors": [ { "types": [ "ammo" ], "requires": [] } ], "flashSuitChecked": true }, { "id": 8, "link": [ 1, 1 ], "name": "G-Mode Regain Mobility", "requires": [ { "not": "f_DefeatedDraygon" }, "canRiskPermanentLossOfAccess", { "enemyDamage": { "enemy": "Draygon", "type": "contact", "hits": 1 } } ], "gModeRegainMobility": {}, "flashSuitChecked": true }, { "id": 9, "link": [ 1, 1 ], "name": "Leave With Grapple Teleport (Bottom Position)", "requires": [ "h_canBreakOneDraygonTurret", "Gravity", "canGrappleBombHang", "h_canBombThings", { "draygonElectricityFrames": 40 }, { "or": [ "canInsaneJump", { "draygonElectricityFrames": 40 } ] } ], "exitCondition": { "leaveWithGrappleTeleport": { "blockPositions": [ [ 2, 19 ] ] } }, "note": [ "Get a boost from a Bomb or Power Bomb while grappled to the bottom half of the turret above the door.", "Samus will enter a 'glitched grapple hanging' state where Samus' graphics will appear corrupted while swinging with Grapple.", "Slightly delay the down press to extend Grapple, to avoid getting caught on the corner of the floor.", "Swing down, and hold left while approaching the door to trigger the transition.", "Continue holding Grapple through the door transition to initiate a teleport in the next room.", "If Samus needs to be standing in the next room (e.g. for an X-Ray climb), then be sure to touch the ground before reaching the transition;", "this can be done by timing the Grapple extension early enough,", "or, if enough energy is available, by doing a small bounce before going through the transition.", "Samus can reach the transition at either horizontal position 20 or 21, depending on the specific timing and positioning of the swing.", "Pressing diagonal up-left just before the transition (to retracting Grapple slightly) can help more consistently reach it at position 21." ], "devNote": [ "FIXME: We could model the turret as an obstacle in case it was already broken for the Draygon fight.", "FIXME: Add strats with canUnmorphGrappleHang alternatives to canGrappleBombHang, also canGrappleJump and/or canInsaneJump versions for reaching the higher block position." ] }, { "id": 10, "link": [ 1, 1 ], "name": "Leave With Grapple Teleport (Top Position)", "requires": [ "h_canBreakOneDraygonTurret", "Gravity", "canGrappleBombHang", "h_canBombThings", { "draygonElectricityFrames": 40 }, { "or": [ "canInsaneJump", { "draygonElectricityFrames": 40 } ] } ], "exitCondition": { "leaveWithGrappleTeleport": { "blockPositions": [ [ 2, 18 ] ] } }, "note": [ "Get a boost from a Bomb or Power Bomb while grappled to the top half of the turret above the door.", "Samus will enter a 'glitched grapple hanging' state where Samus' graphics will appear corrupted while swinging with Grapple.", "Swing down, and hold left while approaching the door to trigger the transition.", "Continue holding Grapple through the door transition to initiate a teleport in the next room.", "If Samus needs to be standing in the next room (e.g. for an X-Ray climb), then be sure to touch the ground before reaching the transition;", "this can be done by timing the Grapple extension early enough,", "or, if enough energy is available, by doing a small bounce before going through the transition.", "If it is needed to enter far to the right (at horizontal position 21), this can be done by pressing up to retract Grapple just before the transition." ] }, { "id": 11, "link": [ 1, 1 ], "name": "Leave With Grapple Teleport (Suitless, Bottom Position)", "requires": [ "h_canBreakOneDraygonTurret", "canGrappleBombHang", "h_canBombThings", { "draygonElectricityFrames": 45 }, { "or": [ "canInsaneJump", { "draygonElectricityFrames": 45 } ] } ], "exitCondition": { "leaveWithGrappleTeleport": { "blockPositions": [ [ 2, 19 ] ] } }, "note": [ "Get a boost from a Bomb or Power Bomb while grappled to the bottom half of the turret above the door.", "This can be done by standing at the very edge of the ledge, jumping up into a mid-air morph, laying a bomb or Power Bomb, unmorphing, then grappling diagonally.", "It can also be done with a crouch jump, without needing to be so close to the edge of the ledge.", "Samus will enter a 'glitched grapple hanging' state where Samus' graphics will appear corrupted while swinging with Grapple.", "After the Grapple attachment, hold diagonally down-left to swing directly into the door and through the transition.", "Continue holding Grapple through the door transition to initiate a teleport in the next room.", "Samus should be able to stand in the next room (e.g. in case this is needed for an X-Ray climb).", "Samus may trigger the transition at either horizontal position 20 or 21, depending on the specific timing and positioning of the swing.", "To reliably trigger it at position 21, press diagonally up-left just before the transition to retract Grapple slightly." ] }, { "id": 12, "link": [ 1, 1 ], "name": "Leave With Grapple Teleport (Suitless, Top Position)", "requires": [ "h_canBreakOneDraygonTurret", "HiJump", "canGrappleBombHang", "h_canBombThings", { "draygonElectricityFrames": 50 }, { "or": [ "canInsaneJump", { "draygonElectricityFrames": 50 } ] } ], "exitCondition": { "leaveWithGrappleTeleport": { "blockPositions": [ [ 2, 18 ] ] } }, "note": [ "Get a boost from a Bomb or Power Bomb while grappled to the top half of the turret above the door.", "With HiJump, this can be done by standing on the low ground a couple tiles right of the ledge, jumping up into a mid-air morph, laying a bomb or Power Bomb, unmorphing, then grappling diagonally.", "Samus will enter a 'glitched grapple hanging' state where Samus' graphics will appear corrupted while swinging with Grapple.", "Slightly delay the down press to extend Grapple, to avoid getting caught on the corner of the floor.", "Swing down, and hold left while approaching the door to trigger the transition.", "Continue holding Grapple through the door transition to initiate a teleport in the next room.", "Samus should be able to stand in the next room (e.g. in case this is needed for an X-Ray climb).", "Samus can reach the transition at either horizontal position 20 or 21, depending on the specific timing and positioning of the swing." ] }, { "id": 35, "link": [ 1, 2 ], "name": "Base", "requires": [ "Gravity", "h_canFly" ] }, { "id": 36, "link": [ 1, 2 ], "name": "Gravity Jump", "requires": [ "Gravity", "canGravityJump" ] }, { "id": 37, "link": [ 1, 2 ], "name": "Spring Ball Jump", "requires": [ "Gravity", "HiJump", "canSpringBallJumpMidAir" ] }, { "id": 38, "link": [ 1, 2 ], "name": "Speedjump", "requires": [ "Gravity", "HiJump", "SpeedBooster", { "or": [ "canWalljump", "canTrickyDashJump" ] } ] }, { "id": 39, "link": [ 1, 2 ], "name": "Draygon HiJumpless Speedjump", "requires": [ "Gravity", "canTrickyDashJump", "canPreciseWalljump" ], "note": [ "There is a very precise speed where the HiJumpless speedjump is doable.", "Starting against the left wall, jump just to the left of the rightmost pipe sticking out of the ground." ] }, { "id": 40, "link": [ 1, 2 ], "name": "Draygon Springwall", "requires": [ "Gravity", "canSpringwall", { "resetRoom": { "nodes": [ 1 ] } } ], "devNote": "The turret cannot be broken." }, { "id": 41, "link": [ 1, 2 ], "name": "In-Room Shinespark", "requires": [ "Gravity", { "canShineCharge": { "usedTiles": 22, "openEnd": 1 } }, { "or": [ { "shinespark": { "frames": 26, "excessFrames": 5 } }, { "and": [ "canMidairShinespark", { "shinespark": { "frames": 20, "excessFrames": 4 } } ] } ] } ] }, { "id": 42, "link": [ 1, 2 ], "name": "Turret Grapple Jump", "requires": [ { "notable": "Turret Grapple Jump" }, "canSuitlessMaridia", "canGrappleJump", { "draygonElectricityFrames": 60 }, "h_canBreakOneDraygonTurret" ], "note": "Performing a grapple jump off of a Draygon turret. Usually done by bouncing off the wall for momentum." }, { "id": 43, "link": [ 1, 2 ], "name": "Shinespark out the Right with a Gravity Jump", "requires": [ { "notable": "Shinespark out the Right with a Gravity Jump" }, "canGravityJump", "canShinechargeMovementComplex", "canMidairShinespark", { "canShineCharge": { "usedTiles": 20, "openEnd": 1 } }, { "shinespark": { "frames": 14 } } ], "exitCondition": { "leaveWithSpark": {} }, "unlocksDoors": [ { "types": [ "ammo" ], "requires": [] } ], "note": "Charge a shinespark in the bottom of Draygon's room, then Gravity jump up in order to shinespark out of the right door." }, { "id": 44, "link": [ 1, 2 ], "name": "Use Flash Suit", "requires": [ { "useFlashSuit": {} }, { "or": [ { "shinespark": { "frames": 22, "excessFrames": 5 } }, { "and": [ "HiJump", { "shinespark": { "frames": 19, "excessFrames": 5 } } ] } ] } ] }, { "id": 13, "link": [ 1, 2 ], "name": "Shinespark", "entranceCondition": { "comeInShinecharged": { "framesRequired": 50 } }, "requires": [ "Gravity", { "shinespark": { "frames": 25 } } ], "flashSuitChecked": true, "clearsObstacles": [ "door_1" ] }, { "id": 14, "link": [ 1, 2 ], "name": "Suitless shinespark", "entranceCondition": { "comeInShinecharged": { "framesRequired": 90 } }, "requires": [ "canSuitlessMaridia", { "shinespark": { "frames": 25 } } ], "flashSuitChecked": true, "note": "Takes more time to setup than with Gravity, but you can spark from a bit further out because of the water physics.", "clearsObstacles": [ "door_1" ] }, { "id": 15, "link": [ 1, 2 ], "name": "Cross Room Jump (Lenient)", "entranceCondition": { "comeInJumping": { "speedBooster": "any", "minTiles": 2.4375 } }, "requires": [ "canCrossRoomJumpIntoWater" ], "note": "Requires a runway of at least 3 tiles (with no open end) in the adjacent room.", "clearsObstacles": [ "door_1" ] }, { "id": 16, "link": [ 1, 2 ], "name": "Cross Room Jump (Speed Booster Off)", "entranceCondition": { "comeInJumping": { "speedBooster": false, "minTiles": 1.4375 } }, "requires": [ "canCrossRoomJumpIntoWater", "canTrickyJump" ], "note": [ "Requires a runway of at least 2 tiles (with no open end) in the adjacent room.", "Jump as late as possible to avoid the ledge hanging over the door." ], "clearsObstacles": [ "door_1" ] }, { "id": 17, "link": [ 1, 2 ], "name": "Cross Room Jump", "entranceCondition": { "comeInJumping": { "speedBooster": "any", "minTiles": 2 } }, "requires": [ "canCrossRoomJumpIntoWater", "canTrickyJump" ], "note": [ "Requires a runway of at least 2 tiles in the adjacent room.", "Jump as late as possible to avoid the ledge hanging over the door." ], "devNote": "This can be done with a slightly shorter runway (closed end), with a down grab, but that setup doesn't exist.", "clearsObstacles": [ "door_1" ] }, { "id": 18, "link": [ 1, 2 ], "name": "Cross Room Jump with Speedbooster", "entranceCondition": { "comeInJumping": { "speedBooster": true, "minTiles": 0.4375 } }, "requires": [ "canCrossRoomJumpIntoWater", "canTrickyDashJump" ], "clearsObstacles": [ "door_1" ] }, { "id": 19, "link": [ 1, 2 ], "name": "Cross Room Jump with Air Ball", "entranceCondition": { "comeInJumping": { "speedBooster": "any", "minTiles": 1 } }, "requires": [ "canCrossRoomJumpIntoWater", "canLateralMidAirMorph", "canTrickyJump" ], "note": [ "Requires an air ball and a runway of only 1 tile in the adjacent room.", "Aim to morph on contact with the ceiling to slide accross it for extra distance." ], "clearsObstacles": [ "door_1" ] }, { "id": 20, "link": [ 1, 2 ], "name": "Cross Room Space Jump", "entranceCondition": { "comeInSpaceJumping": { "minTiles": 2, "speedBooster": "any" } }, "requires": [], "devNote": "FIXME: with this and several other cross-room strats, it would be possible to leave with temporary blue, if we had a way to encode the requirement to come in blue.", "clearsObstacles": [ "door_1" ] }, { "id": 21, "link": [ 1, 2 ], "name": "G-Mode Morph (Draygon Defeated)", "entranceCondition": { "comeInWithGMode": { "mode": "any", "morphed": true } }, "requires": [ { "or": [ "f_DefeatedDraygon", { "obstaclesCleared": [ "f_DefeatedDraygon" ] } ] }, "Gravity", "h_canArtificialMorphIBJ" ], "flashSuitChecked": true, "clearsObstacles": [ "door_1" ] }, { "id": 22, "link": [ 1, 2 ], "name": "G-Mode Morph (Draygon Alive)", "entranceCondition": { "comeInWithGMode": { "mode": "any", "morphed": true, "mobility": "mobile" } }, "requires": [ "Gravity", "h_canArtificialMorphIBJ" ], "flashSuitChecked": true, "note": "There is enough time to IBJ to the top door before Draygon appears.", "clearsObstacles": [ "door_1" ] }, { "id": 32, "link": [ 2, 1 ], "name": "Base", "requires": [] }, { "id": 24, "link": [ 2, 1 ], "name": "Grapple Teleport", "entranceCondition": { "comeInWithGrappleTeleport": { "blockPositions": [ [ 2, 18 ], [ 2, 19 ], [ 2, 28 ], [ 2, 29 ] ] } }, "requires": [], "bypassesDoorShell": true, "clearsObstacles": [ "door_2" ] }, { "id": 25, "link": [ 2, 1 ], "name": "Carry Grapple Teleport (Top Position)", "entranceCondition": { "comeInWithGrappleTeleport": { "blockPositions": [ [ 2, 18 ] ] } }, "requires": [], "bypassesDoorShell": true, "exitCondition": { "leaveWithGrappleTeleport": { "blockPositions": [ [ 2, 18 ] ] } }, "clearsObstacles": [ "door_2" ] }, { "id": 26, "link": [ 2, 1 ], "name": "Carry Grapple Teleport (Upper Middle Position)", "entranceCondition": { "comeInWithGrappleTeleport": { "blockPositions": [ [ 2, 19 ] ] } }, "requires": [], "bypassesDoorShell": true, "exitCondition": { "leaveWithGrappleTeleport": { "blockPositions": [ [ 2, 19 ] ] } }, "clearsObstacles": [ "door_2" ] }, { "id": 27, "link": [ 2, 1 ], "name": "Carry Grapple Teleport (Lower Middle Position)", "entranceCondition": { "comeInWithGrappleTeleport": { "blockPositions": [ [ 2, 28 ] ] } }, "requires": [], "bypassesDoorShell": true, "exitCondition": { "leaveWithGrappleTeleport": { "blockPositions": [ [ 2, 28 ] ] } }, "clearsObstacles": [ "door_2" ] }, { "id": 28, "link": [ 2, 1 ], "name": "Carry Grapple Teleport (Bottom Position)", "entranceCondition": { "comeInWithGrappleTeleport": { "blockPositions": [ [ 2, 29 ] ] } }, "requires": [], "bypassesDoorShell": true, "exitCondition": { "leaveWithGrappleTeleport": { "blockPositions": [ [ 2, 29 ] ] } }, "clearsObstacles": [ "door_2" ] }, { "id": 29, "link": [ 2, 2 ], "name": "Leave with Runway", "requires": [], "exitCondition": { "leaveWithRunway": { "length": 6, "openEnd": 1 } } }, { "id": 30, "link": [ 2, 2 ], "name": "Leave With Temporary Blue", "requires": [ { "canShineCharge": { "usedTiles": 20, "openEnd": 1 } }, "canGravityJump", "canChainTemporaryBlue", { "or": [ { "or": [ "f_DefeatedDraygon", { "obstaclesCleared": [ "f_DefeatedDraygon" ] } ] }, { "and": [ "h_canBreakOneDraygonTurret", "h_canBreakOneDraygonTurret" ] } ] } ], "exitCondition": { "leaveWithTemporaryBlue": {} }, "devNote": "This may be possible without destroying the turrets, but it might be unreliable or need other requirements." }, { "id": 31, "link": [ 2, 2 ], "name": "Crystal Flash", "requires": [ { "or": [ "f_DefeatedDraygon", { "obstaclesCleared": [ "f_DefeatedDraygon" ] } ] }, "h_canCrystalFlash" ], "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": [], "clearsObstacles": [ "door_1" ] }, { "link": [ 2, 2 ], "name": "Base (Unlock Door)", "requires": [], "unlocksDoors": [ { "types": [ "ammo" ], "requires": [] } ] }, { "link": [ 2, 2 ], "name": "Base (Come In Normally)", "entranceCondition": { "comeInNormally": {} }, "requires": [], "clearsObstacles": [ "door_2" ] } ], "nextStratId": 50, "notables": [ { "id": 1, "name": "Turret Grapple Jump", "note": "Performing a grapple jump off of a Draygon turret. Usually done by bouncing off the wall for momentum." }, { "id": 2, "name": "Shinespark out the Right with a Gravity Jump", "note": "Charge a shinespark in the bottom of Draygon's room, then Gravity jump up in order to shinespark out of the right door." }, { "id": 3, "name": "Suitless Fight", "note": "Fight Draygon without gravity, but with Morph." }, { "id": 4, "name": "Shinespark Kill", "note": [ "Shinecharge in-room, then horizontally spark through Draygon multiple times.", "It takes 3 Shinesparks if that is the only source of damage onto Draygon.", "Be careful of taking damage at the end of a Shinespark when near walls and on the killing Shinespark." ] }, { "id": 5, "name": "Grapple Kill", "note": [ "Kill Draygon by grappling to the top left turret.", "Number of Draygon hits varies; 5 hits are assumed, which is close to a worst-case scenario." ] }, { "id": 6, "name": "Grapple Quick Kill", "note": [ "Kill Draygon by grappling to a bottom turret as you get grabbed.", "Avoids taking all the hits from Draygon." ] } ], "nextNotableId": 7, "obstacles": [ { "id": "door_1", "name": "door_1" }, { "id": "door_2", "name": "door_2" }, { "id": "f_DefeatedDraygon", "name": "f_DefeatedDraygon" } ] }