Skip to content

Commit 698b5e9

Browse files
authored
Merge pull request #1999 from blkerby/stutter-shinecharges-4
Aqueduct shinecharges
2 parents 126d473 + a75582b commit 698b5e9

2 files changed

Lines changed: 338 additions & 13 deletions

File tree

region/brinstar/pink/Waterway Energy Tank Room.json

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -303,12 +303,15 @@
303303
"comeInShinecharged": {}
304304
},
305305
"requires": [
306-
{"shineChargeFrames": 40},
306+
{"shineChargeFrames": 20},
307307
"canHorizontalShinespark",
308-
{"shinespark": {"frames": 155, "excessFrames": 10}}
308+
{"shinespark": {"frames": 152, "excessFrames": 10}}
309309
],
310310
"clearsObstacles": ["A"],
311-
"flashSuitChecked": true
311+
"flashSuitChecked": true,
312+
"note": [
313+
"If coming from a water environment, this assumes entering with a small spin jump."
314+
]
312315
},
313316
{
314317
"id": 14,

region/maridia/inner-pink/Aqueduct.json

Lines changed: 332 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -734,22 +734,54 @@
734734
{
735735
"id": 21,
736736
"link": [2, 1],
737-
"name": "Stutter Water ShineCharge",
737+
"name": "Stutter Water Shinecharge",
738738
"entranceCondition": {
739-
"comeInRunning": {
740-
"speedBooster": true,
741-
"minTiles": 2.4375
739+
"comeInStutterShinecharging": {
740+
"minTiles": 2
742741
}
743742
},
744743
"requires": [
745744
"h_canUsePowerBombs",
746745
"canStutterWaterShineCharge",
747-
"canShinechargeMovement",
746+
"canShinechargeMovementComplex",
748747
"h_canShineChargeMaxRunway",
749-
{"shinespark": {"frames": 25, "excessFrames": 11}}
748+
{"or": [
749+
{"shinespark": {"frames": 25, "excessFrames": 11}},
750+
{"and": [
751+
"canMidairShinespark",
752+
{"shinespark": {"frames": 22, "excessFrames": 11}}
753+
]}
754+
]}
750755
],
751756
"clearsObstacles": ["A"]
752757
},
758+
{
759+
"link": [2, 1],
760+
"name": "Very Precise Stutter Water Shinecharge",
761+
"entranceCondition": {
762+
"comeInStutterShinecharging": {
763+
"minTiles": 1
764+
}
765+
},
766+
"requires": [
767+
"h_canUsePowerBombs",
768+
"canPreciseStutterWaterShineCharge",
769+
"canInsaneJump",
770+
"canShinechargeMovementTricky",
771+
"h_canShineChargeMaxRunway",
772+
{"or": [
773+
{"shinespark": {"frames": 25, "excessFrames": 11}},
774+
{"and": [
775+
"canMidairShinespark",
776+
{"shinespark": {"frames": 22, "excessFrames": 11}}
777+
]}
778+
]}
779+
],
780+
"clearsObstacles": ["A"],
781+
"note": [
782+
"With only 1 tile of runway, this requires a single-frame stutter (release forward then repress on the next frame), on the last possible frame."
783+
]
784+
},
753785
{
754786
"id": 22,
755787
"link": [2, 1],
@@ -902,16 +934,69 @@
902934
{
903935
"id": 27,
904936
"link": [2, 2],
905-
"name": "Stutter Shinecharge, Shinespark Return",
937+
"name": "Stutter Shinecharge, Leave With Spark",
906938
"entranceCondition": {
907-
"comeInRunning": {
908-
"speedBooster": true,
939+
"comeInStutterShinecharging": {
909940
"minTiles": 2
910941
}
911942
},
912943
"requires": [
913-
"canShinechargeMovementComplex",
914944
"canStutterWaterShineCharge",
945+
"canShinechargeMovementComplex",
946+
{"or": [
947+
{"shinespark": {"frames": 12}},
948+
{"and": [
949+
"canShinechargeMovementTricky",
950+
{"shinespark": {"frames": 3}}
951+
]}
952+
]}
953+
],
954+
"exitCondition": {
955+
"leaveWithSpark": {}
956+
},
957+
"unlocksDoors": [
958+
{"types": ["super"], "requires": []},
959+
{"types": ["missiles", "powerbomb"], "requires": ["never"]}
960+
]
961+
},
962+
{
963+
"link": [2, 2],
964+
"name": "Water Shinecharge, Hero Shot Leave With Spark",
965+
"entranceCondition": {
966+
"comeInRunning": {
967+
"minTiles": 0.4375,
968+
"speedBooster": true
969+
}
970+
},
971+
"requires": [
972+
"canWaterShineCharge",
973+
"canShinechargeMovementTricky",
974+
"canHeroShot",
975+
{"shinespark": {"frames": 29}}
976+
],
977+
"exitCondition": {
978+
"leaveWithSpark": {}
979+
},
980+
"unlocksDoors": [
981+
{"types": ["super"], "requires": []},
982+
{"types": ["missiles", "powerbomb"], "requires": ["never"]}
983+
],
984+
"note": [
985+
"Start with low run speed by positioning exactly 2 pixels from the door."
986+
]
987+
},
988+
{
989+
"link": [2, 2],
990+
"name": "Very Precise Stutter Shinecharge, Leave With Spark",
991+
"entranceCondition": {
992+
"comeInStutterShinecharging": {
993+
"minTiles": 1
994+
}
995+
},
996+
"requires": [
997+
"canShinechargeMovementComplex",
998+
"canPreciseStutterWaterShineCharge",
999+
"canInsaneJump",
9151000
"h_canShineChargeMaxRunway",
9161001
{"or": [
9171002
{"shinespark": {"frames": 12}},
@@ -927,6 +1012,243 @@
9271012
"unlocksDoors": [
9281013
{"types": ["super"], "requires": []},
9291014
{"types": ["missiles", "powerbomb"], "requires": ["never"]}
1015+
],
1016+
"note": [
1017+
"With only 1 tile of runway, this requires a single-frame stutter (release forward then repress on the next frame), on the last possible frame."
1018+
]
1019+
},
1020+
{
1021+
"link": [2, 2],
1022+
"name": "Precise Stutter Shinecharge, Leave Shinecharged (5-tile runway)",
1023+
"entranceCondition": {
1024+
"comeInStutterShinecharging": {
1025+
"minTiles": 5
1026+
}
1027+
},
1028+
"requires": [
1029+
"canPreciseStutterWaterShineCharge",
1030+
"canShinechargeMovementTricky",
1031+
"canInsaneJump",
1032+
{"shineChargeFrames": 130},
1033+
{"or": [
1034+
"canBeVeryPatient",
1035+
{"shineChargeFrames": 15}
1036+
]}
1037+
],
1038+
"exitCondition": {
1039+
"leaveShinecharged": {}
1040+
},
1041+
"unlocksDoors": [
1042+
{"types": ["super"], "requires": []},
1043+
{"types": ["missiles", "powerbomb"], "requires": ["never"]}
1044+
],
1045+
"note": [
1046+
"With a runway of 5 tiles (open end) in the other room,",
1047+
"the ideal timing for the stutter is to release forward for 5 frames, and repress forward on the last possible frame before the transition.",
1048+
"Other timings can work, but will gain the shinecharge further from the door, leaving fewer shinecharge frames remaining.",
1049+
"After gaining the shinecharge, continue holding forward in order to make Samus stand.",
1050+
"Then turnaround spin jump back toward the door, and continue spin jumping to reach the transition with a shinecharge."
1051+
]
1052+
},
1053+
{
1054+
"link": [2, 2],
1055+
"name": "Precise Stutter Shinecharge, Leave Shinecharged (4-tile runway)",
1056+
"entranceCondition": {
1057+
"comeInStutterShinecharging": {
1058+
"minTiles": 4
1059+
}
1060+
},
1061+
"requires": [
1062+
"canPreciseStutterWaterShineCharge",
1063+
"canShinechargeMovementTricky",
1064+
"canInsaneJump",
1065+
{"shineChargeFrames": 140},
1066+
{"or": [
1067+
"canBeVeryPatient",
1068+
{"shineChargeFrames": 10}
1069+
]}
1070+
],
1071+
"exitCondition": {
1072+
"leaveShinecharged": {}
1073+
},
1074+
"unlocksDoors": [
1075+
{"types": ["super"], "requires": []},
1076+
{"types": ["missiles", "powerbomb"], "requires": ["never"]}
1077+
],
1078+
"note": [
1079+
"With only a runway of 4 tiles (open end) in the other room,",
1080+
"the ideal timing for the stutter is to release forward for 4 frames, and repress forward on the last possible frame before the transition.",
1081+
"It also works well to release forward for 3 frames and repress on the last possible frame.",
1082+
"Other timings can also work, but may gain the shinecharge further from the door, leaving fewer shinecharge frames remaining.",
1083+
"After gaining the shinecharge, continue holding forward in order to make Samus stand.",
1084+
"Then turnaround spin jump back toward the door, and continue spin jumping to reach the transition with a shinecharge."
1085+
]
1086+
},
1087+
{
1088+
"link": [2, 2],
1089+
"name": "Precise Stutter Shinecharge, Leave Shinecharged (3-tile runway)",
1090+
"entranceCondition": {
1091+
"comeInStutterShinecharging": {
1092+
"minTiles": 3
1093+
}
1094+
},
1095+
"requires": [
1096+
"canPreciseStutterWaterShineCharge",
1097+
"canShinechargeMovementTricky",
1098+
"canInsaneJump",
1099+
{"shineChargeFrames": 145},
1100+
{"or": [
1101+
"canBeVeryPatient",
1102+
{"shineChargeFrames": 10}
1103+
]}
1104+
],
1105+
"exitCondition": {
1106+
"leaveShinecharged": {}
1107+
},
1108+
"unlocksDoors": [
1109+
{"types": ["super"], "requires": []},
1110+
{"types": ["missiles", "powerbomb"], "requires": ["never"]}
1111+
],
1112+
"note": [
1113+
"With only a runway of 3 tiles (open end) in the other room,",
1114+
"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.",
1115+
"Other timings can work, but will gain the shinecharge further from the door, leaving fewer shinecharge frames remaining.",
1116+
"After gaining the shinecharge, continue holding forward in order to make Samus stand.",
1117+
"Then turnaround spin jump back toward the door, and continue spin jumping to reach the transition with a shinecharge.",
1118+
"Alternatively, with greater difficulty but saving some shinecharge frames,",
1119+
"after performing the turnaround spin jump, briefly moonwalk back, then retain momentum by boomeranging forward",
1120+
"(switching from pressing backward to pressing forward on the next frame),",
1121+
"and arm pump to reach the door quickly."
1122+
],
1123+
"devNote": [
1124+
"The same shinecharge frames could be achieved with a closed end runway (effective length of 2.4375),",
1125+
"with a 3-frame stutter, but there doesn't appear to be any application."
1126+
]
1127+
},
1128+
{
1129+
"link": [2, 2],
1130+
"name": "Precise Stutter Shinecharge, Leave Shinecharged (2-tile runway)",
1131+
"entranceCondition": {
1132+
"comeInStutterShinecharging": {
1133+
"minTiles": 2
1134+
}
1135+
},
1136+
"requires": [
1137+
"canPreciseStutterWaterShineCharge",
1138+
"canShinechargeMovementTricky",
1139+
"canInsaneJump",
1140+
{"shineChargeFrames": 150},
1141+
{"or": [
1142+
"canBeVeryPatient",
1143+
{"shineChargeFrames": 15}
1144+
]}
1145+
],
1146+
"exitCondition": {
1147+
"leaveShinecharged": {}
1148+
},
1149+
"unlocksDoors": [
1150+
{"types": ["super"], "requires": []},
1151+
{"types": ["missiles", "powerbomb"], "requires": ["never"]}
1152+
],
1153+
"note": [
1154+
"With only a runway of 2 tiles (open end) in the other room,",
1155+
"the ideal timing for the stutter is to release forward for 3 frames, and repress forward on the last possible frame before the transition.",
1156+
"Other timings can work, but will gain the shinecharge further from the door, leaving fewer shinecharge frames remaining.",
1157+
"After gaining the shinecharge, continue holding forward in order to make Samus stand.",
1158+
"Then turnaround spin jump back toward the door, and continue spin jumping to reach the transition with a shinecharge.",
1159+
"Alternatively, with greater difficulty but saving some shinecharge frames,",
1160+
"after performing the turnaround spin jump, briefly moonwalk back, then retain momentum by boomeranging forward",
1161+
"(switching from pressing backward to pressing forward on the next frame),",
1162+
"and arm pump to reach the door quickly."
1163+
],
1164+
"devNote": [
1165+
"FIXME: The canBeVeryPatient requirement is for difficulty placement of the boomerang method;",
1166+
"but the boomerang (or maybe specifically the moonwalk boomerang) should possibly be its own tech,",
1167+
"and the same with rapid arm pumping."
1168+
]
1169+
},
1170+
{
1171+
"link": [2, 2],
1172+
"name": "Precise Stutter Shinecharge, Leave Shinecharged (1-tile runway)",
1173+
"entranceCondition": {
1174+
"comeInStutterShinecharging": {
1175+
"minTiles": 1
1176+
}
1177+
},
1178+
"requires": [
1179+
"canPreciseStutterWaterShineCharge",
1180+
"canInsaneJump",
1181+
"canBeVeryPatient",
1182+
"canShinechargeMovementTricky",
1183+
{"shineChargeFrames": 160}
1184+
],
1185+
"exitCondition": {
1186+
"leaveShinecharged": {}
1187+
},
1188+
"unlocksDoors": [
1189+
{"types": ["super"], "requires": []},
1190+
{"types": ["missiles", "powerbomb"], "requires": ["never"]}
1191+
],
1192+
"note": [
1193+
"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.",
1194+
"Run toward the door, releasing forward for exactly 1 frame and pressing it again on the last possible frame before the transition.",
1195+
"Starting with X subpixels of $7FFF can also work (e.g., by simply backing against the door ledge, then jumping and turning around mid-air);",
1196+
"in this case, Samus must advance 1 or 2 pixels with an arm pump before the transition (e.g., firing a shot or pressing and/or releasing an angle button),",
1197+
"and the shinecharge will be gained slightly further away from the door.",
1198+
"After gaining the shinecharge, continue holding forward in order to make Samus stand.",
1199+
"Then turnaround spin jump back toward the door, and continue spin jumping to reach the transition with a shinecharge.",
1200+
"Alternatively, with greater difficulty but saving some shinecharge frames,",
1201+
"after performing the turnaround spin jump, briefly moonwalk back, then retain momentum by boomeranging forward",
1202+
"(switching from pressing backward to pressing forward on the next frame),",
1203+
"and arm pump to reach the door quickly."
1204+
],
1205+
"detailNote": [
1206+
"Ideal subpixels ($3FFF) can be achieved using one of several methods:",
1207+
"1) press forward against the door ledge (or a wall aligned with it);",
1208+
"jump, and while mid-air, tap forward for exactly 1 frame to land with subpixels $BFFF,",
1209+
"moonwalk back for exactly 1 frame to end with subpixels $3FFF.",
1210+
"2) press forward against the door ledge (from a platform below, assuming one exists)",
1211+
"turn around (while on the ground), and moonwalk back two pixels,",
1212+
"then jump and mid-air turnaround onto the ledge;",
1213+
"if Samus jumped from the correct pixel but does not land on the ledge, then it was needed to moonwalk back 1 more frame;",
1214+
"in this case it is possible to retry by doing a mid-air turnaround back onto the platform, and moonwalking back for 1 frame.",
1215+
"3) if X-Ray is available, press against the door ledge (from a platform below, assuming one exists)",
1216+
"turn around (while on the ground), then jump and mid-air turnaround toward the door,",
1217+
"and use X-Ray to turnaround in place away from the door;",
1218+
"repeat this sequence 3 more times: jump, mid-air turnaround, X-Ray turnaround;",
1219+
"then do one more jump and mid-air turnaround, high enough to land on the door ledge,",
1220+
"and Samus should be in the correct position with subpixels $3FFF."
1221+
]
1222+
},
1223+
{
1224+
"link": [2, 2],
1225+
"name": "Water Shinecharge, Leave With Temporary Blue",
1226+
"entranceCondition": {
1227+
"comeInRunning": {
1228+
"minTiles": 0.4375,
1229+
"speedBooster": true
1230+
}
1231+
},
1232+
"requires": [
1233+
"canWaterShineCharge",
1234+
"canXRayCancelShinecharge",
1235+
"canXRayTurnaround",
1236+
"canLongChainTemporaryBlue"
1237+
],
1238+
"exitCondition": {
1239+
"leaveWithTemporaryBlue": {}
1240+
},
1241+
"unlocksDoors": [
1242+
{"types": ["super"], "requires": []},
1243+
{"types": ["missiles", "powerbomb"], "requires": ["never"]}
1244+
],
1245+
"note": [
1246+
"Start with low run speed by positioning exactly 2 pixels from the door.",
1247+
"Use X-Ray to cancel the shinecharge early, to avoid getting hit by the angry snail."
1248+
],
1249+
"devNote": [
1250+
"This can also be done with a stutter shinecharge, which can shorten the temp blue chain,",
1251+
"but not by enough to remove the need for the canLongChainTemporaryBlue requirement."
9301252
]
9311253
},
9321254
{

0 commit comments

Comments
 (0)