diff --git a/region/maridia/inner-green/Lonely Crab Room.json b/region/maridia/inner-green/Lonely Crab Room.json index 75d1e4ecf..0cc31f5dd 100644 --- a/region/maridia/inner-green/Lonely Crab Room.json +++ b/region/maridia/inner-green/Lonely Crab Room.json @@ -77,7 +77,8 @@ "openEnd": 0 } }, - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 2, @@ -93,7 +94,8 @@ } }, "unlocksDoors": [{"nodeId": 2, "types": ["ammo"], "requires": []}], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 32, @@ -109,6 +111,10 @@ "Grapple", {"cycleFrames": 180} ]}, + {"and": [ + {"haveBlueSuit": {}}, + {"cycleFrames": 270} + ]}, {"and": [ "Plasma", {"cycleFrames": 280} @@ -129,6 +135,7 @@ ]}, {"and": [ "Gravity", + "canDash", {"or": [ {"and": [ "Grapple", @@ -159,11 +166,17 @@ ]}, {"cycleFrames": 265} ]} + ]}, + {"and": [ + "Gravity", + {"haveBlueSuit": {}}, + {"cycleFrames": 160} ]} ]} ], "farmCycleDrops": [{"enemy": "Sciser", "count": 1}], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 4, @@ -172,7 +185,8 @@ "requires": [ "h_CrystalFlash" ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 56, @@ -208,6 +222,7 @@ {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "With a runway of 5 tiles (open end) in the other room,", "the ideal timing for the stutter is to release forward for 5 frames, and repress forward on the last possible frame before the transition.", @@ -250,6 +265,7 @@ {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "With only a runway of 4 tiles (open end) in the other room,", "the ideal timing for the stutter is to release forward for 4 frames, and repress forward on the last possible frame before the transition.", @@ -293,6 +309,7 @@ {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "With only a runway of 3 tiles (open end) in the other room,", "the ideal timing for the stutter is to release forward for 3 or 4 frames, and repress forward on the last possible frame before the transition.", @@ -343,6 +360,7 @@ {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "With only a runway of 2 tiles (open end) in the other room,", "the ideal timing for the stutter is to release forward for 3 frames, and repress forward on the last possible frame before the transition.", @@ -394,6 +412,7 @@ {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "With only 1 tile of runway in the other room, Samus should ideally start on the last pixel of runway with X subpixels of $3FFF or less.", "Run toward the door, releasing forward for exactly 1 frame and pressing it again on the last possible frame before the transition.", @@ -517,7 +536,8 @@ "exitCondition": { "leaveWithGModeSetup": {} }, - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 6, @@ -527,14 +547,16 @@ {"enemyDamage": {"enemy": "Sciser", "type": "contact", "hits": 1}} ], "gModeRegainMobility": {}, - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 7, "link": [1, 2], "name": "Base", "requires": [], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 33, @@ -564,6 +586,7 @@ {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "With the larger hitbox of Plasma, the door can be opened fast enough to safely run under the crab.", "Otherwise, a small spin-jump may be required to reduce Samus' hitbox through the transition." @@ -601,7 +624,8 @@ {"types": ["super"], "requires": []}, {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 35, @@ -629,7 +653,8 @@ {"types": ["super"], "requires": []}, {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 12, @@ -642,7 +667,8 @@ }, "requires": [], "bypassesDoorShell": "yes", - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 13, @@ -660,7 +686,8 @@ } }, "bypassesDoorShell": "yes", - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 14, @@ -678,7 +705,8 @@ } }, "bypassesDoorShell": "yes", - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 15, @@ -695,6 +723,7 @@ "Wave", "Spazer", "Plasma", + {"haveBlueSuit": {}}, {"ammo": {"type": "Missile", "count": 2}}, {"ammo": {"type": "Super", "count": 1}} ]} @@ -708,7 +737,8 @@ {"types": ["missiles", "super"], "requires": []}, {"types": ["powerbomb"], "requires": ["never"]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 16, @@ -725,6 +755,7 @@ "Wave", "Spazer", "Plasma", + {"haveBlueSuit": {}}, {"ammo": {"type": "Missile", "count": 2}}, {"ammo": {"type": "Super", "count": 1}} ]} @@ -738,7 +769,8 @@ {"types": ["missiles", "super"], "requires": []}, {"types": ["powerbomb"], "requires": ["never"]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 36, @@ -762,6 +794,7 @@ ], "endsWithShineCharge": true, "flashSuitChecked": true, + "blueSuitChecked": true, "devNote": [ "FIXME: comeInShinecharging strats (with Gravity or a regular water shinecharge) can also be", "possible, but dealing with the crab seems difficult and dependent on run speed." @@ -797,6 +830,7 @@ ], "endsWithShineCharge": true, "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "If only 2 tiles of runway are available and it is not possible to unlock the opposite door, then this requires a double frame-perfect stutter:", "run toward the door, release forward for exactly 3 frames, pressing forward again on the last possible frame before the transition." @@ -834,6 +868,7 @@ ], "endsWithShineCharge": true, "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "With only 1 tile of runway in the other room, this requires subpixel-precise positioning and a double frame-perfect stutter:", "At the start of the run, Samus must be on the last pixel of runway with X subpixels of $3FFF or less.", @@ -867,7 +902,8 @@ "link": [2, 1], "name": "Base", "requires": [], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 39, @@ -895,7 +931,8 @@ {"types": ["super"], "requires": []}, {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 40, @@ -939,7 +976,8 @@ {"types": ["super"], "requires": []}, {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 22, @@ -960,7 +998,8 @@ {"types": ["missiles", "super"], "requires": []}, {"types": ["powerbomb"], "requires": ["never"]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 23, @@ -981,7 +1020,8 @@ {"types": ["missiles", "super"], "requires": []}, {"types": ["powerbomb"], "requires": ["never"]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 24, @@ -994,7 +1034,8 @@ }, "requires": [], "bypassesDoorShell": "yes", - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 25, @@ -1012,7 +1053,8 @@ } }, "bypassesDoorShell": "yes", - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 26, @@ -1030,7 +1072,8 @@ } }, "bypassesDoorShell": "yes", - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 27, @@ -1043,7 +1086,8 @@ "openEnd": 0 } }, - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 28, @@ -1059,7 +1103,8 @@ } }, "unlocksDoors": [{"nodeId": 1, "types": ["ammo"], "requires": []}], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 61, @@ -1088,6 +1133,7 @@ {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "With a runway of 5 tiles (open end) in the other room,", "the ideal timing for the stutter is to release forward for 5 frames, and repress forward on the last possible frame before the transition.", @@ -1123,6 +1169,7 @@ {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "With only a runway of 4 tiles (open end) in the other room,", "the ideal timing for the stutter is to release forward for 4 frames, and repress forward on the last possible frame before the transition.", @@ -1159,6 +1206,7 @@ {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "With only a runway of 3 tiles (open end) in the other room,", "the ideal timing for the stutter is to release forward for 3 or 4 frames, and repress forward on the last possible frame before the transition.", @@ -1202,6 +1250,7 @@ {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "With only a runway of 2 tiles (open end) in the other room,", "the ideal timing for the stutter is to release forward for 3 frames, and repress forward on the last possible frame before the transition.", @@ -1246,6 +1295,7 @@ {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "With only 1 tile of runway in the other room, Samus should ideally start on the last pixel of runway with X subpixels of $3FFF or less.", "Run toward the door, releasing forward for exactly 1 frame and pressing it again on the last possible frame before the transition.", @@ -1308,7 +1358,8 @@ "exitCondition": { "leaveWithGModeSetup": {} }, - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 31, @@ -1318,7 +1369,8 @@ {"enemyDamage": {"enemy": "Sciser", "type": "contact", "hits": 1}} ], "gModeRegainMobility": {}, - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 66, @@ -1355,6 +1407,7 @@ ]}, {"and": [ "Gravity", + "canDash", {"or": [ {"and": [ "Grapple", @@ -1386,11 +1439,17 @@ ]}, {"cycleFrames": 255} ]} + ]}, + {"and": [ + "Gravity", + {"haveBlueSuit": {}}, + {"cycleFrames": 75} ]} ]} ], "farmCycleDrops": [{"enemy": "Sciser", "count": 1}], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 41, @@ -1408,6 +1467,7 @@ ], "endsWithShineCharge": true, "flashSuitChecked": true, + "blueSuitChecked": true, "devNote": [ "FIXME: A variant with 1 more runway tile could be added if the door at node 1 is unlocked." ] @@ -1427,7 +1487,8 @@ {"shineChargeFrames": 0} ], "endsWithShineCharge": true, - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 43, @@ -1443,7 +1504,8 @@ {"shineChargeFrames": 0} ], "endsWithShineCharge": true, - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 44, @@ -1468,6 +1530,7 @@ ], "endsWithShineCharge": true, "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "If only 2 tiles of runway are available and it is not possible to unlock the opposite door, then this requires a double frame-perfect stutter:", "run toward the door, release forward for exactly 3 frames, pressing forward again on the last possible frame before the transition." @@ -1498,6 +1561,7 @@ ], "endsWithShineCharge": true, "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "With only 1 tile of runway in the other room, this requires subpixel-precise positioning and a double frame-perfect stutter:", "At the start of the run, Samus must be on the last pixel of runway with X subpixels of $C000 or greater.", @@ -1542,6 +1606,7 @@ {"types": ["powerbomb"], "requires": ["never"]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "devNote": "FIXME: This is a prime example for 3-room shinecharges, once the schema can model it." }, { @@ -1559,6 +1624,7 @@ }, "unlocksDoors": [{"types": ["ammo"], "requires": []}], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "To avoid being hit by the crab, jump through the door with blue speed rather than gaining a shinecharge." ], @@ -1584,7 +1650,8 @@ {"types": ["super"], "requires": []}, {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 50, @@ -1603,6 +1670,7 @@ }, "unlocksDoors": [{"types": ["ammo"], "requires": []}], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Use X-Ray to cancel the shinecharge, in order to turnaround quickly enough to jump over the crab." ], @@ -1628,7 +1696,8 @@ {"types": ["super"], "requires": []}, {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 53, @@ -1646,6 +1715,7 @@ }, "unlocksDoors": [{"types": ["ammo"], "requires": []}], "flashSuitChecked": true, + "blueSuitChecked": true, "devNote": [ "The `h_getBlueSpeedMaxRunway` requirement is to satisfy the tests,", "since we don't have a way to represent that the temporary blue originates from the startsWithShineCharge." @@ -1667,6 +1737,7 @@ {"types": ["powerbomb"], "requires": ["never"]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "devNote": "FIXME: This is a prime example for 3-room shinecharges, once the schema can model it." }, { @@ -1684,6 +1755,7 @@ }, "unlocksDoors": [{"types": ["ammo"], "requires": []}], "flashSuitChecked": true, + "blueSuitChecked": true, "devNote": [ "The `h_getBlueSpeedMaxRunway` requirement is to satisfy the tests,", "since we don't have a way to represent that the temporary blue originates from the startsWithShineCharge." diff --git a/region/maridia/inner-green/Oasis.json b/region/maridia/inner-green/Oasis.json index 6fcb0ae88..3db331df6 100644 --- a/region/maridia/inner-green/Oasis.json +++ b/region/maridia/inner-green/Oasis.json @@ -138,7 +138,8 @@ "openEnd": 0 } }, - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 2, @@ -154,7 +155,8 @@ } }, "unlocksDoors": [{"nodeId": 2, "types": ["ammo"], "requires": []}], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 4, @@ -174,6 +176,7 @@ ], "clearsObstacles": ["A"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Use Screw Attack to break the bomb block by entering from a non-water room with a spin jump.", "It helps to enter as low as possible and with as much horizontal speed as possible and with HiJump turned off.", @@ -198,6 +201,7 @@ ], "clearsObstacles": ["A"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Use Screw Attack to break the bomb block by entering from a non-water room with a spin jump.", "It helps to enter as low as possible and with as much horizontal speed as possible and with HiJump turned off.", @@ -274,6 +278,7 @@ ], "clearsObstacles": ["A"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Use Screw Attack to break the bomb block by entering from a non-water room with a spin jump.", "It generally helps to enter as low as possible and with as much horizontal speed as possible,", @@ -378,6 +383,7 @@ ], "clearsObstacles": ["A"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Use blue speed to break the bomb block by entering from a non-water room with a spin jump.", "It generally helps to enter as low as possible and with as much horizontal speed as possible, and with HiJump turned off.", @@ -404,6 +410,7 @@ ], "clearsObstacles": ["A"], "flashSuitChecked": true, + "blueSuitChecked": true, "devNote": [ "FIXME: handle the case of entering from another water room, in which case a flash suit could be carried." ] @@ -424,6 +431,7 @@ ], "clearsObstacles": ["A"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Run into the room and gain temporary blue below the bomb blocks on the far side of the room.", "Then jump up to break the bomb blocks." @@ -446,6 +454,7 @@ ], "clearsObstacles": ["A"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Run into the room and gain temporary blue below the bomb blocks on the far side of the room.", "Then jump up to break the bomb blocks." @@ -466,6 +475,7 @@ ], "clearsObstacles": ["A"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Gain blue speed running into the room, then jump, morph, and unmorph while holding angle to obtain temporary blue.", "This method allows retaining a flash suit." @@ -487,7 +497,8 @@ "h_underwaterChainTemporaryBlue" ], "clearsObstacles": ["A"], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 8, @@ -503,6 +514,7 @@ ], "clearsObstacles": ["A"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": "Break the bomb block on the opposite side of the room.", "detailNote": [ "With extra run speeds between $1.2 and $1.D, it's not possible to break the bomb block directly with a bounce;", @@ -526,6 +538,7 @@ ], "clearsObstacles": ["A"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Gain blue speed running into the room, then jump to break the bomb block on the far side of the room." ] @@ -547,6 +560,7 @@ ], "clearsObstacles": ["A"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Gain blue speed running into the room, then jump to break the bomb block on the far side of the room." ], @@ -571,7 +585,8 @@ "HiJump" ], "clearsObstacles": ["A"], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 117, @@ -586,7 +601,8 @@ "canPreciseSpaceJump" ], "clearsObstacles": ["A"], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 99, @@ -615,6 +631,7 @@ {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "With a runway of 5 tiles (open end) in the other room,", "the ideal timing for the stutter is to release forward for 5 frames, and repress forward on the last possible frame before the transition.", @@ -650,6 +667,7 @@ {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "With only a runway of 4 tiles (open end) in the other room,", "the ideal timing for the stutter is to release forward for 4 frames, and repress forward on the last possible frame before the transition.", @@ -686,6 +704,7 @@ {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "With only a runway of 3 tiles (open end) in the other room,", "the ideal timing for the stutter is to release forward for 3 or 4 frames, and repress forward on the last possible frame before the transition.", @@ -729,6 +748,7 @@ {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "With only a runway of 2 tiles (open end) in the other room,", "the ideal timing for the stutter is to release forward for 3 frames, and repress forward on the last possible frame before the transition.", @@ -773,6 +793,7 @@ {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "With only 1 tile of runway in the other room, Samus should ideally start on the last pixel of runway with X subpixels of $3FFF or less.", "Run toward the door, releasing forward for exactly 1 frame and pressing it again on the last possible frame before the transition.", @@ -828,7 +849,8 @@ ]} ], "clearsObstacles": ["A"], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 75, @@ -856,7 +878,8 @@ {"types": ["super"], "requires": []}, {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 76, @@ -884,7 +907,8 @@ {"types": ["super"], "requires": []}, {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 77, @@ -913,7 +937,8 @@ {"types": ["super"], "requires": []}, {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 14, @@ -934,7 +959,8 @@ {"types": ["missiles", "super"], "requires": []}, {"types": ["powerbomb"], "requires": ["never"]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 15, @@ -955,7 +981,8 @@ {"types": ["missiles", "super"], "requires": []}, {"types": ["powerbomb"], "requires": ["never"]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 16, @@ -983,6 +1010,7 @@ {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Use Screw Attack to break the bomb block by entering from a non-water room with a spin jump, and make it all the way through the top door.", "Ideally, gain speed using between 13 and 13.5 tiles of runway (with an open end).", @@ -1030,6 +1058,7 @@ {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Use a 2-tap shortcharge and jump into the room with a last-frame jump, breaking the bomb block with blue speed, and making it all the way through the top door.", "Use angle to break spin, and do a momentum conserving turnaround either on the same frame or one frame later;", @@ -1075,6 +1104,7 @@ {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "devNote": [ "FIXME: It can be possible to use a longer runway, or a stutter shinecharge with Gravity re-equip, with a cost of some shinecharge frames." ] @@ -1091,7 +1121,8 @@ "h_navigateUnderwater", {"shinespark": {"frames": 23, "excessFrames": 2}} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 119, @@ -1112,6 +1143,7 @@ "h_trickyToCarryFlashSuit" ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Use Screw Attack to break the bomb block by entering from a non-water room with a last-frame spin jump, and make it to the platform below the top door.", "Longer runway lengths can also work, up to 17 tiles, but will make the trick somewhat more precise.", @@ -1150,6 +1182,7 @@ "h_trickyToCarryFlashSuit" ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Use a 2-tap shortcharge and jump into the room with a last-frame jump, breaking the bomb block with blue speed, and making it all the way through the top door.", "Use angle to break spin, and do a momentum conserving turnaround either on the same frame or one frame later;", @@ -1234,6 +1267,7 @@ ], "clearsObstacles": ["A"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Jump into a momentum-conserving morph with blue speed to break the bomb block and continue up to the top of the room.", "After pressing down to initiate the momentum-conserving morph, all inputs can be released;", @@ -1246,7 +1280,8 @@ "link": [1, 5], "name": "Base", "requires": [], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 21, @@ -1259,6 +1294,7 @@ "canXRayClimb" ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": "This is a short climb, only a few tiles." }, { @@ -1285,6 +1321,7 @@ ], "clearsObstacles": ["A"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": "Spark vertically through the bomb blocks. It is still possible to break the blocks while below 30 Energy by jumping before sparking.", "devNote": [ "This does not require canWaterShineCharge, as you can store the shinecharge before entering the room.", @@ -1306,7 +1343,8 @@ {"shineChargeFrames": 0} ], "endsWithShineCharge": true, - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 79, @@ -1323,7 +1361,8 @@ {"shineChargeFrames": 0} ], "endsWithShineCharge": true, - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 80, @@ -1339,7 +1378,8 @@ {"shineChargeFrames": 0} ], "endsWithShineCharge": true, - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 81, @@ -1364,6 +1404,7 @@ ], "endsWithShineCharge": true, "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "If only 2 tiles of runway are available and it is not possible to unlock the opposite door, then this requires a double frame-perfect stutter:", "run toward the door, release forward for exactly 3 frames, pressing forward again on the last possible frame before the transition." @@ -1394,6 +1435,7 @@ ], "endsWithShineCharge": true, "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "With only 1 tile of runway in the other room, Samus should ideally start on the last pixel of runway with X subpixels of $3FFF or less.", "Run toward the door, releasing forward for exactly 1 frame and pressing it again on the last possible frame before the transition.", @@ -1436,7 +1478,8 @@ "h_navigateUnderwater", {"shinespark": {"frames": 23, "excessFrames": 10}} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 19, @@ -1456,6 +1499,7 @@ "canMomentumConservingTurnaround" ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Use Screw Attack to break the bomb block by entering from a non-water room with a spin jump, and make it up to the center of the room.", "It helps to enter as low as possible and with as much horizontal speed as possible and with HiJump turned off." @@ -1484,6 +1528,7 @@ "canMomentumConservingTurnaround" ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Use blue speed to break the bomb block by entering from a non-water room with a spin jump, and make it up to the center of the room.", "It helps to enter as low as possible and with as much horizontal speed as possible and with HiJump turned off." @@ -1519,7 +1564,8 @@ {"types": ["super"], "requires": []}, {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 84, @@ -1547,7 +1593,8 @@ {"types": ["super"], "requires": []}, {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 85, @@ -1576,7 +1623,8 @@ {"types": ["super"], "requires": []}, {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 28, @@ -1597,7 +1645,8 @@ {"types": ["missiles", "super"], "requires": []}, {"types": ["powerbomb"], "requires": ["never"]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 29, @@ -1618,7 +1667,8 @@ {"types": ["missiles", "super"], "requires": []}, {"types": ["powerbomb"], "requires": ["never"]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 30, @@ -1631,7 +1681,8 @@ "openEnd": 0 } }, - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 31, @@ -1647,7 +1698,8 @@ } }, "unlocksDoors": [{"nodeId": 1, "types": ["ammo"], "requires": []}], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 33, @@ -1667,6 +1719,7 @@ ], "clearsObstacles": ["A"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Use Screw Attack to break the bomb block by entering from a non-water room with a spin jump.", "It helps to enter as low as possible and with as much horizontal speed as possible and with HiJump turned off.", @@ -1691,6 +1744,7 @@ ], "clearsObstacles": ["A"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Use Screw Attack to break the bomb block by entering from a non-water room with a spin jump.", "It helps to enter as low as possible and with as much horizontal speed as possible and with HiJump turned off.", @@ -1789,6 +1843,7 @@ ], "clearsObstacles": ["A"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Use Screw Attack to break the bomb block by entering from a non-water room with a spin jump.", "It generally helps to enter as low as possible and with as much horizontal speed as possible, and with HiJump turned off.", @@ -1952,6 +2007,7 @@ ], "clearsObstacles": ["A"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Use blue speed to break the bomb block by entering from a non-water room with a spin jump.", "It generally helps to enter as low as possible and with as much horizontal speed as possible, and with HiJump turned off.", @@ -1978,7 +2034,8 @@ "canChainTemporaryBlue" ], "clearsObstacles": ["A"], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 124, @@ -1996,6 +2053,7 @@ ], "clearsObstacles": ["A"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Run into the room and gain temporary blue below the bomb blocks on the far side of the room.", "Then jump up to break the bomb blocks." @@ -2018,6 +2076,7 @@ ], "clearsObstacles": ["A"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Run into the room and gain temporary blue below the bomb blocks on the far side of the room.", "Then jump up to break the bomb blocks." @@ -2038,6 +2097,7 @@ ], "clearsObstacles": ["A"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Gain blue speed running into the room, then jump, morph, and unmorph while holding angle to obtain temporary blue.", "This method allows retaining a flash suit." @@ -2059,7 +2119,8 @@ "h_underwaterChainTemporaryBlue" ], "clearsObstacles": ["A"], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 37, @@ -2075,6 +2136,7 @@ ], "clearsObstacles": ["A"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": "Break the bomb block on the opposite side of the room.", "detailNote": [ "With extra run speeds between $1.2 and $1.D, it's not possible to break the bomb block directly with a bounce;", @@ -2098,6 +2160,7 @@ ], "clearsObstacles": ["A"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Gain blue speed running into the room, then jump to break the bomb block on the far side of the room." ] @@ -2119,6 +2182,7 @@ ], "clearsObstacles": ["A"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Gain blue speed running into the room, then jump to break the bomb block on the far side of the room." ], @@ -2143,7 +2207,8 @@ "HiJump" ], "clearsObstacles": ["A"], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 129, @@ -2158,7 +2223,8 @@ "canPreciseSpaceJump" ], "clearsObstacles": ["A"], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 104, @@ -2187,6 +2253,7 @@ {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "With a runway of 5 tiles (open end) in the other room,", "the ideal timing for the stutter is to release forward for 5 frames, and repress forward on the last possible frame before the transition.", @@ -2222,6 +2289,7 @@ {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "With only a runway of 4 tiles (open end) in the other room,", "the ideal timing for the stutter is to release forward for 4 frames, and repress forward on the last possible frame before the transition.", @@ -2258,6 +2326,7 @@ {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "With only a runway of 3 tiles (open end) in the other room,", "the ideal timing for the stutter is to release forward for 3 or 4 frames, and repress forward on the last possible frame before the transition.", @@ -2301,6 +2370,7 @@ {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "With only a runway of 2 tiles (open end) in the other room,", "the ideal timing for the stutter is to release forward for 3 frames, and repress forward on the last possible frame before the transition.", @@ -2345,6 +2415,7 @@ {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "With only 1 tile of runway in the other room, Samus should ideally start on the last pixel of runway with X subpixels of $3FFF or less.", "Run toward the door, releasing forward for exactly 1 frame and pressing it again on the last possible frame before the transition.", @@ -2400,7 +2471,8 @@ ]} ], "clearsObstacles": ["A"], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 39, @@ -2428,6 +2500,7 @@ {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Use Screw Attack to break the bomb block by entering from a non-water room with a spin jump, and make it all the way through the top door.", "Ideally, gain speed using between 13 and 13.5 tiles of runway (with an open end).", @@ -2475,6 +2548,7 @@ {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Use a 2-tap shortcharge and jump into the room with a last-frame jump, breaking the bomb block with blue speed, and making it all the way through the top door.", "Use angle to break spin, and do a momentum conserving turnaround either on the same frame or one frame later;", @@ -2520,6 +2594,7 @@ {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "devNote": [ "FIXME: It can be possible to use a longer runway, or a stutter shinecharge with Gravity re-equip, with a cost of some shinecharge frames." ] @@ -2536,7 +2611,8 @@ "h_navigateUnderwater", {"shinespark": {"frames": 23, "excessFrames": 2}} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 131, @@ -2557,6 +2633,7 @@ "h_trickyToCarryFlashSuit" ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Use Screw Attack to break the bomb block by entering from a non-water room with a last-frame spin jump, and make it to the platform below the top door.", "Longer runway lengths can also work, up to 17 tiles, but will make the trick somewhat more precise.", @@ -2595,6 +2672,7 @@ "h_trickyToCarryFlashSuit" ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Use a 2-tap shortcharge and jump into the room with a last-frame jump, breaking the bomb block with blue speed, and making it all the way through the top door.", "Use angle to break spin, and do a momentum conserving turnaround either on the same frame or one frame later;", @@ -2683,6 +2761,7 @@ ], "clearsObstacles": ["A"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Jump into a momentum-conserving morph with blue speed to break the bomb block and continue up to the top of the room.", "In most cases, after pressing down to initiate the momentum-conserving morph, all inputs can be released;", @@ -2703,6 +2782,7 @@ "canOffScreenMovement" ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Immediately after teleporting, press down to retract Grapple to avoid getting stuck inside the wall (in case the top door is blue, causing it to open with Grapple on entry)." ] @@ -2712,7 +2792,8 @@ "link": [2, 5], "name": "Base", "requires": [], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 45, @@ -2725,6 +2806,7 @@ "canXRayClimb" ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": "This is a short climb, only a few tiles." }, { @@ -2751,6 +2833,7 @@ ], "clearsObstacles": ["A"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": "Spark vertically through the bomb blocks. It is still possible to break the blocks while below 30 Energy by jumping before sparking.", "devNote": [ "This does not require canWaterShineCharge, as you can store the shinecharge before entering the room.", @@ -2773,7 +2856,8 @@ {"shineChargeFrames": 0} ], "endsWithShineCharge": true, - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 88, @@ -2790,7 +2874,8 @@ {"shineChargeFrames": 0} ], "endsWithShineCharge": true, - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 89, @@ -2806,7 +2891,8 @@ {"shineChargeFrames": 0} ], "endsWithShineCharge": true, - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 90, @@ -2831,6 +2917,7 @@ ], "endsWithShineCharge": true, "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "If only 2 tiles of runway are available and it is not possible to unlock the opposite door, then this requires a double frame-perfect stutter:", "run toward the door, release forward for exactly 3 frames, pressing forward again on the last possible frame before the transition." @@ -2861,6 +2948,7 @@ ], "endsWithShineCharge": true, "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "With only 1 tile of runway in the other room, Samus should ideally start on the last pixel of runway with X subpixels of $3FFF or less.", "Run toward the door, releasing forward for exactly 1 frame and pressing it again on the last possible frame before the transition.", @@ -2903,7 +2991,8 @@ "h_navigateUnderwater", {"shinespark": {"frames": 23, "excessFrames": 10}} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 42, @@ -2923,6 +3012,7 @@ "canMomentumConservingTurnaround" ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Use Screw Attack to break the bomb block by entering from a non-water room with a spin jump, and make it up to the center of the room.", "It helps to enter as low as possible and with as much horizontal speed as possible and with HiJump turned off." @@ -2951,6 +3041,7 @@ "canMomentumConservingTurnaround" ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Use blue speed to break the bomb block by entering from a non-water room with a spin jump, and make it up to the center of the room.", "It helps to enter as low as possible and with as much horizontal speed as possible and with HiJump turned off." @@ -2982,7 +3073,8 @@ {"types": ["super"], "requires": []}, {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 69, @@ -3006,7 +3098,8 @@ {"types": ["super"], "requires": []}, {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 48, @@ -3032,7 +3125,8 @@ } }, "bypassesDoorShell": "free", - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 49, @@ -3067,7 +3161,8 @@ } }, "bypassesDoorShell": "free", - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 110, @@ -3090,6 +3185,7 @@ }, "bypassesDoorShell": "free", "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Perform a double Spring Ball jump using a precisely timed bomb boost", "to propel Samus upward just long enough to get the mid-air Spring Ball jump.", @@ -3105,7 +3201,8 @@ "comesThroughToilet": "any" }, "requires": [], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 51, @@ -3122,7 +3219,8 @@ "canXRayTurnaround" ], "clearsObstacles": ["A"], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 109, @@ -3137,6 +3235,7 @@ }, "requires": [], "flashSuitChecked": true, + "blueSuitChecked": true, "note": "There are camera scroll blocks, which can be used to overload PLMs, just above the bomb blocks." }, { @@ -3154,7 +3253,8 @@ "h_artificialMorphBombThings" ], "clearsObstacles": ["A"], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 53, @@ -3163,7 +3263,8 @@ "requires": [ "Gravity" ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 54, @@ -3175,21 +3276,23 @@ "canSpringBallJumpMidAir" ]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 135, "link": [4, 3], - "name": "Use Flash Suit", + "name": "Use Stored Spark", "requires": [ - {"useFlashSuit": {}}, + "h_storedSpark", {"shinespark": {"frames": 3, "excessFrames": 0}} ], "exitCondition": { "leaveWithSpark": {} }, "unlocksDoors": [{"nodeId": 3, "types": ["ammo"], "requires": []}], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 55, @@ -3198,7 +3301,8 @@ "requires": [ "h_CrystalFlash" ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 136, @@ -3206,39 +3310,44 @@ "name": "Unlock Door", "requires": [], "unlocksDoors": [{"nodeId": 3, "types": ["ammo"], "requires": []}], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 56, "link": [4, 9], "name": "Base", "requires": [], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 57, "link": [5, 1], "name": "Base", "requires": [], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 58, "link": [5, 2], "name": "Base", "requires": [], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 137, "link": [5, 4], - "name": "Use Flash Suit", + "name": "Use Stored Spark", "requires": [ - {"useFlashSuit": {}}, + "h_storedSpark", {"shinespark": {"frames": 21, "excessFrames": 2}} ], "clearsObstacles": ["A"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": "Diagonal spark mid-air from just below the bomb blocks." }, { @@ -3248,7 +3357,8 @@ "requires": [ "h_CrystalFlash" ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 60, @@ -3277,7 +3387,19 @@ ]} ], "clearsObstacles": ["A"], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true + }, + { + "link": [5, 5], + "name": "Blue Suit", + "requires": [ + {"haveBlueSuit": {}} + ], + "clearsObstacles": ["A"], + "flashSuitChecked": true, + "blueSuitChecked": true, + "note": "Break the bomb blocks using a blue suit." }, { "link": [5, 5], @@ -3320,18 +3442,20 @@ "canSpringBallJumpMidAir" ]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 65, "link": [5, 6], - "name": "Use Flash Suit", + "name": "Use Stored Spark", "requires": [ - {"useFlashSuit": {}}, + "h_storedSpark", {"shinespark": {"frames": 6, "excessFrames": 6}} ], "clearsObstacles": ["A"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": "To save Energy, spark diagonally towards the outer sides of the room after hitting the ceiling bomb block.", "devNote": [ "Note that it is possible to spark into the ceiling to break the blocks without energy loss, but it has collision oscillation.", @@ -3341,24 +3465,26 @@ { "id": 138, "link": [5, 9], - "name": "Use Flash Suit", + "name": "Use Stored Spark", "requires": [ - {"useFlashSuit": {}}, + "h_storedSpark", {"shinespark": {"frames": 21, "excessFrames": 10}} ], "clearsObstacles": ["A"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": "Diagonal spark mid-air from just below the bomb blocks." }, { "id": 139, "link": [6, 4], - "name": "Use Flash Suit", + "name": "Use Stored Spark", "requires": [ - {"useFlashSuit": {}}, + "h_storedSpark", {"shinespark": {"frames": 17, "excessFrames": 2}} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Diagonal spark from the center platform, from a standing position hanging over the bomb blocks." ], @@ -3381,7 +3507,17 @@ ]} ], "clearsObstacles": ["A"], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true + }, + { + "link": [6, 5], + "name": "Blue Suit", + "requires": [ + {"haveBlueSuit": {}} + ], + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 62, @@ -3390,7 +3526,8 @@ "requires": [ "Gravity" ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 63, @@ -3410,17 +3547,19 @@ "h_underwaterMaxHeightSpringBallJump" ]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 140, "link": [6, 9], - "name": "Use Flash Suit", + "name": "Use Stored Spark", "requires": [ - {"useFlashSuit": {}}, + "h_storedSpark", {"shinespark": {"frames": 8, "excessFrames": 5}} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 25, @@ -3438,6 +3577,7 @@ {"types": ["powerbomb"], "requires": ["never"]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "devNote": "FIXME: This is a prime example for 3-room shinecharges, once the schema can model it." }, { @@ -3455,6 +3595,7 @@ }, "unlocksDoors": [{"types": ["ammo"], "requires": []}], "flashSuitChecked": true, + "blueSuitChecked": true, "devNote": [ "The `h_getBlueSpeedMaxRunway` requirement is to satisfy the tests,", "since we don't have a way to represent that the temporary blue originates from the startsWithShineCharge." @@ -3495,7 +3636,8 @@ {"types": ["super"], "requires": []}, {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 93, @@ -3513,6 +3655,7 @@ }, "unlocksDoors": [{"types": ["ammo"], "requires": []}], "flashSuitChecked": true, + "blueSuitChecked": true, "devNote": [ "The `h_getBlueSpeedMaxRunway` requirement is to satisfy the tests,", "since we don't have a way to represent that the temporary blue originates from the startsWithShineCharge." @@ -3529,6 +3672,7 @@ ], "clearsObstacles": ["A"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": "Spark diagonally through the bomb blocks." }, { @@ -3543,7 +3687,8 @@ "canXRayTurnaround" ], "clearsObstacles": ["A"], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 46, @@ -3567,6 +3712,7 @@ ], "clearsObstacles": ["A"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": "Spark vertically through the bomb blocks. It is still possible to break the blocks while below 30 Energy by jumping before sparking.", "devNote": [ "It is possible to save some energy by sparking into the left wall, but it won't work with midair sparking, which saves the same amount and is easier.", @@ -3585,6 +3731,7 @@ ], "clearsObstacles": ["A"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": "Spark diagonally through the bomb blocks." }, { @@ -3604,7 +3751,8 @@ {"types": ["super"], "requires": []}, {"types": ["missiles", "powerbomb"], "requires": ["never"]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 96, @@ -3622,6 +3770,7 @@ }, "unlocksDoors": [{"types": ["ammo"], "requires": []}], "flashSuitChecked": true, + "blueSuitChecked": true, "devNote": [ "The `h_getBlueSpeedMaxRunway` requirement is to satisfy the tests,", "since we don't have a way to represent that the temporary blue originates from the startsWithShineCharge." @@ -3643,6 +3792,7 @@ {"types": ["powerbomb"], "requires": ["never"]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "devNote": "FIXME: This is a prime example for 3-room shinecharges, once the schema can model it." }, { @@ -3660,6 +3810,7 @@ }, "unlocksDoors": [{"types": ["ammo"], "requires": []}], "flashSuitChecked": true, + "blueSuitChecked": true, "devNote": [ "The `h_getBlueSpeedMaxRunway` requirement is to satisfy the tests,", "since we don't have a way to represent that the temporary blue originates from the startsWithShineCharge." @@ -3694,6 +3845,7 @@ ], "clearsObstacles": ["A"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": "Spark diagonally through the bomb blocks." }, { @@ -3708,7 +3860,8 @@ "canXRayTurnaround" ], "clearsObstacles": ["A"], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 23, @@ -3732,6 +3885,7 @@ ], "clearsObstacles": ["A"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": "Spark vertically through the bomb blocks. It is still possible to break the blocks while below 30 Energy by jumping before sparking.", "devNote": [ "It is possible to save some energy by sparking into the left wall, but it won't work with midair sparking, which saves the same amount and is easier.", @@ -3750,6 +3904,7 @@ ], "clearsObstacles": ["A"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": "Spark diagonally through the bomb blocks." }, { @@ -3768,17 +3923,19 @@ ]} ]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 144, "link": [9, 4], - "name": "Use Flash Suit", + "name": "Use Stored Spark", "requires": [ - {"useFlashSuit": {}}, + "h_storedSpark", {"shinespark": {"frames": 5, "excessFrames": 3}} ], "flashSuitChecked": true, + "blueSuitChecked": true, "devNote": [ "FIXME: It is possible to use a flash suit to get through the top door with a diagonal spark." ] @@ -3788,7 +3945,8 @@ "link": [9, 6], "name": "Base", "requires": [], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 146, @@ -3804,6 +3962,7 @@ } ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "To unlock the door with a Super or Missiles, stand on the right side, backed against or close to the wall,", "do a crouch jump, and fire a diagonal shot near the peak of the jump." diff --git a/region/maridia/inner-green/Shaktool Room.json b/region/maridia/inner-green/Shaktool Room.json index 299453a85..7bb341123 100644 --- a/region/maridia/inner-green/Shaktool Room.json +++ b/region/maridia/inner-green/Shaktool Room.json @@ -98,6 +98,7 @@ ], "clearsObstacles": ["A", "B"], "flashSuitChecked": true, + "blueSuitChecked": true, "devNote": "Entering the room with the flag 'f_ShaktoolDoneDigging' set means that the sand blocks and Power Bomb blocks will not spawn." }, { @@ -111,7 +112,8 @@ "openEnd": 1 } }, - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 32, @@ -131,6 +133,7 @@ } }, "flashSuitChecked": true, + "blueSuitChecked": true, "devNote": "Max extra run speed $2.5" }, { @@ -148,6 +151,7 @@ "leaveShinecharged": {} }, "flashSuitChecked": true, + "blueSuitChecked": true, "devNote": "This runway could be longer with precise timing or a stutter, but it seems unnecessary at this difficulty." }, { @@ -164,7 +168,8 @@ "exitCondition": { "leaveShinecharged": {} }, - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 36, @@ -237,7 +242,8 @@ ], "resetsObstacles": ["A", "B", "R-Mode"], "farmCycleDrops": [{"enemy": "Shaktool", "count": 1}], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 5, @@ -247,7 +253,8 @@ {"obstaclesNotCleared": ["R-Mode"]}, "h_CrystalFlash" ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "link": [1, 1], @@ -274,6 +281,7 @@ "leaveWithGModeSetup": {} }, "flashSuitChecked": true, + "blueSuitChecked": true, "note": "If Shaktool is done digging, it is faster to use one of the snails from the right side of the room." }, { @@ -292,6 +300,7 @@ ], "gModeRegainMobility": {}, "flashSuitChecked": true, + "blueSuitChecked": true, "note": "This takes 1 min 40 sec if Shaktool is done digging." }, { @@ -321,6 +330,7 @@ ]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "This requires a precisely timed Crystal Flash, such that Shaktool hits Samus immediately after she gets Reserve Energy, to prevent getting double hit.", "With a second Reserve Tank and an Energy Tank, or the damage reduction from a suit, Samus is able to survive a second hit." @@ -329,7 +339,7 @@ { "id": 39, "link": [1, 1], - "name": "Direct G-mode Morph, Crystal Flash Interrupt", + "name": "Direct G-Mode Morph, Crystal Flash Interrupt", "entranceCondition": { "comeInWithGMode": { "mode": "direct", @@ -374,6 +384,7 @@ ]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "This requires a precisely timed Crystal Flash, such that Shaktool hits Samus immediately after she gets Reserve Energy, to prevent getting double hit.", "With a second Reserve Tank and an Energy Tank, or the damage reduction from a suit, Samus is able to survive a second hit." @@ -395,7 +406,8 @@ ], "clearsObstacles": ["A", "B"], "setsFlags": ["f_ShaktoolDoneDigging"], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 9, @@ -412,7 +424,8 @@ ], "clearsObstacles": ["A", "B"], "setsFlags": ["f_ShaktoolDoneDigging"], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 10, @@ -421,7 +434,8 @@ "requires": [ {"obstaclesCleared": ["A", "B"]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 11, @@ -434,6 +448,7 @@ "clearsObstacles": ["A", "B"], "setsFlags": ["f_ShaktoolDoneDigging"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": "Let the Snails (Yards) dig through the sand and follow them. They will not dig while off screen or while Samus is facing them, even while morphed." }, { @@ -461,6 +476,7 @@ "clearsObstacles": ["A", "B"], "setsFlags": ["f_ShaktoolDoneDigging"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "The Snails will dig through the sand without showing any visual difference. Each block they pass through gets closer to overloading PLMs.", "In order to Power Bomb the left wall before PLMs are overloaded, it is necessary to only allow one snail to dig, either by bombing one or by facing one to prevent movement until it is off screen.", @@ -490,6 +506,7 @@ "clearsObstacles": ["A", "B"], "setsFlags": ["f_ShaktoolDoneDigging"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Enter the room in direct G-mode, and land on the doorsill while artificially morphed. Use a bomb to boost over the the left runway, or land on a snail and bomb off of it while the water is low.", "If entering in immobile, it is important to avoid being pulled through the floor and into the water by the snail.", @@ -514,6 +531,7 @@ "h_ShaktoolVanillaFlag" ], "flashSuitChecked": true, + "blueSuitChecked": true, "devNote": [ "With the vanilla game behavior, grapple teleporting here does not set the flag 'f_ShaktoolDoneDigging', as Samus does not spend a frame on the right side of the room." ] @@ -532,6 +550,7 @@ ], "setsFlags": ["f_ShaktoolDoneDigging"], "flashSuitChecked": true, + "blueSuitChecked": true, "devNote": [ "Grapple teleporting crosses the room, so it will set the flag 'f_ShaktoolDoneDigging', assuming that the game is modified to treat the room symmetrically with how the flag gets set." ] @@ -550,6 +569,7 @@ ], "bypassesDoorShell": "yes", "flashSuitChecked": true, + "blueSuitChecked": true, "devNote": [ "With the vanilla game behavior, grapple teleporting here does not set the flag 'f_ShaktoolDoneDigging', as Samus does not spend a frame on the right side of the room." ] @@ -569,6 +589,7 @@ "bypassesDoorShell": "yes", "setsFlags": ["f_ShaktoolDoneDigging"], "flashSuitChecked": true, + "blueSuitChecked": true, "devNote": [ "Grapple teleporting crosses the room, so it will set the flag 'f_ShaktoolDoneDigging', assuming that the game is modified to treat the room symmetrically with how the flag gets set." ] @@ -592,6 +613,7 @@ }, "bypassesDoorShell": "yes", "flashSuitChecked": true, + "blueSuitChecked": true, "devNote": [ "With the vanilla game behavior, grapple teleporting here does not set the flag 'f_ShaktoolDoneDigging', as Samus does not spend a frame on the right side of the room." ] @@ -616,6 +638,7 @@ "bypassesDoorShell": "yes", "setsFlags": ["f_ShaktoolDoneDigging"], "flashSuitChecked": true, + "blueSuitChecked": true, "devNote": [ "Grapple teleporting crosses the room, so it will set the flag 'f_ShaktoolDoneDigging', assuming that the game is modified to treat the room symmetrically with how the flag gets set." ] @@ -639,6 +662,7 @@ }, "bypassesDoorShell": "yes", "flashSuitChecked": true, + "blueSuitChecked": true, "devNote": [ "With the vanilla game behavior, grapple teleporting here does not set the flag 'f_ShaktoolDoneDigging', as Samus does not spend a frame on the right side of the room." ] @@ -663,6 +687,7 @@ "bypassesDoorShell": "yes", "setsFlags": ["f_ShaktoolDoneDigging"], "flashSuitChecked": true, + "blueSuitChecked": true, "devNote": [ "Grapple teleporting crosses the room, so it will set the flag 'f_ShaktoolDoneDigging', assuming that the game is modified to treat the room symmetrically with how the flag gets set." ] @@ -759,6 +784,7 @@ ], "clearsObstacles": ["A", "B"], "flashSuitChecked": true, + "blueSuitChecked": true, "devNote": "Entering the room with the flag 'f_ShaktoolDoneDigging' set means that the sand blocks and Power Bomb blocks will not spawn." }, { @@ -770,10 +796,12 @@ "h_ShaktoolCameraFix", "canDodgeWhileShooting", "canTrickyJump", - "Gravity" + "Gravity", + {"noBlueSuit": {}} ], "clearsObstacles": ["B"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Bounce the snails around the room in order to destroy the sand blocks, opening up the runway.", "A snail can be made to bounce in 3 ways: shooting it off a wall or ceiling, kicking it on the ground, or touching it while it is already bouncing.", @@ -797,10 +825,12 @@ "canBePatient", "canInsaneJump", {"enemyDamage": {"enemy": "Yard", "type": "contact", "hits": 1}} - ]} + ]}, + {"noBlueSuit": {}} ], "clearsObstacles": ["B"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Bounce the snails around the room in order to destroy the sand blocks, opening up the runway.", "Without Gravity, this requires greater caution as the water will slow Samus down and increase the risk of taking damage from a snail.", @@ -824,7 +854,8 @@ "openEnd": 1 } }, - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 33, @@ -844,6 +875,7 @@ } }, "flashSuitChecked": true, + "blueSuitChecked": true, "devNote": "Max extra run speed $1.F" }, { @@ -861,6 +893,7 @@ "leaveShinecharged": {} }, "flashSuitChecked": true, + "blueSuitChecked": true, "devNote": "This runway could be longer with precise timing or a stutter, but it seems unnecessary at this difficulty." }, { @@ -877,7 +910,8 @@ "exitCondition": { "leaveShinecharged": {} }, - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 37, @@ -888,7 +922,10 @@ "h_ShaktoolCameraFix", "f_ShaktoolDoneDigging" ]}, - "h_useMorphBombs", + {"or": [ + "h_useMorphBombs", + {"haveBlueSuit": {}} + ]}, "canDodgeWhileShooting", {"or": [ {"and": [ @@ -923,7 +960,8 @@ ], "resetsObstacles": ["A", "B", "R-Mode"], "farmCycleDrops": [{"enemy": "Yard", "count": 2}], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 27, @@ -933,7 +971,8 @@ {"obstaclesNotCleared": ["R-Mode"]}, "h_CrystalFlash" ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 28, @@ -945,7 +984,8 @@ "exitCondition": { "leaveWithGModeSetup": {} }, - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 29, @@ -958,6 +998,7 @@ "leaveWithGModeSetup": {} }, "flashSuitChecked": true, + "blueSuitChecked": true, "note": "Shoot a Snail to make it chase Samus." }, { @@ -970,6 +1011,7 @@ ], "gModeRegainMobility": {}, "flashSuitChecked": true, + "blueSuitChecked": true, "note": "Wait for Shaktool. If Shaktool's camera is fixed it is possible without Shaktool, by using a Snail (Yard): a Super or any SBA can trigger a Yard to attack." }, { @@ -990,6 +1032,7 @@ ], "gModeRegainMobility": {}, "flashSuitChecked": true, + "blueSuitChecked": true, "note": "If Shaktool's camera is fixed it is possible to regain mobility by using a Snail (Yard): a Super or any SBA can trigger a Yard to attack." }, { @@ -1004,6 +1047,7 @@ }, "setsFlags": ["f_ShaktoolDoneDigging"], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "In the vanilla game, if the flag is not already set, entering from the right door immediately sets the flag, though the room must be reset for it to take effect.", "Resetting the room also fixes the camera, which gets broken in this state." @@ -1037,6 +1081,7 @@ ]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "This requires a precisely timed Crystal Flash, such that Shaktool hits Samus immediately after she gets Reserve Energy, to prevent getting double hit.", "With a second Reserve Tank and an Energy Tank, or the damage reduction from a suit, Samus is able to survive a second hit." @@ -1045,7 +1090,7 @@ { "id": 41, "link": [2, 2], - "name": "Direct G-mode Morph, Crystal Flash Interrupt", + "name": "Direct G-Mode Morph, Crystal Flash Interrupt", "entranceCondition": { "comeInWithGMode": { "mode": "direct", @@ -1073,6 +1118,7 @@ ]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "This requires a precisely timed Crystal Flash, such that Shaktool hits Samus immediately after she gets Reserve Energy, to prevent getting double hit.", "With a second Reserve Tank and an Energy Tank, or the damage reduction from a suit, Samus is able to survive a second hit." diff --git a/region/maridia/inner-green/Spring Ball Room.json b/region/maridia/inner-green/Spring Ball Room.json index 24977ed73..478b8cdf3 100644 --- a/region/maridia/inner-green/Spring Ball Room.json +++ b/region/maridia/inner-green/Spring Ball Room.json @@ -51,7 +51,8 @@ "openEnd": 0 } }, - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 2, @@ -60,7 +61,8 @@ "requires": [ "h_CrystalFlash" ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "link": [1, 1], @@ -87,7 +89,8 @@ "h_bombThings", "h_additionalBomb" ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 4, @@ -96,7 +99,8 @@ "requires": [ "h_useSpringBall" ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 5, @@ -108,6 +112,7 @@ "canRJump" ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Roll all the way right before using Xray to stand up, aligned with the right side tiles.", "Partially clip into the floor to enable the next jump.", @@ -140,6 +145,7 @@ ]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "devNote": "The item is inside of a Chozo Ball, so there is no way to use artificial morph on the return." }, { @@ -175,18 +181,20 @@ ]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": "It may be necessary to turn off Gravity Suit in order have more time to jump and morph underwater." }, { "id": 8, "link": [2, 1], - "name": "Suitless Springball Jump", + "name": "Suitless Spring Ball Jump", "requires": [ "canSuitlessMaridia", "HiJump", "canSpringBallJumpMidAir" ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 9, @@ -198,18 +206,20 @@ "can4HighMidAirMorph" ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": "Space jump while partially submerged for more time to mid-air morph." }, { "id": 10, "link": [2, 1], - "name": "Suitless, Bootless, Bomb into Springball Jump", + "name": "Suitless, Bootless, Bomb into Spring Ball Jump", "requires": [ "canSunkenTileWideWallClimb", "canUnderwaterBombIntoSpringBallJump", "canWallJumpInstantMorph" ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Wall jump until Samus is just below the water line and then morph and place a Bomb", "Use the brief moment during the Bomb explosion that knocks Samus upwards to setup a Springball jump to jump out of the water." @@ -232,6 +242,7 @@ "canSpaceJumpWaterBounce" ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Perform a canSunkenTileWideWallClimb to get to the water surface, then use space jump at the water surface.", "Then either use space jump when the water is low then a spring ball jump to escape, or space jump when the water is high into a tight midair morph." diff --git a/region/maridia/inner-green/West Sand Hall.json b/region/maridia/inner-green/West Sand Hall.json index fdcd280ee..f1d3c269b 100644 --- a/region/maridia/inner-green/West Sand Hall.json +++ b/region/maridia/inner-green/West Sand Hall.json @@ -93,7 +93,8 @@ "openEnd": 1 } }, - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 2, @@ -102,7 +103,8 @@ "requires": [ "h_CrystalFlash" ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "link": [1, 1], @@ -137,7 +139,8 @@ ]} ]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 4, @@ -150,7 +153,8 @@ "Gravity", {"shinespark": {"frames": 77, "excessFrames": 4}} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 5, @@ -173,7 +177,8 @@ ]} ]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 6, @@ -191,6 +196,7 @@ "canPlayInSand" ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": "Jump onto the platform, then hold angle-down to straight jump and move right, activating the spark when Samus is about one tile deep into the sandfall." }, { @@ -211,6 +217,7 @@ "canInsaneJump" ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Run into the room using exactly 20 tiles of runway (with closed ends) in the other room, or up to 6 pixels more (getting extra run speed exactly $4.4).", "Jump on the last possible frame, and aim down as Samus approaches the overhang, to avoid bonking it.", @@ -241,6 +248,7 @@ "canLateralMidAirMorph" ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Run into the room using exactly 20 tiles of runway (with an open end) in the other room, or up to 11 pixels more or 1 pixel less (getting extra run speed $4.5 or $4.6).", "Jump toward the end of the runway, quickly aim down, and then morph when close to the ceiling.", @@ -272,6 +280,7 @@ "canSpringFling" ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Enter the room with a normalized extra run speed of $2.0,", "which can be obtained by gaining max run speed with Speedbooster unequipped;", @@ -289,12 +298,13 @@ { "id": 59, "link": [1, 2], - "name": "Use Flash Suit", + "name": "Use Stored Spark", "requires": [ - {"useFlashSuit": {}}, + "h_storedSpark", {"shinespark": {"frames": 82, "excessFrames": 13}} ], "flashSuitChecked": true, + "blueSuitChecked": true, "devNote": "With these excess frames, Samus may only reach the final pillar or the sand in between, which may then require a sand fall bounce." }, { @@ -321,7 +331,8 @@ {"enemyDamage": {"enemy": "Evir", "type": "particle", "hits": 1}} ]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 69, @@ -340,6 +351,7 @@ "canTrickyDodgeEnemies" ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Run into the room using between 10 and 12 tiles of runway,", "and jump at some point after the transition, to reach the center of the room." @@ -368,6 +380,7 @@ "canTrickyDodgeEnemies" ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Run into the room using between 7 tiles of runway,", "and jump at some point after the transition, to reach the center of the room." @@ -392,6 +405,7 @@ "canInsaneJump" ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Space Jump into the room with extra run speed at least $5.2.", "Land on the floating block before the first Evir." @@ -402,14 +416,31 @@ "link": [1, 5], "name": "Base", "requires": [ - "Gravity" + "Gravity", + {"noBlueSuit": {}} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true + }, + { + "link": [1, 5], + "name": "Blue Suit Sand Walk", + "requires": [ + "Gravity", + {"haveBlueSuit": {}}, + "canInsaneJump" + ], + "flashSuitChecked": true, + "blueSuitChecked": true, + "note": [ + "To keep a blue suit, do a full height jump, and land one tile past the edge of the ledge (not touching the sandfall),", + "wait for Samus to trip when landing, then hold forward to walk on the sand with a blue suit." + ] }, { "id": 11, "link": [1, 5], - "name": "Suitless SpringBall Jump", + "name": "Suitless Spring Ball Jump", "requires": [ "canSuitlessMaridia", "HiJump", @@ -417,7 +448,8 @@ "canPlayInSand" ], "flashSuitChecked": true, - "note": "Time the springball jump to be just before Samus enters the sand." + "blueSuitChecked": true, + "note": "Time the spring ball jump to be just before Samus enters the sand." }, { "id": 12, @@ -434,9 +466,11 @@ "HiJump", "can4HighMidAirMorph" ]} - ]} + ]}, + {"noBlueSuit": {}} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Time a bomb to hit Samus when she is morphed, 1 pixel into the sand, inside a sandfall, and moving horizontally.", "There is a setup using a Sand IBJ to rise up the sandfall from the floor and Sandfall Bounce with the correct timing.", @@ -461,6 +495,7 @@ "canPlayInSand" ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Gain momentum in the room to the left, then jump at the edge of the runway in order to land on the first pillar.", "Requires a runway of at least 2 tiles (with no open end) in the adjacent room.", @@ -484,6 +519,7 @@ "canCarefulJump" ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Gain momentum in the room to the left, then jump after entering this room in order to land on the first pillar. Ensure that Speed Booster is disabled." ], @@ -505,6 +541,7 @@ "canTrickyJump" ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Gain momentum in the room to the left, then jump in this room in order to land on the first pillar. Ensure that Speed Booster is disabled.", "With a short runway of 4 tiles (with an open end) in the adjacent room, it is required to jump as late as possible at the edge of the runway in this room.", @@ -532,6 +569,7 @@ "h_unpauseKeepMomentum" ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Enter with at least 1 tile of run speed from an air room, with Speed Booster unequipped.", "Jump from near the end of the runway (though a jump from 1-2 tiles away from the end can still work).", @@ -557,6 +595,7 @@ "canPlayInSand" ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Gain momentum in the room to the left, then jump in this room in order to land on the first pillar. Ensure that Speed Booster is disabled.", "Requires a runway of only approximately 0.5 tiles in the adjacent room.", @@ -574,6 +613,7 @@ "canCrossRoomJumpIntoWater" ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": "Bomb boost through the doorway. Get the bomb boost while as close to the door transition as possible in order to get to the first pillar." }, { @@ -588,6 +628,7 @@ }, "requires": [], "flashSuitChecked": true, + "blueSuitChecked": true, "note": ["Space Jump into the room with extra run speed at least $2.4."] }, { @@ -605,6 +646,7 @@ "canTrickyJump" ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Space Jump into the room with max run speed without Speed Booster, then quickly airball after the transition." ] @@ -612,9 +654,9 @@ { "id": 60, "link": [1, 5], - "name": "Use Flash Suit", + "name": "Use Stored Spark", "requires": [ - {"useFlashSuit": {}}, + "h_storedSpark", {"or": [ {"shinespark": {"frames": 6, "excessFrames": 2}}, {"and": [ @@ -623,7 +665,8 @@ ]} ]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 21, @@ -646,7 +689,8 @@ ]} ]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 22, @@ -660,6 +704,7 @@ {"shinespark": {"frames": 78, "excessFrames": 33}} ], "flashSuitChecked": true, + "blueSuitChecked": true, "devNote": "With low Energy, this will not get Samus all the way to 1, but it will kill the left Evir and she can cross the rest." }, { @@ -678,6 +723,7 @@ {"shinespark": {"frames": 76, "excessFrames": 34}} ], "flashSuitChecked": true, + "blueSuitChecked": true, "devNote": "With low Energy, this will not get Samus all the way to 1, but it will kill the left Evir and she can cross the rest." }, { @@ -696,6 +742,7 @@ "canPlayInSand" ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": "Jump across to the first pillar, then hold angle-down to straight jump and move left, activating the spark up to about two tiles deep into the sandfall." }, { @@ -711,7 +758,8 @@ "requires": [ "h_navigateUnderwater" ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 26, @@ -723,7 +771,8 @@ } }, "requires": [], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 27, @@ -736,7 +785,8 @@ "openEnd": 1 } }, - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 65, @@ -764,6 +814,7 @@ ], "farmCycleDrops": [{"enemy": "Evir", "count": 1}], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Jump out 1 tile from the ledge and fire angle-down shots at the closest Evir,", "to quickly kill it before it descends too far.", @@ -818,16 +869,21 @@ {"disableEquipment": "Ice"}, {"cycleFrames": 1200} ]} - ]} + ]}, + {"noBlueSuit": {}} ], "farmCycleDrops": [{"enemy": "Evir", "count": 3}], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "The Evirs must be killed quickly before they descend too far.", "It can help to fire at the Evirs from a safe distance", "so they will not be triggered to attack Samus." ], - "devNote": ["FIXME: Slower methods are possible for resetting at the left door."] + "devNote": [ + "FIXME: Slower methods are possible for resetting at the left door.", + "FIXME: This can be possible with a blue suit." + ] }, { "id": 67, @@ -855,10 +911,12 @@ "canInsaneJump", "Spazer", {"disableEquipment": "Ice"}, - {"cycleFrames": 1440} + {"cycleFrames": 1440}, + {"noBlueSuit": {}} ], "farmCycleDrops": [{"enemy": "Evir", "count": 2}], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "The Evirs must be killed quickly before they descend too far.", "With only Spazer available for damage, this is particularly tight.", @@ -873,7 +931,8 @@ "requires": [ "h_CrystalFlash" ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "link": [2, 2], @@ -903,7 +962,8 @@ "exitCondition": { "leaveWithGModeSetup": {} }, - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 30, @@ -918,6 +978,7 @@ "leaveWithGModeSetup": {} }, "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "The Evir won't shoot unless Samus is on the left tile of the platform. Getting to the transition tiles while standing before the projectile can be tricky.", "Either do two quick small spin jumps, one onto it and one back, breaking spin before landing both times,", @@ -932,7 +993,8 @@ "Gravity", "SpaceJump" ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 32, @@ -946,7 +1008,8 @@ {"enemyDamage": {"enemy": "Evir", "type": "particle", "hits": 1}} ]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 33, @@ -961,20 +1024,37 @@ {"enemyDamage": {"enemy": "Evir", "type": "particle", "hits": 1}} ]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 34, "link": [2, 4], - "name": "Suitless Itemless (Right to Center)", + "name": "Suitless Itemless", "requires": [ "canSuitlessMaridia", "canTrickyJump", - "canPlayInSand" + "canPlayInSand", + {"noBlueSuit": {}} ], "flashSuitChecked": true, "note": "It is possible to cross this segment with nothing. Cancel spin before hitting the sand, then get a good jump off the sand in multiple places." }, + { + "link": [2, 4], + "name": "Blue Suit Sand Walk", + "requires": [ + {"haveBlueSuit": {}}, + {"notable": "Blue Suit Sand Walk"} + ], + "flashSuitChecked": true, + "blueSuitChecked": true, + "note": [ + "From the first pillar, simply walk off the edge of the ledge to reliably land on the sand without losing a blue suit.", + "From the second pillar, do a full height jump and land on the sand (while avoiding the sandfall),", + "and hold forward after Samus trips on the sand." + ] + }, { "id": 35, "link": [2, 5], @@ -992,6 +1072,7 @@ "canTrickyDashJump" ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Run into the room using between 11 and 12 tiles of runway in the other room (extra run speed between $2.D and $3.1).", "Jump somewhat soon after entering the room, and land on the pillar just past the last Evir.", @@ -1025,6 +1106,7 @@ "canPlayInSand" ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Run into the room with an exact amount of speed, by using 7.5 tiles of runway or up to 4 pixels more (getting extra run speed exactly $2.3).", "After entering the room, jump from the last tile or two of runway, perform a lateral mid-air morph, and land on the pillar just past the last Evir." @@ -1050,6 +1132,7 @@ "canDownGrab" ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "In the other room, gain run speed using at least 36 tiles (extra run speed at least $6.4), and Space Jump low through the door.", "Land on the block just past the last Evir." @@ -1080,6 +1163,7 @@ ]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": "Dodging the Evirs can be tricky. Enter on the far right side, facing left, and hold left on entry to dodge them reliably." }, { @@ -1107,6 +1191,7 @@ ]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": "Dodging the Evirs can be tricky. Enter on the far right side, facing left, and hold left on entry to dodge them reliably." }, { @@ -1119,7 +1204,8 @@ "h_pauseAbuseMinimalReserveRefill" ]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 41, @@ -1136,6 +1222,7 @@ ]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": "Enter on the right side of the transition and move left to avoid damage.", "devNote": [ "Entering from a non-sand room makes the suitless+hijumpless dodge only possible with a walljump.", @@ -1150,12 +1237,13 @@ "Gravity", "SpaceJump" ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 43, "link": [4, 2], - "name": "Gravity Platforming (Center to Right)", + "name": "Gravity Platforming", "requires": [ "Gravity", {"or": [ @@ -1168,12 +1256,13 @@ {"enemyDamage": {"enemy": "Evir", "type": "particle", "hits": 1}} ]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 44, "link": [4, 2], - "name": "Suitless Platforming (Center to Right)", + "name": "Suitless Platforming", "requires": [ "canSuitlessMaridia", "canPlayInSand", @@ -1183,12 +1272,13 @@ {"enemyDamage": {"enemy": "Evir", "type": "particle", "hits": 1}} ]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 45, "link": [4, 2], - "name": "Suitless Bootless Spring Ball (Center to Right)", + "name": "Suitless Bootless Spring Ball", "requires": [ {"notable": "Suitless Bootless Spring Ball"}, "canSuitlessMaridia", @@ -1205,6 +1295,7 @@ ]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Perform multiple stationary lateral mid-air morphs, while avoiding the Evir projectiles, to cross the room.", "It is necessary to start the jumps from the far side of the platforms in order to gain more horizontal momentum before entering the sand falls.", @@ -1224,6 +1315,7 @@ "canTrickyUseFrozenEnemies" ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "From the sand fall, quickly get onto the left platform to prevent the right side Evir from lowering too far.", "Freeze the right Evir, then jump on the sand to the right while shooting ice over the first Evir to also freeze the second.", @@ -1234,13 +1326,14 @@ { "id": 61, "link": [4, 2], - "name": "Use Flash Suit", + "name": "Use Stored Spark", "requires": [ "canPlayInSand", - {"useFlashSuit": {}}, + "h_storedSpark", {"shinespark": {"frames": 6, "excessFrames": 4}} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 47, @@ -1250,7 +1343,8 @@ "Gravity", "SpaceJump" ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 48, @@ -1273,7 +1367,8 @@ {"enemyDamage": {"enemy": "Evir", "type": "particle", "hits": 1}} ]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 49, @@ -1288,7 +1383,8 @@ {"enemyDamage": {"enemy": "Evir", "type": "particle", "hits": 1}} ]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 50, @@ -1308,6 +1404,7 @@ ]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "The first Spring Ball jump is performed farther away from the sand tile so Samus can build up momentum and height before entering the sand fall.", "The second jump must be made from the right half of the solid tile (but not the rightmost pixels.)", @@ -1328,6 +1425,7 @@ "canTrickyUseFrozenEnemies" ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Freeze the Evir quickly before it descends and use it to get to the platforms.", "Getting a good jump while on the right side of the floating block can get Samus to the leftmost block.", @@ -1337,13 +1435,14 @@ { "id": 62, "link": [4, 5], - "name": "Use Flash Suit", + "name": "Use Stored Spark", "requires": [ "canPlayInSand", - {"useFlashSuit": {}}, + "h_storedSpark", {"shinespark": {"frames": 5, "excessFrames": 4}} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 52, @@ -1362,6 +1461,7 @@ ]} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Use the projectile from a fully submerged Evir to boost Samus into the sandfall, providing just enough height to make the first and hardest jump.", "Time the projectile to hit Samus when at the maximum height from a jump.", @@ -1382,11 +1482,28 @@ "h_navigateUnderwater", {"or": [ "Gravity", - "canPlayInSand", - "HiJump" + "HiJump", + {"and": [ + "canPlayInSand", + {"noBlueSuit": {}} + ]} ]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true + }, + { + "link": [5, 1], + "name": "Blue Suit Sand Walk", + "requires": [ + {"haveBlueSuit": {}}, + {"notable": "Blue Suit Sand Walk"} + ], + "flashSuitChecked": true, + "blueSuitChecked": true, + "note": [ + "Simply walk off the ledge and continue holding forward, to land on the sand while keeping a blue suit." + ] }, { "id": 54, @@ -1398,9 +1515,11 @@ {"or": [ "canSunkenTileWideWallClimb", "h_underwaterCrouchJumpDownGrab" - ]} + ]}, + {"noBlueSuit": {}} ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Fall into the sand and roll all the way to the left, through an invisible tile and under the door platform.", "Shoot upwards to break part of the platform, then perform a crouch jump and down grab or a tile-wide wall jump climb to escape." @@ -1409,13 +1528,14 @@ { "id": 63, "link": [5, 2], - "name": "Use Flash Suit", + "name": "Use Stored Spark", "requires": [ "canPlayInSand", - {"useFlashSuit": {}}, + "h_storedSpark", {"shinespark": {"frames": 64, "excessFrames": 13}} ], "flashSuitChecked": true, + "blueSuitChecked": true, "devNote": "With these excess frames, Samus may only reach the final pillar or the sand in between, which would require a sand fall bounce." }, { @@ -1426,12 +1546,13 @@ "Gravity", "SpaceJump" ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 56, "link": [5, 4], - "name": "Gravity Platforming (Left to Center)", + "name": "Gravity Platforming", "requires": [ "Gravity", {"or": [ @@ -1444,12 +1565,13 @@ {"enemyDamage": {"enemy": "Evir", "type": "particle", "hits": 1}} ]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 57, "link": [5, 4], - "name": "Suitless Platforming (Left to Center)", + "name": "Suitless Platforming", "requires": [ "canSuitlessMaridia", "HiJump", @@ -1467,12 +1589,13 @@ {"enemyDamage": {"enemy": "Evir", "type": "particle", "hits": 1}} ]} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true }, { "id": 58, "link": [5, 4], - "name": "Suitless Bootless Spring Ball (Left to Center)", + "name": "Suitless Bootless Spring Ball", "requires": [ {"notable": "Suitless Bootless Spring Ball"}, "canSuitlessMaridia", @@ -1482,6 +1605,7 @@ "canInsaneJump" ], "flashSuitChecked": true, + "blueSuitChecked": true, "note": [ "Perform multiple stationary lateral mid-air morphs, while avoiding the Evir projectiles, to cross the room.", "It is necessary to start the jumps from the far side of the platforms in order to gain more horizontal momentum before entering the sand falls.", @@ -1491,13 +1615,14 @@ { "id": 64, "link": [5, 4], - "name": "Use Flash Suit", + "name": "Use Stored Spark", "requires": [ "canPlayInSand", - {"useFlashSuit": {}}, + "h_storedSpark", {"shinespark": {"frames": 6, "excessFrames": 4}} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "blueSuitChecked": true } ], "notables": [ @@ -1603,8 +1728,15 @@ "Getting a good jump while on the right side of the next floating block can get Samus to the leftmost block.", "With a clean jump off of the sand, Samus can then get onto the final vertical pillar." ] + }, + { + "id": 12, + "name": "Blue Suit Sand Walk", + "note": [ + "To reliably land on the sand while keeping a blue suit, normalized movement is required." + ] } ], "nextStratId": 74, - "nextNotableId": 12 + "nextNotableId": 13 } \ No newline at end of file