Final Missile Bombway

Room ID: 18

Wiki
Difficulty filter

From: 1
Left Door
To: 1
Left Door

Exit condition:

{
  "leaveWithRunway": {
    "length": 4,
    "openEnd": 0
  }
}
From: 1
Left Door
To: 1
Left Door

Requires:

"h_canCrystalFlash"
From: 1
Left Door
To: 2
Right Door

Requires:

{
  "or": [
    "canMidAirMorph",
    "h_canUseSpringBall",
    "h_canBombThings"
  ]
}
From: 1
Left Door
To: 2
Right Door

Tight movement is needed to enter with a shinecharge, carry it through the morph tunnel, and spark out the right door in time.

Entrance condition:

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

Requires:

{
  "notable": "Shinespark"
}
"canMidAirMorph"
"canShinechargeMovementTricky"
{
  "shinespark": {
    "frames": 7
  }
}

Exit condition:

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

Unlocks doors:

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

Dev note: There doesn't appear to be enough time to spark out in a 'top' position.

From: 1
Left Door
To: 2
Right Door

Entrance condition:

{
  "comeInSpeedballing": {
    "runway": {
      "length": 3,
      "openEnd": 0
    },
    "maxExtraRunSpeed": "$3.8"
  }
}

Requires:

"canChainTemporaryBlue"

Exit condition:

{
  "leaveWithTemporaryBlue": {}
}

Unlocks doors:

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

Dev note: Higher speeds could work, up to at least about $4.4, but with greater difficulty.

Unmorph immediately after exiting the tunnel while still descending, to continue chaining temporary blue. The frame window for the unmorph depends on the alignment of Samus' bounces; in the worst case where Samus bounces upward while exiting, this method will unavoidably fail.

Entrance condition:

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

Requires:

"canChainTemporaryBlue"
"canSpringBallBounce"
"canInsaneJump"

Exit condition:

{
  "leaveWithTemporaryBlue": {}
}

Unlocks doors:

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

Dev note: FIXME: The canInsaneJump is for difficulty placement for the unmorph while exiting the tunnel; it may be better to introduce a specific tech for this? Doing a 'canPauseRemorphTemporaryBlue' is technically an alternative, but it seems to be significantly harder.

From: 2
Right Door
To: 1
Left Door

Requires:

"h_canBombThings"
From: 2
Right Door
To: 1
Left Door

Entrance condition:

{
  "comeInSpeedballing": {
    "runway": {
      "length": 3,
      "openEnd": 0
    }
  }
}
From: 2
Right Door
To: 1
Left Door

Entrance condition:

{
  "comeInSpeedballing": {
    "runway": {
      "length": 3,
      "openEnd": 0
    },
    "maxExtraRunSpeed": "$3.8"
  }
}

Requires:

"canChainTemporaryBlue"

Exit condition:

{
  "leaveWithTemporaryBlue": {}
}

Unlocks doors:

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

Dev note: Higher speeds could work, up to at least about $4.4, but with greater difficulty.

From: 2
Right Door
To: 1
Left Door

Entrance condition:

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

Requires:

"canTemporaryBlue"
"canSpringBallBounce"

Dev note: There is 1 unusable tile in this runway.

Entrance condition:

{
  "comeInWithBlueSpringBallBounce": {
    "movementType": "controlled"
  }
}

Requires:

"canInsaneJump"

Entrance condition:

{
  "comeInWithTemporaryBlue": {}
}

Requires:

"canChainTemporaryBlue"
"canSpringBallBounce"

Unmorph immediately after exiting the tunnel while still descending, to continue chaining temporary blue. The frame window for the unmorph depends on the alignment of Samus' bounces; in the worst case where Samus bounces upward while exiting, this method will unavoidably fail.

Entrance condition:

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

Requires:

"canChainTemporaryBlue"
"canSpringBallBounce"
"canInsaneJump"

Exit condition:

{
  "leaveWithTemporaryBlue": {}
}

Unlocks doors:

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

Dev note: FIXME: The canInsaneJump is for difficulty placement for the unmorph while exiting the tunnel; it may be better to introduce a specific tech for this? Doing a 'canPauseRemorphTemporaryBlue' is technically an alternative, but it seems to be significantly harder.

From: 2
Right Door
To: 1
Left Door

Repeatedly bomb the crumble blocks until the PLMs are overloaded.

Entrance condition:

{
  "comeInWithGMode": {
    "mode": "any",
    "morphed": true
  }
}

Requires:

"h_canArtificialMorphBombs"
From: 2
Right Door
To: 1
Left Door

Entrance condition:

{
  "comeInWithGrappleTeleport": {
    "blockPositions": [
      [
        5,
        3
      ],
      [
        7,
        2
      ]
    ]
  }
}
From: 2
Right Door
To: 1
Left Door

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

From: 2
Right Door
To: 2
Right Door

Exit condition:

{
  "leaveWithRunway": {
    "length": 4,
    "openEnd": 0
  }
}
From: 2
Right Door
To: 2
Right Door

Requires:

"h_canCrystalFlash"

{
  "$schema": "../../../schema/m3-room.schema.json",
  "id": 18,
  "name": "Final Missile Bombway",
  "area": "Crateria",
  "subarea": "Central",
  "roomAddress": "0x79A44",
  "roomEnvironments": [
    {
      "heated": false
    }
  ],
  "mapTileMask": [
    [
      1,
      1
    ]
  ],
  "nodes": [
    {
      "id": 1,
      "name": "Left Door",
      "nodeType": "door",
      "nodeSubType": "blue",
      "nodeAddress": "0x0018c82",
      "doorOrientation": "left",
      "doorEnvironments": [
        {
          "physics": "air"
        }
      ],
      "mapTileMask": [
        [
          2,
          1
        ]
      ]
    },
    {
      "id": 2,
      "name": "Right Door",
      "nodeType": "door",
      "nodeSubType": "blue",
      "nodeAddress": "0x0018c8e",
      "doorOrientation": "right",
      "doorEnvironments": [
        {
          "physics": "air"
        }
      ],
      "mapTileMask": [
        [
          1,
          2
        ]
      ]
    }
  ],
  "enemies": [],
  "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": 4,
          "openEnd": 0
        }
      }
    },
    {
      "id": 2,
      "link": [
        1,
        1
      ],
      "name": "Crystal Flash",
      "requires": [
        "h_canCrystalFlash"
      ],
      "flashSuitChecked": true
    },
    {
      "id": 3,
      "link": [
        1,
        2
      ],
      "name": "Base",
      "requires": [
        {
          "or": [
            "canMidAirMorph",
            "h_canUseSpringBall",
            "h_canBombThings"
          ]
        }
      ]
    },
    {
      "id": 4,
      "link": [
        1,
        2
      ],
      "name": "Shinespark",
      "entranceCondition": {
        "comeInShinecharging": {
          "length": 2,
          "openEnd": 0
        }
      },
      "requires": [
        {
          "notable": "Shinespark"
        },
        "canMidAirMorph",
        "canShinechargeMovementTricky",
        {
          "shinespark": {
            "frames": 7
          }
        }
      ],
      "exitCondition": {
        "leaveWithSpark": {
          "position": "bottom"
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "super"
          ],
          "requires": []
        },
        {
          "types": [
            "missiles",
            "powerbomb"
          ],
          "requires": [
            "never"
          ]
        }
      ],
      "note": "Tight movement is needed to enter with a shinecharge, carry it through the morph tunnel, and spark out the right door in time.",
      "devNote": "There doesn't appear to be enough time to spark out in a 'top' position."
    },
    {
      "id": 17,
      "link": [
        1,
        2
      ],
      "name": "Come in Speedballing, Leave With Temporary Blue",
      "entranceCondition": {
        "comeInSpeedballing": {
          "runway": {
            "length": 3,
            "openEnd": 0
          },
          "maxExtraRunSpeed": "$3.8"
        }
      },
      "requires": [
        "canChainTemporaryBlue"
      ],
      "exitCondition": {
        "leaveWithTemporaryBlue": {}
      },
      "unlocksDoors": [
        {
          "types": [
            "ammo"
          ],
          "requires": []
        }
      ],
      "devNote": [
        "Higher speeds could work, up to at least about $4.4, but with greater difficulty."
      ]
    },
    {
      "id": 18,
      "link": [
        1,
        2
      ],
      "name": "Come in Shinecharging, Leave With Temporary Blue (Spring Ball Bounce)",
      "entranceCondition": {
        "comeInShinecharging": {
          "length": 2,
          "openEnd": 0
        }
      },
      "requires": [
        "canChainTemporaryBlue",
        "canSpringBallBounce",
        "canInsaneJump"
      ],
      "exitCondition": {
        "leaveWithTemporaryBlue": {}
      },
      "unlocksDoors": [
        {
          "types": [
            "ammo"
          ],
          "requires": []
        }
      ],
      "note": [
        "Unmorph immediately after exiting the tunnel while still descending, to continue chaining temporary blue.",
        "The frame window for the unmorph depends on the alignment of Samus' bounces;",
        "in the worst case where Samus bounces upward while exiting, this method will unavoidably fail."
      ],
      "devNote": [
        "FIXME: The canInsaneJump is for difficulty placement for the unmorph while exiting the tunnel;",
        "it may be better to introduce a specific tech for this?",
        "Doing a 'canPauseRemorphTemporaryBlue' is technically an alternative, but it seems to be significantly harder."
      ]
    },
    {
      "id": 5,
      "link": [
        2,
        1
      ],
      "name": "Base",
      "requires": [
        "h_canBombThings"
      ]
    },
    {
      "id": 6,
      "link": [
        2,
        1
      ],
      "name": "Speedball",
      "entranceCondition": {
        "comeInSpeedballing": {
          "runway": {
            "length": 3,
            "openEnd": 0
          }
        }
      },
      "requires": []
    },
    {
      "id": 19,
      "link": [
        2,
        1
      ],
      "name": "Come in Speedballing, Leave With Temporary Blue",
      "entranceCondition": {
        "comeInSpeedballing": {
          "runway": {
            "length": 3,
            "openEnd": 0
          },
          "maxExtraRunSpeed": "$3.8"
        }
      },
      "requires": [
        "canChainTemporaryBlue"
      ],
      "exitCondition": {
        "leaveWithTemporaryBlue": {}
      },
      "unlocksDoors": [
        {
          "types": [
            "ammo"
          ],
          "requires": []
        }
      ],
      "devNote": [
        "Higher speeds could work, up to at least about $4.4, but with greater difficulty."
      ]
    },
    {
      "id": 7,
      "link": [
        2,
        1
      ],
      "name": "Temporary Blue Bounce (Come in Shinecharging)",
      "entranceCondition": {
        "comeInShinecharging": {
          "length": 2,
          "openEnd": 0
        }
      },
      "requires": [
        "canTemporaryBlue",
        "canSpringBallBounce"
      ],
      "flashSuitChecked": true,
      "devNote": "There is 1 unusable tile in this runway."
    },
    {
      "id": 8,
      "link": [
        2,
        1
      ],
      "name": "Temporary Blue Bounce (Come in With Blue Spring Ball Bounce)",
      "entranceCondition": {
        "comeInWithBlueSpringBallBounce": {
          "movementType": "controlled"
        }
      },
      "requires": [
        "canInsaneJump"
      ]
    },
    {
      "id": 9,
      "link": [
        2,
        1
      ],
      "name": "Temporary Blue Bounce (Come in With Temporary Blue)",
      "entranceCondition": {
        "comeInWithTemporaryBlue": {}
      },
      "requires": [
        "canChainTemporaryBlue",
        "canSpringBallBounce"
      ],
      "flashSuitChecked": true
    },
    {
      "id": 20,
      "link": [
        2,
        1
      ],
      "name": "Come in Shinecharging, Leave With Temporary Blue (Spring Ball Bounce)",
      "entranceCondition": {
        "comeInShinecharging": {
          "length": 2,
          "openEnd": 0
        }
      },
      "requires": [
        "canChainTemporaryBlue",
        "canSpringBallBounce",
        "canInsaneJump"
      ],
      "exitCondition": {
        "leaveWithTemporaryBlue": {}
      },
      "unlocksDoors": [
        {
          "types": [
            "ammo"
          ],
          "requires": []
        }
      ],
      "note": [
        "Unmorph immediately after exiting the tunnel while still descending, to continue chaining temporary blue.",
        "The frame window for the unmorph depends on the alignment of Samus' bounces;",
        "in the worst case where Samus bounces upward while exiting, this method will unavoidably fail."
      ],
      "devNote": [
        "FIXME: The canInsaneJump is for difficulty placement for the unmorph while exiting the tunnel;",
        "it may be better to introduce a specific tech for this?",
        "Doing a 'canPauseRemorphTemporaryBlue' is technically an alternative, but it seems to be significantly harder."
      ]
    },
    {
      "id": 10,
      "link": [
        2,
        1
      ],
      "name": "G-mode Morph with Bombs",
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "any",
          "morphed": true
        }
      },
      "requires": [
        "h_canArtificialMorphBombs"
      ],
      "flashSuitChecked": true,
      "note": "Repeatedly bomb the crumble blocks until the PLMs are overloaded."
    },
    {
      "id": 11,
      "link": [
        2,
        1
      ],
      "name": "Grapple Teleport",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              5,
              3
            ],
            [
              7,
              2
            ]
          ]
        }
      },
      "requires": []
    },
    {
      "id": 12,
      "link": [
        2,
        1
      ],
      "name": "Grapple Teleport Door Lock Skip",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              3,
              12
            ],
            [
              3,
              13
            ]
          ]
        }
      },
      "requires": [],
      "bypassesDoorShell": true
    },
    {
      "id": 13,
      "link": [
        2,
        1
      ],
      "name": "Carry Grapple Teleport (Top Position)",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              3,
              12
            ]
          ]
        }
      },
      "requires": [],
      "exitCondition": {
        "leaveWithGrappleTeleport": {
          "blockPositions": [
            [
              3,
              12
            ]
          ]
        }
      },
      "bypassesDoorShell": true
    },
    {
      "id": 14,
      "link": [
        2,
        1
      ],
      "name": "Carry Grapple Teleport (Bottom Position)",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              3,
              13
            ]
          ]
        }
      },
      "requires": [],
      "exitCondition": {
        "leaveWithGrappleTeleport": {
          "blockPositions": [
            [
              3,
              13
            ]
          ]
        }
      },
      "bypassesDoorShell": true
    },
    {
      "id": 15,
      "link": [
        2,
        2
      ],
      "name": "Leave with Runway",
      "requires": [],
      "exitCondition": {
        "leaveWithRunway": {
          "length": 4,
          "openEnd": 0
        }
      }
    },
    {
      "id": 16,
      "link": [
        2,
        2
      ],
      "name": "Crystal Flash",
      "requires": [
        "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": []
    },
    {
      "link": [
        2,
        2
      ],
      "name": "Base (Unlock Door)",
      "requires": [],
      "unlocksDoors": [
        {
          "types": [
            "ammo"
          ],
          "requires": []
        }
      ]
    },
    {
      "link": [
        2,
        2
      ],
      "name": "Base (Come In Normally)",
      "entranceCondition": {
        "comeInNormally": {}
      },
      "requires": []
    }
  ],
  "notables": [
    {
      "id": 1,
      "name": "Shinespark",
      "note": "Tight movement is needed to enter with a shinecharge, carry it through the morph tunnel, and spark out the right door in time."
    }
  ],
  "nextStratId": 21,
  "nextNotableId": 2
}