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
162 changes: 162 additions & 0 deletions region/lowernorfair/east/Ridley's Room.json
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,168 @@
"flashSuitChecked": true,
"devNote": "FIXME: Ridley could also be used to set up G-mode, but the chaos of the fight makes this difficult."
},
{
"link": [1, 2],
"name": "Side Platform Cross Room Speedy Jump",
"entranceCondition": {
"comeInWithSidePlatform": {
"platforms": [
{
"minHeight": 1,
"maxHeight": 1,
"minTiles": 17,
"obstructions": [[1, 0]],
"speedBooster": true,
"requires": [
{"or": [
{"and": [
"HiJump",
{"heatFrames": 90}
]},
{"and": [
"canTrickyDashJump",
Comment thread
osse101 marked this conversation as resolved.
"canTrickySpringBallJump",
{"heatFrames": 115}
]}
]}
],
"note": ["This applies to Warehouse Entrance."]
},
{
"minHeight": 2,
"maxHeight": 2,
"minTiles": 11.4375,
"obstructions": [[1, 0]],
"speedBooster": true,
"requires": [
"canTrickyDashJump",
"canTrickySpringBallJump",
{"heatFrames": 100}
],
"note": ["This applies to Ridley Tank Room, Halfie Climb Room, and Dust Torizo 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.

Couldn't get close to making 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.

https://videos.maprando.com/video/4915

By maintaining forward momentum until the pause hits, the "tricky dash" speed boosts the mid-air jump. Added a detailNote about this.

},
{
"minHeight": 2,
"maxHeight": 2,
"minTiles": 12.4375,
"obstructions": [[1, 0]],
"speedBooster": true,
"requires": [
"HiJump",
{"heatFrames": 95}
],
"note": ["This applies to Halfie Climb Room and Dust Torizo Room."]
},
{
"minHeight": 3,
"maxHeight": 3,
"minTiles": 10.4375,
"obstructions": [[1, 0]],
"speedBooster": true,
"requires": [
"canTrickyDashJump",
"canTrickySpringBallJump",
{"heatFrames": 120}
],
"note": ["This applies to Big Boy Room and Mickey Mouse 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.

Couldn't get close

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.

},
{
"minHeight": 2,
"maxHeight": 2,
"minTiles": 45,
"obstructions": [[2, 0]],
"speedBooster": true,
"requires": [
"canInsaneJump",
{"heatFrames": 85}
],
"note": ["This applies to Waterway Energy Tank 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.

Halfie climb works with this setup as well

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.

Ah yeah, I think I was sometimes forgetting about water setups for the water applications, because for most of them if you have Gravity you can just Gravity jump. Added Halfie Climb variants with Waterway setup now.

},
{
"minHeight": 2,
"maxHeight": 2,
"minTiles": 45,
"obstructions": [[3, 0]],
"speedBooster": true,
"requires": [
"canInsaneJump",
"canMomentumConservingMorph",
{"or": [
{"and": [
"HiJump",
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.

Too hard I gave up. Let me do the in room jump instead 😸

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.

Yeah it only save heat frames compared to the in-room jump. Added a canInsaneMidAirMorph requirement now for this HiJump variant. For what it's worth, I'm finding that pause-buffering the morph helps quite a bit: https://videos.maprando.com/video/6226

{"heatFrames": 80}
]},
{"and": [
"canTrickySpringBallJump",
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.

The springball bounce is relatively trivial. You can bounce from Ridley's platform as well.

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.

True, it's much easier. Added a FIXME for it. I haven't gotten to Norfair remote runway strats yet.

{"heatFrames": 100}
]}
]}
],
"note": ["This applies to Statues Hallway."]
},
{
"minHeight": 3,
"maxHeight": 3,
"minTiles": 37.4375,
"obstructions": [[3, 0]],
"speedBooster": true,
"requires": [
"canInsaneJump",
"canMomentumConservingMorph",
{"or": [
{"and": [
"HiJump",
{"heatFrames": 85}
]},
{"and": [
"canTrickySpringBallJump",
{"heatFrames": 100}
]}
]}
],
"note": ["This applies to Flyway."]
},
{
"minHeight": 2,
"maxHeight": 2,
"minTiles": 45,
"obstructions": [[4, 0]],
"speedBooster": true,
"requires": [
"canInsaneJump",
"canMomentumConservingMorph",
"canInsaneMidAirMorph",
"canTrickySpringBallJump",
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.

Springball bounce it

{"heatFrames": 100}
],
"note": ["This applies to Baby Kraid Room."]
},
{
"minHeight": 3,
"maxHeight": 3,
"minTiles": 39.4375,
"obstructions": [[3, 2]],
"speedBooster": true,
"requires": [
"canTrickyJump",
{"or": [
{"and": [
"HiJump",
{"heatFrames": 75}
]},
{"and": [
"canTrickySpringBallJump",
{"heatFrames": 115}
]}
]}
],
"note": ["This applies to Metal Pirates Room."]
}
]
}
},
"requires": []
},
{
"id": 23,
"link": [1, 2],
Expand Down
31 changes: 31 additions & 0 deletions tests/asserts/keywords.py
Original file line number Diff line number Diff line change
Expand Up @@ -1068,6 +1068,37 @@ def check_speed_states(strat, err_fn):
def strat_err_fn(msg):
messages["reds"].append(f"🔴ERROR: {stratRef}:{msg}")
messages["counts"]["reds"] += 1

def make_and(reqs):
if len(reqs) == 0:
return "free"
elif len(reqs) == 1:
return reqs[0]
else:
return {"and": reqs}

def make_or(reqs):
if len(reqs) == 0:
return "never"
elif len(reqs) == 1:
return reqs[0]
else:
out = []
for r in reqs:
if isinstance(r, dict) and "or" in r:
out.extend(r["or"])
else:
out.append(r)
return {"or": out}


requires = strat["requires"]
if "entranceCondition" in strat and "comeInWithSidePlatform" in strat["entranceCondition"]:
reqs = []
for platform in strat["entranceCondition"]["comeInWithSidePlatform"]["platforms"]:
reqs.append(make_and(platform.get("requires", [])))
requires.append(make_or(reqs))

for req in strat["requires"]:
check_and_or(req, strat_err_fn)
if heated and not check_heat_req({"and": strat["requires"]}):
Expand Down