vg-json-data / sm-json-data

JSON representations of Super Metroid Game Data
Other
26 stars 12 forks source link

Schemas to support flash suit logic #1497

Closed blkerby closed 5 months ago

blkerby commented 5 months ago

This lays down the schema support needed to encode flash suit logic, along with some examples:

The idea is that adding flash suit logic will be a long-term project, but thanks to the property flashSuitChecked it can start safely being used before it is complete. @kjbranch is planning on starting to go through room-by-room and check strats one-by-one. In the near term, I plan to treat canSpikesuit as an ignored tech in Map Rando, until there are enough strats in logic that it would have a significant chance of being used.

Ceiling clips are an example where we'll need to be careful. In most cases they seem incompatible with preserving a flash suit. The only exception I'm aware of is the type of clip used with Mochtroids in Botwoon Hallway, where the enemy must be in a pixel-perfect very high position (compared to other ice clip setups), you jump + aim-down to get on it, and then stand with up or forward; angle-down jump can then clip through. I think we'll want to define a helper specifically for that type of ice clip, as it can be applied in many places but is more difficult than clipping either with X-Ray or a regular canPreciseCeilingClip (with the exception of Botwoon Hallway where the setup happens to be trivial).

If I remember, there is some way to do gate glitching while preserving a flash suit, but I assume this will need a new tech, and this could be handled later, so I put {"noFlashSuit": {}} on it for now.

osse101 commented 5 months ago

Gate glitching with flash suit would most easily be done with springball. Jump to the ceiling and unmorph, then the shot isn't too different on the way down. Without springball, you do a super hard jump morph.