Skip to content

High/low transitions #2185

@blkerby

Description

@blkerby

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 comeInRunning entrance 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions