Repository: vg-json-data/sm-json-data
Pull request #2026: Ridley Room side platform jumps
Author: login: blkerby
Labels: name: Area:Lower Norfair
description: Stuff in Lower Norfair
Created: 2025-04-22T20:25:27Z | Merged: 2025-04-29T06:27:23Z

This also updates the test to collect the `requires` from side platform entrance conditions and include them in the checks on the `requires`. It is treated as if all the platform `requires` are joined by an `or`, appended to the main strat `requires`. In order to avoid triggering false positives on the `and`/`or` tests, we have to be careful how the `and` and `or` here are constructed.


Diff:
diff --git a/region/lowernorfair/east/Ridley's Room.json b/region/lowernorfair/east/Ridley's Room.json
index 6445590339..beb6382a5f 100644
--- a/region/lowernorfair/east/Ridley's Room.json	
+++ b/region/lowernorfair/east/Ridley's Room.json	
@@ -167,6 +167,185 @@
       "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",
+                    "canTrickySpringBallJump",
+                    {"heatFrames": 115}
+                  ]}
+                ]}
+              ],
+              "note": ["This applies to Warehouse Entrance."],
+              "detailNote": [
+                "For the spring ball jump, retain forward momentum until the pause hits,",
+                "in order for the mid-air jump to also get the 'tricky dash' boost in height."
+              ]
+            },
+            {
+              "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."],
+              "detailNote": [
+                "Retain forward momentum until the pause hits,",
+                "in order for the mid-air jump to also get the 'tricky dash' boost in height."
+              ]
+            },
+            {
+              "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."],
+              "detailNote": [
+                "For the spring ball jump, retain forward momentum until the pause hits,",
+                "in order for the mid-air jump to also get the 'tricky dash' boost in height."
+              ]
+            },
+            {
+              "minHeight": 2,
+              "maxHeight": 2,
+              "minTiles": 45,
+              "obstructions": [[2, 0]],
+              "speedBooster": true,
+              "requires": [
+                "canInsaneJump",
+                {"heatFrames": 85}
+              ],
+              "note": ["This applies to Waterway Energy Tank Room."]
+            },
+            {
+              "minHeight": 2,
+              "maxHeight": 2,
+              "minTiles": 45,
+              "obstructions": [[3, 0]],
+              "speedBooster": true,
+              "requires": [
+                "canInsaneJump",
+                "canMomentumConservingMorph",
+                {"or": [
+                  {"and": [
+                    "HiJump",
+                    "canInsaneMidAirMorph",
+                    {"heatFrames": 80}
+                  ]},
+                  {"and": [
+                    "canTrickySpringBallJump",
+                    {"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",
+                {"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": [],
+      "devNote": [
+        "FIXME: Many of the spring ball jump variants can be done more easily with a spring ball bounce,",
+        "which should be added as a separate strat."
+      ]
+    },
     {
       "id": 23,
       "link": [1, 2],
diff --git a/region/maridia/inner-pink/Halfie Climb Room.json b/region/maridia/inner-pink/Halfie Climb Room.json
index e85616dbe6..bf77a0bb09 100644
--- a/region/maridia/inner-pink/Halfie Climb Room.json	
+++ b/region/maridia/inner-pink/Halfie Climb Room.json	
@@ -1009,6 +1009,17 @@
                 "The jump could also be done with a shorter runway, with a tricky dash jump using run speed $4.0 or $4.1."
               ]
             },
+            {
+              "minHeight": 2,
+              "maxHeight": 2,
+              "minTiles": 45,
+              "obstructions": [[2, 0]],
+              "speedBooster": true,
+              "requires": [
+                "canInsaneJump"
+              ],
+              "note": ["This applies to Waterway Energy Tank Room."]
+            },
             {
               "minHeight": 3,
               "maxHeight": 3,
@@ -2455,6 +2466,22 @@
               "requires": [],
               "note": ["This applies to Dust Torizo Room."]
             },
+            {
+              "minHeight": 2,
+              "maxHeight": 2,
+              "minTiles": 45,
+              "obstructions": [[2, 0]],
+              "speedBooster": true,
+              "requires": [
+                "canInsaneJump",
+                "canMomentumConservingMorph"
+              ],
+              "note": ["This applies to Waterway Energy Tank Room."],
+              "detailNote": [
+                "Gain run speed, and time a pause to unequip Gravity after Samus jumps and aims down;",
+                "when the unpause black screen hits, press and hold down (and jump) to buffer a morph."
+              ]
+            },
             {
               "minHeight": 3,
               "maxHeight": 3,
diff --git a/tests/asserts/keywords.py b/tests/asserts/keywords.py
index c51d9cd7e5..789f2512e6 100644
--- a/tests/asserts/keywords.py
+++ b/tests/asserts/keywords.py
@@ -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"]}):


Reviews:
user: login: osse101
body: I must have been doing the tricky dash jumps wrong.
High run speed jumps are still the worst.
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-25T14:09:40Z
user: login: blkerby
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-27T04:24:32Z

Review comments:
diff_hunk: @@ -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",
path: region/lowernorfair/east/Ridley's Room.json
user: login: osse101
body: Couldn't confirm.  I don't know where to run from
created_at: 2025-04-25T13:29:10Z
author_association: CONTRIBUTOR
diff_hunk: @@ -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",
+                    "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."]
+            },
+            {
+              "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."]
+            },
+            {
+              "minHeight": 2,
+              "maxHeight": 2,
+              "minTiles": 45,
+              "obstructions": [[2, 0]],
+              "speedBooster": true,
+              "requires": [
+                "canInsaneJump",
+                {"heatFrames": 85}
+              ],
+              "note": ["This applies to Waterway Energy Tank Room."]
path: region/lowernorfair/east/Ridley's Room.json
user: login: osse101
body: Halfie climb works with this setup as well
created_at: 2025-04-25T13:38:54Z
author_association: CONTRIBUTOR
diff_hunk: @@ -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",
+                    "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."]
path: region/lowernorfair/east/Ridley's Room.json
user: login: osse101
body: Couldn't get close to making it
created_at: 2025-04-25T13:39:18Z
author_association: CONTRIBUTOR
diff_hunk: @@ -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",
+                    "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."]
+            },
+            {
+              "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."]
path: region/lowernorfair/east/Ridley's Room.json
user: login: osse101
body: Couldn't get close
created_at: 2025-04-25T13:41:40Z
author_association: CONTRIBUTOR
diff_hunk: @@ -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",
+                    "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."]
+            },
+            {
+              "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."]
+            },
+            {
+              "minHeight": 2,
+              "maxHeight": 2,
+              "minTiles": 45,
+              "obstructions": [[2, 0]],
+              "speedBooster": true,
+              "requires": [
+                "canInsaneJump",
+                {"heatFrames": 85}
+              ],
+              "note": ["This applies to Waterway Energy Tank Room."]
+            },
+            {
+              "minHeight": 2,
+              "maxHeight": 2,
+              "minTiles": 45,
+              "obstructions": [[3, 0]],
+              "speedBooster": true,
+              "requires": [
+                "canInsaneJump",
+                "canMomentumConservingMorph",
+                {"or": [
+                  {"and": [
+                    "HiJump",
+                    {"heatFrames": 80}
+                  ]},
+                  {"and": [
+                    "canTrickySpringBallJump",
path: region/lowernorfair/east/Ridley's Room.json
user: login: osse101
body: The springball bounce is relatively trivial.  You can bounce from Ridley's platform as well.
created_at: 2025-04-25T13:47:01Z
author_association: CONTRIBUTOR
diff_hunk: @@ -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",
+                    "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."]
+            },
+            {
+              "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."]
+            },
+            {
+              "minHeight": 2,
+              "maxHeight": 2,
+              "minTiles": 45,
+              "obstructions": [[2, 0]],
+              "speedBooster": true,
+              "requires": [
+                "canInsaneJump",
+                {"heatFrames": 85}
+              ],
+              "note": ["This applies to Waterway Energy Tank Room."]
+            },
+            {
+              "minHeight": 2,
+              "maxHeight": 2,
+              "minTiles": 45,
+              "obstructions": [[3, 0]],
+              "speedBooster": true,
+              "requires": [
+                "canInsaneJump",
+                "canMomentumConservingMorph",
+                {"or": [
+                  {"and": [
+                    "HiJump",
path: region/lowernorfair/east/Ridley's Room.json
user: login: osse101
body: Too hard I gave up.  Let me do the in room jump instead 😸 
created_at: 2025-04-25T13:51:44Z
author_association: CONTRIBUTOR
diff_hunk: @@ -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",
+                    "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."]
+            },
+            {
+              "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."]
+            },
+            {
+              "minHeight": 2,
+              "maxHeight": 2,
+              "minTiles": 45,
+              "obstructions": [[2, 0]],
+              "speedBooster": true,
+              "requires": [
+                "canInsaneJump",
+                {"heatFrames": 85}
+              ],
+              "note": ["This applies to Waterway Energy Tank Room."]
+            },
+            {
+              "minHeight": 2,
+              "maxHeight": 2,
+              "minTiles": 45,
+              "obstructions": [[3, 0]],
+              "speedBooster": true,
+              "requires": [
+                "canInsaneJump",
+                "canMomentumConservingMorph",
+                {"or": [
+                  {"and": [
+                    "HiJump",
+                    {"heatFrames": 80}
+                  ]},
+                  {"and": [
+                    "canTrickySpringBallJump",
+                    {"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",
path: region/lowernorfair/east/Ridley's Room.json
user: login: osse101
body: Springball bounce it
created_at: 2025-04-25T14:06:05Z
author_association: CONTRIBUTOR
diff_hunk: @@ -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",
+                    "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."]
path: region/lowernorfair/east/Ridley's Room.json
user: login: blkerby
body: 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.
created_at: 2025-04-27T02:23:55Z
author_association: CONTRIBUTOR
diff_hunk: @@ -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",
path: region/lowernorfair/east/Ridley's Room.json
user: login: blkerby
body: https://videos.maprando.com/video/4912
created_at: 2025-04-27T02:24:00Z
author_association: CONTRIBUTOR
diff_hunk: @@ -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",
+                    "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."]
+            },
+            {
+              "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."]
path: region/lowernorfair/east/Ridley's Room.json
user: login: blkerby
body: https://videos.maprando.com/video/6223

created_at: 2025-04-27T02:40:14Z
author_association: CONTRIBUTOR
diff_hunk: @@ -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",
+                    "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."]
+            },
+            {
+              "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."]
+            },
+            {
+              "minHeight": 2,
+              "maxHeight": 2,
+              "minTiles": 45,
+              "obstructions": [[2, 0]],
+              "speedBooster": true,
+              "requires": [
+                "canInsaneJump",
+                {"heatFrames": 85}
+              ],
+              "note": ["This applies to Waterway Energy Tank Room."]
path: region/lowernorfair/east/Ridley's Room.json
user: login: blkerby
body: 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.
created_at: 2025-04-27T02:44:55Z
author_association: CONTRIBUTOR
diff_hunk: @@ -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",
+                    "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."]
+            },
+            {
+              "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."]
+            },
+            {
+              "minHeight": 2,
+              "maxHeight": 2,
+              "minTiles": 45,
+              "obstructions": [[2, 0]],
+              "speedBooster": true,
+              "requires": [
+                "canInsaneJump",
+                {"heatFrames": 85}
+              ],
+              "note": ["This applies to Waterway Energy Tank Room."]
+            },
+            {
+              "minHeight": 2,
+              "maxHeight": 2,
+              "minTiles": 45,
+              "obstructions": [[3, 0]],
+              "speedBooster": true,
+              "requires": [
+                "canInsaneJump",
+                "canMomentumConservingMorph",
+                {"or": [
+                  {"and": [
+                    "HiJump",
path: region/lowernorfair/east/Ridley's Room.json
user: login: blkerby
body: 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
created_at: 2025-04-27T03:43:49Z
author_association: CONTRIBUTOR
diff_hunk: @@ -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",
+                    "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."]
+            },
+            {
+              "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."]
+            },
+            {
+              "minHeight": 2,
+              "maxHeight": 2,
+              "minTiles": 45,
+              "obstructions": [[2, 0]],
+              "speedBooster": true,
+              "requires": [
+                "canInsaneJump",
+                {"heatFrames": 85}
+              ],
+              "note": ["This applies to Waterway Energy Tank Room."]
+            },
+            {
+              "minHeight": 2,
+              "maxHeight": 2,
+              "minTiles": 45,
+              "obstructions": [[3, 0]],
+              "speedBooster": true,
+              "requires": [
+                "canInsaneJump",
+                "canMomentumConservingMorph",
+                {"or": [
+                  {"and": [
+                    "HiJump",
+                    {"heatFrames": 80}
+                  ]},
+                  {"and": [
+                    "canTrickySpringBallJump",
path: region/lowernorfair/east/Ridley's Room.json
user: login: blkerby
body: True, it's much easier. Added a FIXME for it. I haven't gotten to Norfair remote runway strats yet.
created_at: 2025-04-27T04:23:59Z
author_association: CONTRIBUTOR

PR comments:
user: login: osse101
created_at: 2025-04-29T06:27:09Z
body: - My Halfie Climb comment meant there was a case that wasn't covered which had fewer requirements.
- Halfie Climb [3, 3] is listed as 13 tiles, when you can use more than that by breaking the shot blocks.
- The actual used tile amount in the case for Ridley's room used a long enough runway for the Oums to be an issue, so it should be looked at in a separate PR.
author_association: CONTRIBUTOR
user: login: blkerby
created_at: 2025-04-29T16:42:16Z
body: > * My Halfie Climb comment meant there was a case that wasn't covered which had fewer requirements.
> 
>     * Halfie Climb [3, 3] is listed as 13 tiles, when you can use more than that by breaking the shot blocks.
> 
>     * The actual used tile amount in the case for Ridley's room used a long enough runway for the Oums to be an issue, so it should be looked at in a separate PR.

Oh yeah I think I just overlooked that you could break the shot blocks to extend the runway 🤦‍♂️ So the setup strat would have to be adjusted (or a new one added), and then we can look at all the applications again.
author_association: CONTRIBUTOR