canSpikeSuit (Extreme)

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.

Dependencies: canShinechargeMovement, canMidairShinespark, canCarryFlashSuit, canShinechargeMovementComplex, canHorizontalShinespark, canShinespark

Difficulty filter

Strats ()

From: 1
Left Door
To: 1
Left Door

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,
            "steepUpTiles": 1,
            "steepDownTiles": 1,
            "openEnd": 0
          }
        }
      ]
    },
    {
      "canShineCharge": {
        "usedTiles": 18,
        "steepUpTiles": 1,
        "steepDownTiles": 1,
        "openEnd": 0
      }
    }
  ]
}
"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
  }
}
From: 1
Right Door
To: 1
Right Door

Requires:

"canSamusEaterStandUp"
{
  "samusEaterFrames": 160
}
"h_shinechargeMaxRunway"
{
  "thornHits": 1
}
"h_spikeSuitSamusEaterLeniency"
"h_spikeSuitThornHitLeniency"
"canSpikeSuit"
{
  "shinespark": {
    "frames": 5,
    "excessFrames": 5
  }
}
From: 1
Right Door
To: 1
Right Door

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.

From: 2
Right Door
To: 2
Right Door

Requires:

"canSamusEaterStandUp"
{
  "samusEaterFrames": 160
}
"h_shinechargeMaxRunway"
{
  "thornHits": 1
}
"canSpikeSuit"
{
  "shinespark": {
    "frames": 6,
    "excessFrames": 6
  }
}

Dev note: Leniency is not included, since there is a farm available.

From: 2
Right Door
To: 2
Right Door

Requires:

{
  "obstaclesCleared": [
    "A"
  ]
}
"h_shinechargeMaxRunway"
{
  "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: 1
Left Door
To: 1
Left Door

Entrance condition:

{
  "comeInShinecharged": {}
}

Requires:

{
  "shineChargeFrames": 75
}
{
  "thornHits": 1
}
"canSpikeSuit"
{
  "shinespark": {
    "frames": 4,
    "excessFrames": 4
  }
}

Dev note: Leniency is not included, because a farm is available.

Unmorphing on the first possible frame leaves in top position; second frame leaves in middle position.

Entrance condition:

{
  "comeInShinecharged": {}
}

Requires:

"canFlashSuitDoubleSpark"
{
  "shineChargeFrames": 125
}
{
  "thornHits": 1
}
"canSpikeSuit"
{
  "shinespark": {
    "frames": 19
  }
}

Exit condition:

{
  "leaveWithSpark": {
    "position": "top"
  }
}

Unlocks doors:

{"types":["super","powerbomb"],"requires":[]}
{"types":["missiles"],"requires":["never"]}

Entrance condition:

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

Requires:

{
  "thornHits": 1
}
"canSpikeSuit"
{
  "shinespark": {
    "frames": 4,
    "excessFrames": 4
  }
}

Dev note: Leniency is not included, because a farm is available.

Unmorphing on the first possible frame leaves in top position; second frame leaves in middle position.

Entrance condition:

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

Requires:

"canFlashSuitDoubleSpark"
{
  "thornHits": 1
}
"canSpikeSuit"
{
  "shinespark": {
    "frames": 19
  }
}

Exit condition:

{
  "leaveWithSpark": {
    "position": "top"
  }
}

Unlocks doors:

{"types":["super","powerbomb"],"requires":[]}
{"types":["missiles"],"requires":["never"]}

Failing the spikesuit attempt with a spark early by 1 frame will lose the original flash suit. Unmorphing on the first possible frame leaves in top position; second frame leaves in middle position.

Requires:

{
  "useFlashSuit": {}
}
"canFlashSuitDoubleSpark"
"canTrickyCarryFlashSuit"
{
  "thornHits": 1
}
"canSpikeSuit"
{
  "shinespark": {
    "frames": 19
  }
}

Exit condition:

{
  "leaveWithSpark": {
    "position": "top"
  }
}

Requires precise movement. Down-back during the fall to clear the lower platform while shooting out the blocks. Unmorphing on the first possible frame leaves in top position; second frame leaves in middle position.

Entrance condition:

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

Requires:

"canFlashSuitDoubleSpark"
{
  "shineChargeFrames": 175
}
"canDownBack"
"canShinechargeMovementTricky"
{
  "thornHits": 1
}
"canSpikeSuit"
{
  "shinespark": {
    "frames": 19
  }
}

Exit condition:

{
  "leaveWithSpark": {
    "position": "top"
  }
}

Unlocks doors:

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

Dev note: It may be possible to open a green/red door with a super missile but it is on the edge of possibility.

From: 2
Top Right Door
To: 2
Top Right Door

Requires precice movement. Down-back during the fall to clear the lower platform while shooting out the blocks.

Entrance condition:

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

Requires:

{
  "shineChargeFrames": 175
}
"canDownBack"
"canShinechargeMovementTricky"
{
  "thornHits": 1
}
"canSpikeSuit"
{
  "shinespark": {
    "frames": 4,
    "excessFrames": 4
  }
}

Dev note: Leniency is not included, because a farm is available.

From: 3
Bottom Right Door
To: 3
Bottom Right Door

Entrance condition:

{
  "comeInShinecharged": {}
}

Requires:

{
  "shineChargeFrames": 65
}
{
  "thornHits": 1
}
"canSpikeSuit"
{
  "shinespark": {
    "frames": 5,
    "excessFrames": 5
  }
}

Dev note: Leniency is not included, because a farm is available.

Only unmorphing on the first possible frame will work; second frame will bonk the platform.

Entrance condition:

{
  "comeInShinecharged": {}
}

Requires:

"canFlashSuitDoubleSpark"
{
  "shineChargeFrames": 105
}
{
  "thornHits": 1
}
"canSpikeSuit"
{
  "shinespark": {
    "frames": 13
  }
}

Exit condition:

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

Unlocks doors:

{"types":["super","powerbomb"],"requires":[]}
{"types":["missiles"],"requires":["never"]}
From: 3
Bottom Right Door
To: 3
Bottom Right Door

Entrance condition:

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

Requires:

{
  "thornHits": 1
}
"canSpikeSuit"
{
  "shinespark": {
    "frames": 5,
    "excessFrames": 5
  }
}

Dev note: Leniency is not included, because a farm is available.

Only unmorphing on the first possible frame will work; second frame will bonk the platform.

Entrance condition:

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

Requires:

"canFlashSuitDoubleSpark"
{
  "thornHits": 1
}
"canSpikeSuit"
{
  "shinespark": {
    "frames": 13
  }
}

Exit condition:

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

Unlocks doors:

{"types":["super","powerbomb"],"requires":[]}
{"types":["missiles"],"requires":["never"]}
From: 3
Bottom Right Door
To: 3
Bottom Right Door

Failing the spikesuit attempt with a spark early by 1 frame will lose the original flash suit. Only unmorphing on the first possible frame will work; second frame will bonk the platform.

Requires:

{
  "useFlashSuit": {}
}
"canFlashSuitDoubleSpark"
"canTrickyCarryFlashSuit"
{
  "thornHits": 1
}
"canSpikeSuit"
{
  "shinespark": {
    "frames": 13
  }
}

Exit condition:

{
  "leaveWithSpark": {
    "position": "bottom"
  }
}
From: 1
Left Door
To: 1
Left Door

Requires:

{
  "canShineCharge": {
    "usedTiles": 33,
    "gentleUpTiles": 8,
    "gentleDownTiles": 8,
    "steepUpTiles": 2,
    "steepDownTiles": 2,
    "openEnd": 0
  }
}
{
  "spikeHits": 1
}
"canSpikeSuit"
{
  "shinespark": {
    "frames": 3,
    "excessFrames": 3
  }
}

Dev note: 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
  }
}
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.

From: 1
Left Door
To: 1
Left Door

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
      }
    }
  ]
}
{
  "spikeHits": 1
}
"h_spikeSuitSpikeHitLeniency"
"canSpikeSuit"
{
  "shinespark": {
    "frames": 6,
    "excessFrames": 6
  }
}
From: 1
Left Door
To: 1
Left Door

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.

From: 7
Bottom Door
To: 7
Bottom Door

Entrance condition:

{
  "comeInShinecharged": {},
  "comesThroughToilet": "any"
}

Requires:

"f_DefeatedPhantoon"
{
  "shineChargeFrames": 55
}
{
  "thornHits": 1
}
"h_spikeSuitThornHitLeniency"
"canSpikeSuit"
{
  "shinespark": {
    "frames": 1,
    "excessFrames": 1
  }
}
From: 8
Item
To: 8
Item

Requires:

"f_DefeatedPhantoon"
{
  "canShineCharge": {
    "usedTiles": 20,
    "steepDownTiles": 5,
    "openEnd": 0
  }
}
{
  "spikeHits": 1
}
"h_spikeSuitSpikeHitLeniency"
"canSpikeSuit"
{
  "shinespark": {
    "frames": 1,
    "excessFrames": 1
  }
}