-
Notifications
You must be signed in to change notification settings - Fork 17
Description
There are a couple type of strats that can exit through a horizontal door with Samus in an unusual position:
- Grapple clip door lock bypasses: Samus will be placed unusually high in the next room.
- Very deep stuck X-ray climb: Samus may be placed unusually low in the next room, e.g. by touching the bottom transition tile with Samus' head. Typically this is controllable where you could climb to a desired height before touching the transition.
Currently these possibilities are ignored in the logic. However, there are some cases where entering in a high position should come with logical requirements:
- Most commonly, if entering a heated room, spawning unusually high could cost some extra heat frames.
- Grapple clipping into the right of Shaktool's Room results in an unavoidable snail hit.
There are also some cases where spawning in a low position could have a logical benefit: in Beta Power Bomb Room, a low-position entry can allow Samus to bypass the Power Bomb blocks (like in this bobbob video: https://www.youtube.com/watch?v=uW5IkhUIE9s).
We should probably add a new exit/entrance condition pair to model Samus' position through the transition. We could follow the approach of leaveWithSpark/comeInWithSpark by specifying a position using a string/enum; alternatively we could measure possible/allowed positions precisely using numeric ranges, though that might be overkill for what is relevant to model. For the high-position entry, we could probably use some implicit entrance strat that comes in and does nothing (or maybe has some default extra heat frames in case of a heated room), similar to what we did with the implicit comeInWithMockball strats; and then those implicit strats could be overridden in cases where there is a different logical requirement, such as in Shaktool's Room.
Some other techniques that put Samus in an usual position but are probably out of scope for this issue:
- Vileplume teleports: these are already modeled in their own specific way.
- Grapple teleports: this is technically different since the teleport happens after the transition, but in any case is already handled.
- Deep transition: using an unpause or high speed to spawn further from the door. These are already modeled using a
comeInRunningentrance condition, which seems to work fine. - Touching a transition tile from the wrong side (resulting in Samus being placed almost a whole screen behind the door)
- Normally this would put you OOB in the next room, but there might be some scenarios where it's in-bounds and possible to do something useful, e.g. by X-Ray climbing, so we might consider modeling it at some point.
- Examples of how to trigger a wrong-side transition:
- Getting into a space behind a door, e.g. in West Ocean or Plasma Spark Room.
- Combining a shinespark with an unpause deep transition.
- Touching the hidden transition tile on the left side of Plasma Spark Room, using a grapple teleport.