Skip to content

Commit 8d75662

Browse files
committed
Double Chamber remote runways
1 parent b9d1257 commit 8d75662

3 files changed

Lines changed: 317 additions & 1 deletion

File tree

helpers.json

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1325,6 +1325,34 @@
13251325
]}
13261326
]}
13271327
]
1328+
},
1329+
{
1330+
"name": "h_heatedRemoteRunwaySpaceJump",
1331+
"requires": [
1332+
{"or": [
1333+
"h_heatProof",
1334+
"canPreciseSpaceJump"
1335+
]}
1336+
]
1337+
},
1338+
{
1339+
"name": "h_heatedRemoteRunwayPreciseSpaceJump",
1340+
"requires": [
1341+
"canPreciseSpaceJump",
1342+
{"or": [
1343+
"h_heatProof",
1344+
"canInsaneJump"
1345+
]}
1346+
]
1347+
},
1348+
{
1349+
"name": "h_heatedRemoteRunwaySpringBall",
1350+
"requires": [
1351+
{"or": [
1352+
"h_heatProof",
1353+
"canTrickySpringBallBounce"
1354+
]}
1355+
]
13281356
}
13291357
]
13301358
},

region/norfair/east/Double Chamber.json

Lines changed: 287 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,71 @@
239239
"farmCycleDrops": [{"enemy": "Ripper 2 (green)", "count": 1}],
240240
"flashSuitChecked": true
241241
},
242+
{
243+
"link": [1, 1],
244+
"name": "Leave Spinning (Space Jump)",
245+
"requires": [
246+
"h_heatedRemoteRunwaySpaceJump",
247+
{"heatFrames": 470}
248+
],
249+
"exitCondition": {
250+
"leaveSpinning": {
251+
"remoteRunway": {
252+
"length": 12,
253+
"openEnd": 1
254+
},
255+
"minExtraRunSpeed": "$2.0"
256+
}
257+
},
258+
"devNote": [
259+
"This uses the runway in the middle of the room but logically starts at the door, to ensure it can be opened."
260+
]
261+
},
262+
{
263+
"link": [1, 1],
264+
"name": "Leave Space Jumping",
265+
"requires": [
266+
"h_heatedRemoteRunwayPreciseSpaceJump",
267+
{"heatFrames": 470}
268+
],
269+
"exitCondition": {
270+
"leaveSpaceJumping": {
271+
"remoteRunway": {
272+
"length": 12,
273+
"openEnd": 1
274+
},
275+
"minExtraRunSpeed": "$2.0"
276+
}
277+
},
278+
"devNote": [
279+
"This uses the runway in the middle of the room but logically starts at the door, to ensure it can be opened."
280+
]
281+
},
282+
{
283+
"link": [1, 1],
284+
"name": "Leave With Spring Ball Bounce",
285+
"requires": [
286+
"h_heatedRemoteRunwaySpringBall",
287+
{"heatFrames": 530}
288+
],
289+
"exitCondition": {
290+
"leaveWithSpringBallBounce": {
291+
"remoteRunway": {
292+
"length": 12,
293+
"openEnd": 1
294+
},
295+
"landingRunway": {
296+
"length": 6,
297+
"openEnd": 1
298+
},
299+
"movementType": "any",
300+
"minExtraRunSpeed": "$2.0"
301+
}
302+
},
303+
"devNote": [
304+
"This uses the runway in the middle of the room but logically starts at the door, to ensure it can be opened."
305+
]
306+
},
242307
{
243308
"id": 3,
244309
"link": [1, 2],
@@ -1186,7 +1251,7 @@
11861251
"name": "Leave Shinecharged",
11871252
"requires": [
11881253
"canShinechargeMovement",
1189-
{"heatFrames": 300},
1254+
{"heatFrames": 250},
11901255
{"canShineCharge": {
11911256
"usedTiles": 28,
11921257
"gentleUpTiles": 3,
@@ -1200,6 +1265,84 @@
12001265
},
12011266
"flashSuitChecked": true
12021267
},
1268+
{
1269+
"link": [2, 2],
1270+
"name": "Leave Spinning",
1271+
"requires": [
1272+
{"heatFrames": 260}
1273+
],
1274+
"exitCondition": {
1275+
"leaveSpinning": {
1276+
"remoteRunway": {
1277+
"length": 22,
1278+
"openEnd": 0,
1279+
"gentleUpTiles": 3,
1280+
"gentleDownTiles": 3
1281+
}
1282+
}
1283+
}
1284+
},
1285+
{
1286+
"link": [2, 2],
1287+
"name": "Leave With Mockball",
1288+
"requires": [
1289+
{"heatFrames": 260}
1290+
],
1291+
"exitCondition": {
1292+
"leaveWithMockball": {
1293+
"remoteRunway": {
1294+
"length": 22,
1295+
"openEnd": 0,
1296+
"gentleUpTiles": 3,
1297+
"gentleDownTiles": 3
1298+
},
1299+
"landingRunway": {
1300+
"length": 1,
1301+
"openEnd": 1
1302+
}
1303+
}
1304+
}
1305+
},
1306+
{
1307+
"link": [2, 2],
1308+
"name": "Leave With Spring Ball Bounce",
1309+
"requires": [
1310+
{"heatFrames": 275}
1311+
],
1312+
"exitCondition": {
1313+
"leaveWithSpringBallBounce": {
1314+
"remoteRunway": {
1315+
"length": 18,
1316+
"openEnd": 0,
1317+
"gentleUpTiles": 3,
1318+
"gentleDownTiles": 3
1319+
},
1320+
"landingRunway": {
1321+
"length": 1,
1322+
"openEnd": 1
1323+
},
1324+
"movementType": "any"
1325+
}
1326+
}
1327+
},
1328+
{
1329+
"link": [2, 2],
1330+
"name": "Leave Space Jumping",
1331+
"requires": [
1332+
"h_heatedRemoteRunwaySpaceJump",
1333+
{"heatFrames": 290}
1334+
],
1335+
"exitCondition": {
1336+
"leaveSpaceJumping": {
1337+
"remoteRunway": {
1338+
"length": 15,
1339+
"openEnd": 0,
1340+
"gentleUpTiles": 3,
1341+
"gentleDownTiles": 3
1342+
}
1343+
}
1344+
}
1345+
},
12031346
{
12041347
"id": 84,
12051348
"link": [2, 2],
@@ -2284,6 +2427,46 @@
22842427
"Requires opening the door and shutter first."
22852428
]
22862429
},
2430+
{
2431+
"link": [3, 3],
2432+
"name": "Leave Spinning (Space Jump)",
2433+
"requires": [
2434+
"h_heatedRemoteRunwaySpaceJump",
2435+
{"heatFrames": 370}
2436+
],
2437+
"exitCondition": {
2438+
"leaveSpinning": {
2439+
"remoteRunway": {
2440+
"length": 11,
2441+
"openEnd": 1
2442+
},
2443+
"minExtraRunSpeed": "$2.0"
2444+
}
2445+
},
2446+
"devNote": [
2447+
"This uses the runway in the middle of the room but logically starts at the door, to ensure it can be opened."
2448+
]
2449+
},
2450+
{
2451+
"link": [3, 3],
2452+
"name": "Leave Space Jumping",
2453+
"requires": [
2454+
"h_heatedRemoteRunwayPreciseSpaceJump",
2455+
{"heatFrames": 370}
2456+
],
2457+
"exitCondition": {
2458+
"leaveSpaceJumping": {
2459+
"remoteRunway": {
2460+
"length": 11,
2461+
"openEnd": 1
2462+
},
2463+
"minExtraRunSpeed": "$2.0"
2464+
}
2465+
},
2466+
"devNote": [
2467+
"This uses the runway in the middle of the room but logically starts at the door, to ensure it can be opened."
2468+
]
2469+
},
22872470
{
22882471
"id": 46,
22892472
"link": [3, 3],
@@ -3129,6 +3312,58 @@
31293312
"clearsObstacles": ["A"],
31303313
"flashSuitChecked": true
31313314
},
3315+
{
3316+
"link": [4, 1],
3317+
"name": "Leave With Mockball (Space Jump)",
3318+
"requires": [
3319+
{"obstaclesCleared": ["A"]},
3320+
"h_heatedRemoteRunwaySpaceJump",
3321+
{"heatFrames": 215}
3322+
],
3323+
"exitCondition": {
3324+
"leaveWithMockball": {
3325+
"remoteRunway": {
3326+
"length": 12,
3327+
"openEnd": 1
3328+
},
3329+
"landingRunway": {
3330+
"length": 6,
3331+
"openEnd": 1
3332+
},
3333+
"minExtraRunSpeed": "$2.0"
3334+
}
3335+
},
3336+
"unlocksDoors": [
3337+
{"types": ["super"], "requires": []},
3338+
{"types": ["missiles", "powerbomb"], "requires": ["never"]}
3339+
]
3340+
},
3341+
{
3342+
"link": [4, 1],
3343+
"name": "Leave With Spring Ball Bounce",
3344+
"requires": [
3345+
"h_heatedRemoteRunwaySpaceJump",
3346+
{"heatFrames": 215}
3347+
],
3348+
"exitCondition": {
3349+
"leaveWithSpringBallBounce": {
3350+
"remoteRunway": {
3351+
"length": 11,
3352+
"openEnd": 1
3353+
},
3354+
"landingRunway": {
3355+
"length": 6,
3356+
"openEnd": 1
3357+
},
3358+
"movementType": "uncontrolled",
3359+
"minExtraRunSpeed": "$2.0"
3360+
}
3361+
},
3362+
"unlocksDoors": [
3363+
{"types": ["super"], "requires": []},
3364+
{"types": ["missiles", "powerbomb"], "requires": ["never"]}
3365+
]
3366+
},
31323367
{
31333368
"id": 63,
31343369
"link": [4, 3],
@@ -3329,6 +3564,57 @@
33293564
"Going down gentle slopes is also possible but harder, instead an unmorph to reset fall speed is recommended here."
33303565
]
33313566
},
3567+
{
3568+
"link": [4, 3],
3569+
"name": "Leave With Mockball (Space Jump)",
3570+
"requires": [
3571+
"h_heatedRemoteRunwaySpaceJump",
3572+
{"heatFrames": 185}
3573+
],
3574+
"exitCondition": {
3575+
"leaveWithMockball": {
3576+
"remoteRunway": {
3577+
"length": 11,
3578+
"openEnd": 1
3579+
},
3580+
"landingRunway": {
3581+
"length": 6,
3582+
"openEnd": 1
3583+
},
3584+
"minExtraRunSpeed": "$2.0"
3585+
}
3586+
},
3587+
"unlocksDoors": [
3588+
{"types": ["super"], "requires": []},
3589+
{"types": ["missiles", "powerbomb"], "requires": ["never"]}
3590+
]
3591+
},
3592+
{
3593+
"link": [4, 3],
3594+
"name": "Leave With Spring Ball Bounce",
3595+
"requires": [
3596+
"h_heatedRemoteRunwaySpaceJump",
3597+
{"heatFrames": 185}
3598+
],
3599+
"exitCondition": {
3600+
"leaveWithSpringBallBounce": {
3601+
"remoteRunway": {
3602+
"length": 11,
3603+
"openEnd": 1
3604+
},
3605+
"landingRunway": {
3606+
"length": 6,
3607+
"openEnd": 1
3608+
},
3609+
"movementType": "uncontrolled",
3610+
"minExtraRunSpeed": "$2.0"
3611+
}
3612+
},
3613+
"unlocksDoors": [
3614+
{"types": ["super"], "requires": []},
3615+
{"types": ["missiles", "powerbomb"], "requires": ["never"]}
3616+
]
3617+
},
33323618
{
33333619
"id": 73,
33343620
"link": [4, 4],

strats.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -776,6 +776,7 @@ A `comeInSpaceJumping` entrance condition indicates that Samus must come in with
776776
A `comeInSpaceJumping` entrance condition must match with a `leaveSpaceJumping` on the other side of the door. To match, the `blue` property of `leaveSpaceJumping` must be "no" or "any". This comes with implicit requirements:
777777

778778
- The `SpaceJump` item requirement.
779+
- A `canSidePlatformCrossRoomJump` tech requirement.
779780
- A `h_trickyToCarryFlashSuit` requirement, because being 1 frame late on the doorway Space Jump results in loss of a flash suit.
780781

781782
```json
@@ -803,6 +804,7 @@ A `comeInBlueSpaceJumping` entrance condition indicates that Samus must come in
803804
A `comeInBlueSpaceJumping` entrance condition must match with a `leaveSpaceJumping` on the other side of the door, with the following requirements:
804805
- The `blue` property of the matching `leaveSpaceJumping` must be "yes" or "any".
805806
- `SpeedBooster` and `SpaceJump` item requirements.
807+
- A `canSidePlatformCrossRoomJump` tech requirement.
806808
- A `h_trickyToCarryFlashSuit` requirement, because being 1 frame late on the doorway Space Jump results in loss of a flash suit.
807809
- There must exist a possible value of extra run speed satisfying any applicable constraints, including any `minExtraRunSpeed` or `maxExtraRunSpeed` properties in the entrance condition and/or exit condition, along with implicit constraints based on shortcharge skill and the effective runway length of the `remoteRunway` in the exit condition (see the [blue run speed table](#blue-run-speed-table)).
808810

0 commit comments

Comments
 (0)