Pre-Map Flyway

Room ID: 14

Wiki
Difficulty filter

From: 1
Left Door
To: 1
Left Door

Exit condition:

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

Exit condition:

{
  "leaveSpinning": {
    "remoteRunway": {
      "length": 5,
      "openEnd": 1
    },
    "minExtraRunSpeed": "$1.5"
  }
}

Dev note: Leaving with lower speed (e.g. $1.2) is possible with SpeedBooster equipped; not sure if this matters for anything though.

From: 1
Left Door
To: 1
Left Door

Exit condition:

{
  "leaveWithMockball": {
    "remoteRunway": {
      "length": 5,
      "openEnd": 1
    },
    "landingRunway": {
      "length": 3,
      "openEnd": 1
    }
  }
}
From: 1
Left Door
To: 1
Left Door

Exit condition:

{
  "leaveWithSpringBallBounce": {
    "remoteRunway": {
      "length": 5,
      "openEnd": 1
    },
    "landingRunway": {
      "length": 2,
      "openEnd": 1
    },
    "movementType": "uncontrolled"
  }
}

Dev note: One tile of landing runway is unusable; it could be used with a shorter remoteRunway, but there's no application yet.

From: 1
Left Door
To: 1
Left Door

Exit condition:

{
  "leaveSpaceJumping": {
    "remoteRunway": {
      "length": 5,
      "openEnd": 1
    }
  }
}
From: 1
Left Door
To: 1
Left Door

Crouch in the position the Mellow will need to be frozen, then move down the stairs to get it to move low enough into the right spot.

The Mellow moves 4 pixels per frame, so if it needed for a stutter shinecharge, it is possible that a given swoop will skip a usable pixel.

Requires:

"canManipulateMellas"
"h_frozenEnemyRunway"
"canInsaneJump"

Exit condition:

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

Dev note: FIXME: It is possible to exend the runway further by keeping a half-tile gap, or using a Reo, both of which would be somewhat tricky to position precisely.

From: 1
Left Door
To: 1
Left Door

Requires:

{
  "or": [
    {
      "resetRoom": {
        "nodes": [
          1
        ]
      }
    },
    {
      "and": [
        {
          "resetRoom": {
            "nodes": [
              2
            ]
          }
        },
        {
          "cycleFrames": 60
        }
      ]
    }
  ]
}
{
  "or": [
    {
      "and": [
        "canDash",
        {
          "or": [
            {
              "and": [
                "Plasma",
                {
                  "cycleFrames": 330
                }
              ]
            },
            {
              "and": [
                "Wave",
                {
                  "cycleFrames": 355
                }
              ]
            },
            {
              "and": [
                "ScrewAttack",
                {
                  "cycleFrames": 355
                }
              ]
            },
            {
              "and": [
                "Spazer",
                {
                  "cycleFrames": 360
                }
              ]
            },
            {
              "cycleFrames": 390
            }
          ]
        }
      ]
    },
    {
      "and": [
        {
          "haveBlueSuit": {}
        },
        {
          "cycleFrames": 530
        }
      ]
    }
  ]
}

Farm cycle drops: 1 Reo, 3 Mellow

From: 1
Left Door
To: 1
Left Door

Requires:

"h_CrystalFlash"
From: 1
Left Door
To: 1
Left Door

Exit condition:

{
  "leaveWithGModeSetup": {}
}
From: 1
Left Door
To: 2
Right Door

From: 1
Left Door
To: 2
Right Door

Entrance condition:

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

Requires:

"canLongChainTemporaryBlue"

Exit condition:

{
  "leaveWithTemporaryBlue": {}
}

Unlocks doors:

{"types":["ammo"],"requires":[]}
From: 2
Right Door
To: 1
Left Door

From: 2
Right Door
To: 1
Left Door

Entrance condition:

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

Requires:

"canLongChainTemporaryBlue"

Exit condition:

{
  "leaveWithTemporaryBlue": {}
}

Unlocks doors:

{"types":["ammo"],"requires":[]}
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": 3,
    "openEnd": 1
  }
}
From: 2
Right Door
To: 2
Right Door

Exit condition:

{
  "leaveSpinning": {
    "remoteRunway": {
      "length": 5,
      "openEnd": 1
    },
    "minExtraRunSpeed": "$1.5"
  }
}
From: 2
Right Door
To: 2
Right Door

Exit condition:

{
  "leaveWithMockball": {
    "remoteRunway": {
      "length": 5,
      "openEnd": 1
    },
    "landingRunway": {
      "length": 3,
      "openEnd": 1
    }
  }
}
From: 2
Right Door
To: 2
Right Door

Exit condition:

{
  "leaveWithSpringBallBounce": {
    "remoteRunway": {
      "length": 5,
      "openEnd": 1
    },
    "landingRunway": {
      "length": 3,
      "openEnd": 1
    },
    "movementType": "uncontrolled"
  }
}
From: 2
Right Door
To: 2
Right Door

Exit condition:

{
  "leaveSpaceJumping": {
    "remoteRunway": {
      "length": 5,
      "openEnd": 1
    }
  }
}
From: 2
Right Door
To: 2
Right Door

Crouch in the position the Mellow will need to be frozen, then move down the stairs to get it to move low enough into the right spot.

The Mellow moves 4 pixels per frame, so if it needed for a stutter shinecharge, it is possible that a given swoop will skip a usable pixel.

Requires:

"canManipulateMellas"
"h_frozenEnemyRunway"
"canInsaneJump"

Exit condition:

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

Dev note: FIXME: It is possible to exend the runway further by keeping a half-tile gap, or using a Reo, both of which would be somewhat tricky to position precisely.

From: 2
Right Door
To: 2
Right Door

Exit condition:

{
  "leaveWithGModeSetup": {}
}

{
  "$schema": "../../../schema/m3-room.schema.json",
  "id": 14,
  "name": "Pre-Map Flyway",
  "area": "Crateria",
  "subarea": "Central",
  "roomAddress": "0x798E2",
  "roomEnvironments": [
    {
      "heated": false
    }
  ],
  "mapTileMask": [
    [
      1,
      1,
      1
    ]
  ],
  "nodes": [
    {
      "id": 1,
      "name": "Left Door",
      "nodeType": "door",
      "nodeSubType": "blue",
      "nodeAddress": "0x0018bce",
      "doorOrientation": "left",
      "doorEnvironments": [
        {
          "physics": "air"
        }
      ],
      "mapTileMask": [
        [
          2,
          2,
          1
        ]
      ]
    },
    {
      "id": 2,
      "name": "Right Door",
      "nodeType": "door",
      "nodeSubType": "blue",
      "nodeAddress": "0x0018bda",
      "doorOrientation": "right",
      "doorEnvironments": [
        {
          "physics": "air"
        }
      ],
      "mapTileMask": [
        [
          1,
          1,
          2
        ]
      ]
    }
  ],
  "enemies": [
    {
      "id": "e1",
      "groupName": "Pre-Map Flyway Mellows",
      "enemyName": "Mellow",
      "quantity": 3,
      "homeNodes": [
        1,
        2
      ]
    },
    {
      "id": "e2",
      "groupName": "Pre-Map Flyway Reo",
      "enemyName": "Reo",
      "quantity": 1,
      "homeNodes": [
        1,
        2
      ]
    }
  ],
  "strats": [
    {
      "link": [
        1,
        1
      ],
      "name": "Base (Unlock Door)",
      "requires": [],
      "unlocksDoors": [
        {
          "types": [
            "ammo"
          ],
          "requires": []
        }
      ],
      "flashSuitChecked": true,
      "blueSuitChecked": true
    },
    {
      "link": [
        1,
        1
      ],
      "name": "Base (Come In Normally)",
      "entranceCondition": {
        "comeInNormally": {}
      },
      "requires": [],
      "flashSuitChecked": true,
      "blueSuitChecked": true
    },
    {
      "link": [
        1,
        1
      ],
      "name": "Base (Come In With Mockball)",
      "entranceCondition": {
        "comeInWithMockball": {
          "adjacentMinTiles": 0,
          "remoteAndLandingMinTiles": [
            [
              0,
              0
            ]
          ],
          "speedBooster": "any"
        }
      },
      "requires": [],
      "flashSuitChecked": true,
      "blueSuitChecked": true
    },
    {
      "link": [
        2,
        2
      ],
      "name": "Base (Unlock Door)",
      "requires": [],
      "unlocksDoors": [
        {
          "types": [
            "ammo"
          ],
          "requires": []
        }
      ],
      "flashSuitChecked": true,
      "blueSuitChecked": true
    },
    {
      "link": [
        2,
        2
      ],
      "name": "Base (Come In Normally)",
      "entranceCondition": {
        "comeInNormally": {}
      },
      "requires": [],
      "flashSuitChecked": true,
      "blueSuitChecked": true
    },
    {
      "link": [
        2,
        2
      ],
      "name": "Base (Come In With Mockball)",
      "entranceCondition": {
        "comeInWithMockball": {
          "adjacentMinTiles": 0,
          "remoteAndLandingMinTiles": [
            [
              0,
              0
            ]
          ],
          "speedBooster": "any"
        }
      },
      "requires": [],
      "flashSuitChecked": true,
      "blueSuitChecked": true
    },
    {
      "id": 1,
      "link": [
        1,
        1
      ],
      "name": "Leave with Runway",
      "requires": [],
      "exitCondition": {
        "leaveWithRunway": {
          "length": 3,
          "openEnd": 1
        }
      },
      "flashSuitChecked": true,
      "blueSuitChecked": true
    },
    {
      "id": 2,
      "link": [
        1,
        1
      ],
      "name": "Leave Spinning",
      "requires": [],
      "exitCondition": {
        "leaveSpinning": {
          "remoteRunway": {
            "length": 5,
            "openEnd": 1
          },
          "minExtraRunSpeed": "$1.5"
        }
      },
      "flashSuitChecked": true,
      "blueSuitChecked": true,
      "devNote": "Leaving with lower speed (e.g. $1.2) is possible with SpeedBooster equipped; not sure if this matters for anything though."
    },
    {
      "id": 3,
      "link": [
        1,
        1
      ],
      "name": "Leave With Mockball",
      "requires": [],
      "exitCondition": {
        "leaveWithMockball": {
          "remoteRunway": {
            "length": 5,
            "openEnd": 1
          },
          "landingRunway": {
            "length": 3,
            "openEnd": 1
          }
        }
      },
      "flashSuitChecked": true,
      "blueSuitChecked": true
    },
    {
      "id": 4,
      "link": [
        1,
        1
      ],
      "name": "Leave With Spring Ball Bounce",
      "requires": [],
      "exitCondition": {
        "leaveWithSpringBallBounce": {
          "remoteRunway": {
            "length": 5,
            "openEnd": 1
          },
          "landingRunway": {
            "length": 2,
            "openEnd": 1
          },
          "movementType": "uncontrolled"
        }
      },
      "flashSuitChecked": true,
      "blueSuitChecked": true,
      "devNote": [
        "One tile of landing runway is unusable; it could be used with a shorter remoteRunway, but there's no application yet."
      ]
    },
    {
      "id": 5,
      "link": [
        1,
        1
      ],
      "name": "Leave Space Jumping",
      "requires": [],
      "exitCondition": {
        "leaveSpaceJumping": {
          "remoteRunway": {
            "length": 5,
            "openEnd": 1
          }
        }
      },
      "flashSuitChecked": true,
      "blueSuitChecked": true
    },
    {
      "id": 24,
      "link": [
        1,
        1
      ],
      "name": "Leave With Runway - Frozen Mellow",
      "requires": [
        "canManipulateMellas",
        "h_frozenEnemyRunway",
        "canInsaneJump"
      ],
      "exitCondition": {
        "leaveWithRunway": {
          "length": 4,
          "openEnd": 1
        }
      },
      "flashSuitChecked": true,
      "blueSuitChecked": true,
      "note": [
        "Crouch in the position the Mellow will need to be frozen, then move down the stairs to get it to move low enough into the right spot."
      ],
      "detailNote": [
        "The Mellow moves 4 pixels per frame, so if it needed for a stutter shinecharge, it is possible that a given swoop will skip a usable pixel."
      ],
      "devNote": "FIXME: It is possible to exend the runway further by keeping a half-tile gap, or using a Reo, both of which would be somewhat tricky to position precisely."
    },
    {
      "id": 6,
      "link": [
        1,
        1
      ],
      "name": "Mellow and Reo Farm",
      "requires": [
        {
          "or": [
            {
              "resetRoom": {
                "nodes": [
                  1
                ]
              }
            },
            {
              "and": [
                {
                  "resetRoom": {
                    "nodes": [
                      2
                    ]
                  }
                },
                {
                  "cycleFrames": 60
                }
              ]
            }
          ]
        },
        {
          "or": [
            {
              "and": [
                "canDash",
                {
                  "or": [
                    {
                      "and": [
                        "Plasma",
                        {
                          "cycleFrames": 330
                        }
                      ]
                    },
                    {
                      "and": [
                        "Wave",
                        {
                          "cycleFrames": 355
                        }
                      ]
                    },
                    {
                      "and": [
                        "ScrewAttack",
                        {
                          "cycleFrames": 355
                        }
                      ]
                    },
                    {
                      "and": [
                        "Spazer",
                        {
                          "cycleFrames": 360
                        }
                      ]
                    },
                    {
                      "cycleFrames": 390
                    }
                  ]
                }
              ]
            },
            {
              "and": [
                {
                  "haveBlueSuit": {}
                },
                {
                  "cycleFrames": 530
                }
              ]
            }
          ]
        }
      ],
      "farmCycleDrops": [
        {
          "enemy": "Reo",
          "count": 1
        },
        {
          "enemy": "Mellow",
          "count": 3
        }
      ],
      "flashSuitChecked": true,
      "blueSuitChecked": true
    },
    {
      "id": 7,
      "link": [
        1,
        1
      ],
      "name": "Crystal Flash",
      "requires": [
        "h_CrystalFlash"
      ],
      "flashSuitChecked": true,
      "blueSuitChecked": true
    },
    {
      "id": 8,
      "link": [
        1,
        1
      ],
      "name": "G-Mode Setup - Get Hit By Mellow",
      "requires": [],
      "exitCondition": {
        "leaveWithGModeSetup": {}
      },
      "flashSuitChecked": true,
      "blueSuitChecked": true
    },
    {
      "id": 9,
      "link": [
        1,
        2
      ],
      "name": "Base",
      "requires": [],
      "flashSuitChecked": true,
      "blueSuitChecked": true
    },
    {
      "id": 10,
      "link": [
        1,
        2
      ],
      "name": "Come in Shinecharging, Leave With Temporary Blue",
      "entranceCondition": {
        "comeInShinecharging": {
          "length": 2,
          "openEnd": 0
        }
      },
      "requires": [
        "canLongChainTemporaryBlue"
      ],
      "exitCondition": {
        "leaveWithTemporaryBlue": {}
      },
      "unlocksDoors": [
        {
          "types": [
            "ammo"
          ],
          "requires": []
        }
      ],
      "flashSuitChecked": true,
      "blueSuitChecked": true
    },
    {
      "id": 11,
      "link": [
        2,
        1
      ],
      "name": "Base",
      "requires": [],
      "flashSuitChecked": true,
      "blueSuitChecked": true
    },
    {
      "id": 12,
      "link": [
        2,
        1
      ],
      "name": "Come in Shinecharging, Leave With Temporary Blue",
      "entranceCondition": {
        "comeInShinecharging": {
          "length": 2,
          "openEnd": 0
        }
      },
      "requires": [
        "canLongChainTemporaryBlue"
      ],
      "exitCondition": {
        "leaveWithTemporaryBlue": {}
      },
      "unlocksDoors": [
        {
          "types": [
            "ammo"
          ],
          "requires": []
        }
      ],
      "flashSuitChecked": true,
      "blueSuitChecked": true
    },
    {
      "id": 13,
      "link": [
        2,
        1
      ],
      "name": "Grapple Teleport Door Lock Skip",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              3,
              12
            ],
            [
              3,
              13
            ]
          ]
        }
      },
      "requires": [],
      "bypassesDoorShell": "yes",
      "flashSuitChecked": true,
      "blueSuitChecked": true
    },
    {
      "id": 14,
      "link": [
        2,
        1
      ],
      "name": "Carry Grapple Teleport (Top Position)",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              3,
              12
            ]
          ]
        }
      },
      "requires": [],
      "exitCondition": {
        "leaveWithGrappleTeleport": {
          "blockPositions": [
            [
              3,
              12
            ]
          ]
        }
      },
      "bypassesDoorShell": "yes",
      "flashSuitChecked": true,
      "blueSuitChecked": true
    },
    {
      "id": 15,
      "link": [
        2,
        1
      ],
      "name": "Carry Grapple Teleport (Bottom Position)",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              3,
              13
            ]
          ]
        }
      },
      "requires": [],
      "exitCondition": {
        "leaveWithGrappleTeleport": {
          "blockPositions": [
            [
              3,
              13
            ]
          ]
        }
      },
      "bypassesDoorShell": "yes",
      "flashSuitChecked": true,
      "blueSuitChecked": true
    },
    {
      "id": 16,
      "link": [
        2,
        2
      ],
      "name": "Leave with Runway",
      "requires": [],
      "exitCondition": {
        "leaveWithRunway": {
          "length": 3,
          "openEnd": 1
        }
      },
      "flashSuitChecked": true,
      "blueSuitChecked": true
    },
    {
      "id": 17,
      "link": [
        2,
        2
      ],
      "name": "Leave Spinning",
      "requires": [],
      "exitCondition": {
        "leaveSpinning": {
          "remoteRunway": {
            "length": 5,
            "openEnd": 1
          },
          "minExtraRunSpeed": "$1.5"
        }
      },
      "flashSuitChecked": true,
      "blueSuitChecked": true
    },
    {
      "id": 18,
      "link": [
        2,
        2
      ],
      "name": "Leave With Mockball",
      "requires": [],
      "exitCondition": {
        "leaveWithMockball": {
          "remoteRunway": {
            "length": 5,
            "openEnd": 1
          },
          "landingRunway": {
            "length": 3,
            "openEnd": 1
          }
        }
      },
      "flashSuitChecked": true,
      "blueSuitChecked": true
    },
    {
      "id": 19,
      "link": [
        2,
        2
      ],
      "name": "Leave With Spring Ball Bounce",
      "requires": [],
      "exitCondition": {
        "leaveWithSpringBallBounce": {
          "remoteRunway": {
            "length": 5,
            "openEnd": 1
          },
          "landingRunway": {
            "length": 3,
            "openEnd": 1
          },
          "movementType": "uncontrolled"
        }
      },
      "flashSuitChecked": true,
      "blueSuitChecked": true
    },
    {
      "id": 20,
      "link": [
        2,
        2
      ],
      "name": "Leave Space Jumping",
      "requires": [],
      "exitCondition": {
        "leaveSpaceJumping": {
          "remoteRunway": {
            "length": 5,
            "openEnd": 1
          }
        }
      },
      "flashSuitChecked": true,
      "blueSuitChecked": true
    },
    {
      "id": 25,
      "link": [
        2,
        2
      ],
      "name": "Leave With Runway - Frozen Mellow",
      "requires": [
        "canManipulateMellas",
        "h_frozenEnemyRunway",
        "canInsaneJump"
      ],
      "exitCondition": {
        "leaveWithRunway": {
          "length": 4,
          "openEnd": 1
        }
      },
      "flashSuitChecked": true,
      "blueSuitChecked": true,
      "note": [
        "Crouch in the position the Mellow will need to be frozen, then move down the stairs to get it to move low enough into the right spot."
      ],
      "detailNote": [
        "The Mellow moves 4 pixels per frame, so if it needed for a stutter shinecharge, it is possible that a given swoop will skip a usable pixel."
      ],
      "devNote": "FIXME: It is possible to exend the runway further by keeping a half-tile gap, or using a Reo, both of which would be somewhat tricky to position precisely."
    },
    {
      "id": 21,
      "link": [
        2,
        2
      ],
      "name": "G-Mode Setup - Get Hit By Mellow",
      "requires": [],
      "exitCondition": {
        "leaveWithGModeSetup": {}
      },
      "flashSuitChecked": true,
      "blueSuitChecked": true
    }
  ],
  "notables": [],
  "nextStratId": 26,
  "nextNotableId": 1
}