The ability to gain a flash suit using spikes or similar damage source. Gain a shinecharge, take a spike hit while morphed, unmorphing either 1 or 2 frames after taking damage. Then press jump to activate a shinespark on the last frame of knockback, 10 frames after taking damage.
Gain a spike suit and shinespark vertically into the spikes, being careful not to turn around or move forward until Samus falls far enough, to avoid additional spike hits. Position the spark as far left as possible, to be able to land on the ledge and avoid acid damage in case of failure. After gaining the spike suit successfully, for extra safety the shinespark can be delayed to wait for the acid tide to go low. Requires: { "obstaclesCleared": [ "B" ] } { "or": [ { "and": [ { "doorUnlockedAtNode": 1 }, { "canShineCharge": { "usedTiles": 19, "openEnd": 0, "steepUpTiles": 1, "steepDownTiles": 1 } } ] }, { "canShineCharge": { "usedTiles": 18, "openEnd": 0, "steepUpTiles": 1, "steepDownTiles": 1 } } ] } "h_runOverRespawningEnemies" { "spikeHits": 1 } "canSpikeSuit" { "shinespark": { "frames": 1, "excessFrames": 1 } } Dev note: Leniency is not included, because there is a farm available. |
From: 3
Right Door, In the Water
To: 3
Right Door, In the Water
Requires: "Gravity" { "canShineCharge": { "usedTiles": 19, "openEnd": 2 } } { "spikeHits": 1 } "h_SpikeSuitSpikeHitLeniency" "canSpikeSuit" { "shinespark": { "frames": 6, "excessFrames": 6 } } |
From: 2
Top Right Door
To: 3
Bottom Left Door
Requires: { "canShineCharge": { "usedTiles": 20, "openEnd": 1 } } "canShinechargeMovementTricky" "canBeVeryPatient" { "thornHits": 1 } "canSpikeSuit" { "shinespark": { "frames": 12, "excessFrames": 12 } } Dev note: The `canBeVeryPatient` is for difficulty placement, as it may be required to get in a single attempt. |
From: 2
Right Door
To: 2
Right Door
Requires: { "or": [ { "canShineCharge": { "usedTiles": 16, "openEnd": 0 } }, { "and": [ { "doorUnlockedAtNode": 2 }, { "canShineCharge": { "usedTiles": 17, "openEnd": 0 } } ] } ] } { "thornHits": 1 } { "or": [ "h_SpikeSuitThornHitLeniency", { "resetRoom": { "nodes": [ 1, 2 ] } } ] } "canSpikeSuit" { "shinespark": { "frames": 5, "excessFrames": 5 } } Dev note: Assuming the room can be reset, leniency is not included because a farm is available. |
From: 4
Top Left Junction
To: 4
Top Left Junction
Requires: { "obstaclesCleared": [ "A" ] } { "obstaclesNotCleared": [ "B" ] } { "canShineCharge": { "usedTiles": 16, "openEnd": 0 } } { "spikeHits": 1 } "h_SpikeSuitSpikeHitLeniency" "canSpikeSuit" { "shinespark": { "frames": 4, "excessFrames": 4 } } |
Requires: "canSamusEaterStandUp" { "samusEaterFrames": 160 } "h_canShineChargeMaxRunway" { "thornHits": 1 } "h_SpikeSuitSamusEaterLeniency" "h_SpikeSuitThornHitLeniency" "canSpikeSuit" { "shinespark": { "frames": 5, "excessFrames": 5 } } |
Requires: { "obstaclesCleared": [ "A" ] } { "obstaclesNotCleared": [ "B" ] } { "canShineCharge": { "usedTiles": 29, "openEnd": 0 } } { "thornHits": 4 } "h_SpikeSuitThornHitLeniency" "canSpikeSuit" { "shinespark": { "frames": 1, "excessFrames": 1 } } Dev note: FIXME: If the Power Bomb blocks are already broken, using a Samus Eater would also be an option; A leaveShinecharged strat could also be added for that. |
Requires: "canSamusEaterStandUp" { "samusEaterFrames": 160 } "h_canShineChargeMaxRunway" { "thornHits": 1 } "canSpikeSuit" { "shinespark": { "frames": 6, "excessFrames": 6 } } Dev note: Leniency is not included, since there is a farm available. |
Requires: { "obstaclesCleared": [ "A" ] } "h_canShineChargeMaxRunway" { "thornHits": 1 } "canSpikeSuit" { "or": [ "h_SpikeSuitThornHitLeniency", { "resetRoom": { "nodes": [ 1, 2 ] } } ] } { "shinespark": { "frames": 1, "excessFrames": 1 } } Clears obstacles: A Dev note: Assuming the room can be reset, leniency is not included because a farm is available. |
From: 4
Central Junction
To: 4
Central Junction
Requires: { "not": "f_DefeatedCrocomire" } "canRiskPermanentLossOfAccess" { "canShineCharge": { "usedTiles": 22, "openEnd": 1 } } { "spikeHits": 1 } "canSpikeSuit" "h_SpikeSuitSpikeHitLeniency" { "shinespark": { "frames": 4, "excessFrames": 4 } } |
Requires: { "canShineCharge": { "usedTiles": 33, "openEnd": 0, "gentleUpTiles": 8, "gentleDownTiles": 8, "steepUpTiles": 2, "steepDownTiles": 2 } } { "spikeHits": 1 } "canSpikeSuit" { "shinespark": { "frames": 3, "excessFrames": 3 } } Dev note: Leniency is not included, because a farm is available. |
From: 2
Bottom Left Door
To: 2
Bottom Left Door
Requires: { "obstaclesCleared": [ "A" ] } { "canShineCharge": { "usedTiles": 20, "gentleDownTiles": 2, "openEnd": 1 } } { "spikeHits": 1 } { "or": [ "h_SpikeSuitSpikeHitLeniency", { "and": [ { "resourceCapacity": [ { "type": "PowerBomb", "count": 1 } ] }, { "resetRoom": { "nodes": [ 2 ] } }, { "or": [ "SpaceJump", "HiJump", "canPreciseWalljump" ] } ] } ] } "canSpikeSuit" { "shinespark": { "frames": 4, "excessFrames": 4 } } Clears obstacles: A |
From: 4
Item
To: 7
Junction By Lower Alcoons (Left of Spike Pits)
Requires: { "obstaclesCleared": [ "A" ] } { "canShineCharge": { "usedTiles": 27, "gentleUpTiles": 2, "openEnd": 1 } } { "spikeHits": 1 } "h_SpikeSuitSpikeHitLeniency" "h_heatProof" "canSpikeSuit" { "shinespark": { "frames": 6, "excessFrames": 6 } } Dev note: FIXME: h_heatProof isn't really required, but we don't yet have a good way to express how spike suit leniency impacts heat frames. FIXME: using the bottom-left runway or a neighboring room would also be possible. |
Requires: "f_DefeatedPhantoon" { "canShineCharge": { "usedTiles": 15, "openEnd": 1 } } { "thornHits": 1 } "h_SpikeSuitThornHitLeniency" "canSpikeSuit" { "shinespark": { "frames": 6, "excessFrames": 6 } } Dev note: FIXME: add a cross-room variation that doesn't require power to be on, as these spikes are still active. |
Requires: { "obstaclesCleared": [ "A" ] } "f_DefeatedPhantoon" { "canShineCharge": { "usedTiles": 20, "openEnd": 0 } } { "thornHits": 1 } "h_SpikeSuitThornHitLeniency" "canSpikeSuit" { "shinespark": { "frames": 2, "excessFrames": 2 } } |
From: 4
Bottom Chozo Item
To: 4
Bottom Chozo Item
Requires: "f_DefeatedPhantoon" { "obstaclesNotCleared": [ "B" ] } { "or": [ { "and": [ { "obstaclesCleared": [ "A" ] }, { "canShineCharge": { "usedTiles": 30, "openEnd": 1 } } ] }, { "canShineCharge": { "usedTiles": 14, "openEnd": 1 } } ] } { "thornHits": 1 } "h_SpikeSuitThornHitLeniency" "canSpikeSuit" { "shinespark": { "frames": 6, "excessFrames": 6 } } |