Skip to content

Commit 00cc556

Browse files
authored
Merge pull request #2118 from kjbranch/flash-ceiling-clip
Ceiling clips using a flash suit
2 parents a57942e + 3c38ac5 commit 00cc556

5 files changed

Lines changed: 86 additions & 2 deletions

File tree

helpers.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -969,6 +969,14 @@
969969
]}
970970
]
971971
},
972+
{
973+
"name": "h_flashSuitIceClip",
974+
"requires": [
975+
"canTrickyUseFrozenEnemies",
976+
"canCeilingClip",
977+
{"useFlashSuit": {}}
978+
]
979+
},
972980
{
973981
"name": "h_maxHeightSpringBallJump",
974982
"requires": [

region/maridia/outer/Crab Hole.json

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1336,7 +1336,16 @@
13361336
]},
13371337
{"and": [
13381338
"HiJump",
1339-
"h_highPixelIceClip"
1339+
"h_highPixelIceClip",
1340+
"canBeVeryPatient",
1341+
{"or": [
1342+
"HiJump",
1343+
"Gravity"
1344+
]},
1345+
{"or": [
1346+
{"noFlashSuit": {}},
1347+
"canTrickyCarryFlashSuit"
1348+
]}
13401349
]}
13411350
]}
13421351
],

region/maridia/outer/Mt. Everest.json

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3298,6 +3298,46 @@
32983298
"FIXME: suitless variations would be possible with HiJump in combination with Spring Ball or Grapple and patience."
32993299
]
33003300
},
3301+
{
3302+
"link": [5, 5],
3303+
"name": "Flash Suit Ice Clip Door Lock Skip",
3304+
"requires": [
3305+
"canBeVeryPatient",
3306+
{"or": [
3307+
{"and": [
3308+
"Gravity",
3309+
"SpaceJump"
3310+
]},
3311+
{"and": [
3312+
"Gravity",
3313+
"HiJump",
3314+
"canPreciseGrapple"
3315+
]},
3316+
{"and": [
3317+
"HiJump",
3318+
"canPreciseGrapple",
3319+
"canSpringBallJumpMidAir"
3320+
]},
3321+
{"and": [
3322+
"HiJump",
3323+
"canGravityJump"
3324+
]}
3325+
]},
3326+
{"ammo": {"type": "Super", "count": 1}},
3327+
"h_flashSuitIceClip",
3328+
{"shinespark": {"frames": 2, "excessFrames": 1}}
3329+
],
3330+
"exitCondition": {
3331+
"leaveWithSpark": {}
3332+
},
3333+
"bypassesDoorShell": true,
3334+
"flashSuitChecked": true,
3335+
"note": [
3336+
"Lure a crab to the top door.",
3337+
"Use a Super to knock it off and freeze it frame-perfectly below the door.",
3338+
"Use a flash suit from a crouched position to spark vertically and clip past the door shell."
3339+
]
3340+
},
33013341
{
33023342
"id": 126,
33033343
"link": [5, 5],

region/norfair/crocomire/Post Crocomire Shaft.json

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -667,11 +667,36 @@
667667
],
668668
"bypassesDoorShell": true,
669669
"note": [
670-
"Use a Super to knock a Viola off of the middle platforms and ride it up the right wall by freezing it with Ice Beam.",
670+
"Use a Super to knock a Viola off of the middle platforms and ride it up the right wall by freezing it.",
671671
"Once it reaches the top door, use another Super to knock it off again, and freeze it mid-air.",
672672
"Use Morph and X-Ray to stand on top of it and clip up through the door shell above."
673673
]
674674
},
675+
{
676+
"link": [3, 4],
677+
"name": "Flash Suit Ice Clip Door Lock Skip",
678+
"requires": [
679+
{"or": [
680+
"canConsecutiveWalljump",
681+
"SpaceJump",
682+
"canLongIBJ",
683+
"canBePatient"
684+
]},
685+
{"ammo": {"type": "Super", "count": 2}},
686+
"h_flashSuitIceClip",
687+
{"shinespark": {"frames": 2, "excessFrames": 1}}
688+
],
689+
"exitCondition": {
690+
"leaveWithSpark": {}
691+
},
692+
"bypassesDoorShell": true,
693+
"flashSuitChecked": true,
694+
"note": [
695+
"Use a Super to knock a Viola off of the middle platforms and ride it up the right wall by freezing it.",
696+
"Once it reaches the top door, use another Super to knock it off again, and freeze it mid-air pixel perfectly.",
697+
"Use a flash suit from a crouched position to spark vertically and clip past the door shell."
698+
]
699+
},
675700
{
676701
"id": 28,
677702
"link": [3, 4],

tests/asserts/keywords.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -479,6 +479,8 @@ def process_req_speed_state(req, states, err_fn):
479479
# Note: "canSpeedKeep" can be used for other purposes than obtaining blue, but its presence should be
480480
# enough to satisfy the test as a way that blue may be obtained.
481481
states = {"blue"}
482+
elif req in ["h_flashSuitIceClip"]:
483+
states = {"preshinespark"}
482484
elif req in ["canTemporaryBlue", "canChainTemporaryBlue", "canLongChainTemporaryBlue", "canSpeedball", "canXRayCancelShinecharge"]:
483485
if not states.issubset(["shinecharging", "blue"]):
484486
err_fn(f"{req} while not in blue state")

0 commit comments

Comments
 (0)