The leaveWithRunway exit condition represents a lot of different ways of using the runway, matching with many entrance conditions. This is convenient for reducing the need to specify each of these runway uses as a separate strat. However, there could be situations where we want to separate out some different possible uses of the runway and handle them differently.
A possible example is the Mother Brain Room right door. Using this runway for a door stuck setup is more tricky than some other uses of the runway. There are several ways that this could be addressed:
- Keep things how they are, and put a conservative requirement in the leaveWithRunway strat, to accommodate the worst-case possible use of the runway. For example, we could put a
canTrickyDodgeEnemies requirement on the Mother Brain Room runway.
- Add a set of boolean properties to the leaveWithRunway exit condition, to opt out of specific ways of using the runway.
- Add individual exit conditions for each of the ways of using the runway, and redefine
leaveWithRunway as a convenience wrapper for expressing all those exit conditions as options at once.
- A combination of 2 and 3.
The
leaveWithRunwayexit condition represents a lot of different ways of using the runway, matching with many entrance conditions. This is convenient for reducing the need to specify each of these runway uses as a separate strat. However, there could be situations where we want to separate out some different possible uses of the runway and handle them differently.A possible example is the Mother Brain Room right door. Using this runway for a door stuck setup is more tricky than some other uses of the runway. There are several ways that this could be addressed:
canTrickyDodgeEnemiesrequirement on the Mother Brain Room runway.leaveWithRunwayas a convenience wrapper for expressing all those exit conditions as options at once.