Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion region/brinstar/blue/Blue Brinstar Energy Tank Room.json
Original file line number Diff line number Diff line change
Expand Up @@ -299,7 +299,9 @@
"1) Most easily, with a momentum-conserving morph against the ceiling through the transition,",
"2) With a momentum-conserving turnaround through the transition, or",
"3) Jumping and aiming down through the transition.",
"Either back into the corner, or press against it and turn around; it doesn't matter which."
"To maximize the lenience for the jump, back into the Power Bomb block corner,",
"and while running perform a single-pixel arm pump (e.g. by firing a shot);",
"this only matters in certain situations, but in all cases it won't hurt."
],
"devNote": [
"Max extra run speed $5.4.",
Expand Down
277 changes: 277 additions & 0 deletions region/maridia/inner-pink/Colosseum.json
Original file line number Diff line number Diff line change
Expand Up @@ -1194,6 +1194,283 @@
],
"note": "Uses a runway of two tiles in the adjacent room."
},
{
"link": [2, 3],
"name": "Side Platform Cross Room Jump",
"entranceCondition": {
"comeInWithSidePlatform": {
"platforms": [
{
"minHeight": 2,
"maxHeight": 2,
"minTiles": 27.4375,
"speedBooster": true,
"obstructions": [[1, 0]],
"requires": [
"canMomentumConservingTurnaround"
],
"note": ["This applies to Dust Torizo Room and Noob Bridge."],
"devNote": [
"The jump could also be done with a shorter runway, with a tricky dash jump using run speed $4.0 or $4.1.",
"But it wouldn't apply to any more rooms in the game."
]
},
{
"minHeight": 3,
"maxHeight": 3,
"minTiles": 28.2472,
"speedBooster": true,
"obstructions": [[1, 0]],
"requires": [
"canMomentumConservingTurnaround"
],
"note": ["This applies to Double Chamber."],
"devNote": [
"The jump could also be done with a shorter runway, with a tricky dash jump using run speed $4.0 or $4.1.",
"But it wouldn't apply to any more rooms in the game."
]
},
{
"minHeight": 1,
"maxHeight": 1,
"minTiles": 23.8731,
"speedBooster": true,
"obstructions": [[3, 0]],
"environment": "water",
"requires": [
"canInsaneJump",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

below botwoon - expert
You can put cues together pretty fast for this to be consistent. The owtch may be the trickiest part.

botwoon etank has no ceiling above the door so its much harder to time

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sense, swapped the "canInsaneJump" for "canTrickyDashJump" to move this down to Expert.

All the remote runway strats in Below Botwoon require the Owtch obstacle to already be cleared. That could probably be refined to include options for evading the Owtch (possibly with some energy capacity requirements to be able to tank a hit, and/or tech requirements for knowing how to manipulate it or get lucky); I haven't investigated the AI of the Owtch to see if there's a consistent way of manipulating it. Added a FIXME for now.

"canGravityJump",
"canMomentumConservingTurnaround"
],
"note": [
"This applies to Below Botwoon Energy Tank and Botwoon Energy Tank Room",
"gain run speed, and time a pause to unequip Gravity after Samus jumps;",
"hold down and back through the unpause to buffer a turnaround."
],
"detailNote": [
"With a momentum conserving turnaround, this has a 3-frame window for the jump,",
"and between a 5-frame and 7-frame window for the pause, depending on the jump timing",
"(with later jumps corresponding to larger windows for the pause to hit).",
"A ceiling mockball is also possible but with greater difficulty."
]
},
{
"minHeight": 2,
"maxHeight": 2,
"minTiles": 45,
"speedBooster": true,
"obstructions": [[3, 0]],
"requires": [
"canInsaneJump",
{"or": [
"canMomentumConservingMorph",
"canMomentumConservingTurnaround"
]}
],
"note": ["This applies to Statues Hallway and Baby Kraid Room."],
"devNote": [
"With a momentum conserving morph, this has a 2-frame window for the jump,",
"and a 1-frame or 2-frame window for the morph depending on the jump timing",
"(with a last-frame jump giving the larger window for the morph).",
"With a turnaround, this requires a last-frame jump, with a 2-frame window for the turnaround."
]
},
{
"minHeight": 3,
"maxHeight": 3,
"minTiles": 21.4375,
"speedBooster": true,
"obstructions": [[3, 0]],
"environment": "water",
"requires": [
"canTrickyDashJump",
"canInsaneJump",
"canGravityJump",
"canMomentumConservingTurnaround"
],
"note": [
"This applies to Draygon's Room.",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This took a lot of playing around with to see where the extra height comes from. moving forward and back, pausing later jumping earlier timing the turnaround. So its trickier to understand than others, but not particularly hard.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you think the canInsaneJump requirement is still good, or did you want it removed?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it still fits.

"Start about a tile away from the wall, gain run speed, and time a pause to unequip Gravity after Samus jumps;",
"hold down and back through the unpause to buffer a turnaround."
],
"detailNote": [
"Gain extra run speed of $4.0 or $4.1.",
"A last-frame jump with a speed of $4.1 gives a 5-frame window for the pause/turnaround,",
"while a second-to-last-frame jump with a speed of $4.0 gives a 2-frame window."
],
"devNote": [
"If Spring Ball is available, the frame window for the turnaround with $4.0 speed can be larger,",
"but it doesn't seem like a big enough difference to justify separate logical requirements."
]
},
{
"minHeight": 3,
"maxHeight": 3,
"minTiles": 41.4375,
"speedBooster": true,
"obstructions": [[3, 0]],
"requires": [
"canInsaneJump",
"canMomentumConservingTurnaround"
],
"note": [
"This applies to Blue Brinstar Energy Tank Room (Power Bomb blocks broken), Bowling Alley (middle), and Basement."
],
"detailNote": [
"With ideal starting position, this has a 2-frame window for the jump,",
"and a 1-frame or 3-frame window for the turnaround based on the jump timing",
"(with a last-frame jump giving the larger window for the turnaround).",
"A ceiling mockball is also possible but more difficult, requiring a last-frame jump and a 2-frame window for the morph."
],
"devNote": [
"The trick is more difficult if using the full runway in the long rooms Bowling Alley or Basement,",
"requiring a last-frame jump and a 2-frame window for the turnaround."
]
},
{
"minHeight": 3,
"maxHeight": 3,
"minTiles": 39.4375,
"speedBooster": true,
"obstructions": [[3, 2]],
"requires": [
"canMomentumConservingTurnaround"
],
"note": ["This applies to Metal Pirates Room."]
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A lot nicer if you turn around before the door.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added a detailNote for this.

},
{
"minHeight": 3,
"maxHeight": 3,
"minTiles": 39.4375,
"speedBooster": true,
"obstructions": [[5, 2]],
"requires": [
"canInsaneJump",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

They're both expert to me. The morph is kinda harder but is also more natural to do once I understood it.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds good, removed the canInsaneJump requirement.

{"or": [
"canMomentumConservingTurnaround",
"canMomentumConservingMorph"
]}
],
"note": ["This applies to Flyway"],
"devNote": [
"This requires a last-frame jump, with a 3-frame window for the turnaround.",
"A ceiling mockball is also possible, with somewhat greater difficulty:",
"it needs a last-frame jump, with a 2-frame window for the morph."
]
}
]
}
},
"requires": [
"canCrossRoomJumpIntoWater",
"canTrickyJump"
]
},
{
"link": [2, 3],
"name": "Side Platform Cross Room Jump into Spring Ball Jump",
"entranceCondition": {
"comeInWithSidePlatform": {
"platforms": [
{
"minHeight": 1,
"maxHeight": 1,
"minTiles": 4,
"speedBooster": false,
"obstructions": [[1, 0]],
"note": "Applies to Skree Boost Room, Screw Attack Room, and Lava Dive"
},
{
"minHeight": 2,
"maxHeight": 2,
"minTiles": 5.4375,
"speedBooster": false,
"obstructions": [[1, 0]],
"requires": [
"canTrickySpringBallJump",
"canTrickyJump"
],
"note": "Applies to Early Supers Room, Blue Hopper Room, Bowling Alley (bottom), Dust Torizo Room, and Noob Bridge"
},
{
"minHeight": 3,
"maxHeight": 3,
"minTiles": 9.4375,
"speedBooster": false,
"obstructions": [[1, 0]],
"requires": [
"canTrickySpringBallJump",
"canTrickyJump"
],
"note": "Applies to Bomb Torizo Room, Pink Brinstar Hopper Room, Phantoon's Room, Big Boy Room, and Double Chamber."
},
{
"minHeight": 3,
"maxHeight": 3,
"minTiles": 9.4375,
"speedBooster": false,
"obstructions": [[3, 2]],
"requires": [
"canTrickySpringBallJump",
"canTrickyJump",
"canJumpIntoIBJ",
{"enemyDamage": {"enemy": "Mochtroid", "type": "contact", "hits": 1}}
],
"note": "Applies to Metal Pirates Room."
},
{
"minHeight": 2,
"maxHeight": 2,
"minTiles": 31,
"speedBooster": true,
"obstructions": [[3, 0]],
"requires": [
"canInsaneJump",
{"or": [
"canMomentumConservingTurnaround",
{"and": [
"canMomentumConservingMorph",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I found the morph to be easier.

But a LeaveWith springball bounce should be the way you traverse these nodes. Even better with a unmorph momentumConservingMorph.

Copy link
Copy Markdown
Contributor Author

@blkerby blkerby Apr 2, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, removed the canBeVeryPatient requirement on the canMomentumConservingMorph option and adjusted the note.

You're right about the springball bounce alternative. Even easier (and even more broadly applicable) is jumping through the door using the connected runway, momentum-conserving turnaround, and then spring ball jumping ("Cross Room Jump with Spring Ball"). I forgot that this was possible with just a 1-tile runway; otherwise I probably wouldn't have bothered creating this strat ("Side Platform Cross Room Jump into Spring Ball Jump"). But now that it's written, I guess we could keep it just to show the alternative method? Or it could just be deleted, not sure which is better 🤷‍♂️

"canBeVeryPatient"
]}
]}
],
"note": ["This applies to Metroid Room 1."],
"devNote": [
"With ideal positioning, starting 5 or 6 pixels from the end of the runway,",
"this has a 2-frame window for the jump, and a 1-frame or 3-frame window for the turnaround based on the jump timing",
"(with a last-frame jump giving the larger window for the turnaround).",
"This can also be done with a momentum conserving morph, but with somewhat greater difficulty:",
"it has a 2-frame window for the jump, and a 1-frame or 2-frame window for the turnaround based on the jump timing."
]
},
{
"minHeight": 3,
"maxHeight": 3,
"minTiles": 30.4375,
"speedBooster": true,
"obstructions": [[3, 0]],
"requires": [
"canInsaneJump",
"canMomentumConservingTurnaround"
],
"note": [
"This applies to Blue Brinstar Energy Tank Room (Power Bomb blocks intact)."
],
"detailNote": [
"With ideal starting position, this has a 2-frame window for the jump,",
"and a 1-frame or 3-frame window for the turnaround based on the jump timing",
"(with a last-frame jump giving the larger window for the turnaround)."
]
}
]
}
},
"requires": [
"canCrossRoomJumpIntoWater",
"canMomentumConservingTurnaround",
"canSpringBallJumpMidAir"
]
},
{
"id": 52,
"link": [2, 3],
Expand Down
2 changes: 1 addition & 1 deletion region/maridia/outer/Crab Hole.json
Original file line number Diff line number Diff line change
Expand Up @@ -1164,7 +1164,7 @@
"minHeight": 2,
"maxHeight": 2,
"minTiles": 23,
"speedBooster": "any",
"speedBooster": true,
"obstructions": [[3, 0]],
"requires": [
"canInsaneJump",
Expand Down
4 changes: 4 additions & 0 deletions region/tourian/main/Metroid Room 1.json
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,10 @@
"obstruction": [3, 0]
}
},
"note": [
"It is best to start 4 or 5 pixels from the end of the runway;",
"equivalently, start at the end of the runway and use arm pumps to advance 4 or 5 pixels while running."
],
"devNote": "Max extra run speed $5.7."
},
{
Expand Down
1 change: 1 addition & 0 deletions region/wreckedship/main/Bowling Alley.json
Original file line number Diff line number Diff line change
Expand Up @@ -454,6 +454,7 @@
"obstruction": [3, 0]
}
},
"note": "If using the full runway, back into the corner against the Chozo statue.",
"devNote": ["Max extra run speed $7.0."]
},
{
Expand Down
9 changes: 9 additions & 0 deletions schema/m3-room.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -716,13 +716,22 @@
}
}
},
"environment": {
"type": "string",
"description": "Environment that Samus is in while exiting the previous room.",
"enum": ["water", "air", "any"],
"default": "any"
},
"requires": {
"$ref" : "m3-requirements.schema.json#/definitions/logicalRequirements",
"description": "Logical requirements specific to using this platform geometry."
},
"note": {
"$ref" : "m3-note.schema.json#/definitions/note"
},
"detailNote": {
"$ref" : "m3-note.schema.json#/definitions/detailNote"
},
"devNote": {
"$ref" : "m3-note.schema.json#/definitions/devNote"
}
Expand Down