vg-json-data / sm-json-data

JSON representations of Super Metroid Game Data
Other
23 stars 11 forks source link

Exit/entrance condition for jumping up blue through door #1561

Open blkerby opened 2 weeks ago

blkerby commented 2 weeks ago

Currently we have a comeInJumping condition which assumes a jump immediately before the door; this is normally used to gain extra height going into water rooms. And on the other hand we have comeInBlueSpinning which represents coming in with blue speed with downward or neutral vertical speed.

A case that is missing is coming in blue with upward speed. This could be done with a connected runway, or with a remote runway from certain places like Dust Torizo room; it could also potentially match with leaveSpaceJumping exit conditions. This type of condition is complicated to model because applications could depend on the vertical position through the transition as well as the horizontal and vertical speed. Alternatively it could be modeled in terms of the geometry in the exiting room: the height of the platform that you jump from, its horizontal position relative to the door, the runway available before the jump. Whether HiJump is equipped can also matter, though with the geometry approach that could just be a regular logical requirement on the entrance strat. What we want is possibly a lot like leaveWithPlatformBelow but for horizontal transitions rather than vertical ones.

One application is getting a speedball after jumping into Brinstar Pre-Map Room from the left. Even in the best-case scenario, it's an insanely precise trick (possibly Beyond?); it needs a combination of low horizontal speed with a high entry through the door (followed by incredibly quick speedball inputs). So we need a way to set up exit/entrance conditions that can take into account constraints like this.