|
734 | 734 | { |
735 | 735 | "id": 21, |
736 | 736 | "link": [2, 1], |
737 | | - "name": "Stutter Water ShineCharge", |
| 737 | + "name": "Stutter Water Shinecharge", |
738 | 738 | "entranceCondition": { |
739 | | - "comeInRunning": { |
740 | | - "speedBooster": true, |
741 | | - "minTiles": 2.4375 |
| 739 | + "comeInStutterShinecharging": { |
| 740 | + "minTiles": 2 |
742 | 741 | } |
743 | 742 | }, |
744 | 743 | "requires": [ |
745 | 744 | "h_canUsePowerBombs", |
746 | 745 | "canStutterWaterShineCharge", |
747 | | - "canShinechargeMovement", |
| 746 | + "canShinechargeMovementComplex", |
748 | 747 | "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 | + ]} |
750 | 755 | ], |
751 | 756 | "clearsObstacles": ["A"] |
752 | 757 | }, |
| 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 | + }, |
753 | 785 | { |
754 | 786 | "id": 22, |
755 | 787 | "link": [2, 1], |
|
902 | 934 | { |
903 | 935 | "id": 27, |
904 | 936 | "link": [2, 2], |
905 | | - "name": "Stutter Shinecharge, Shinespark Return", |
| 937 | + "name": "Stutter Shinecharge, Leave With Spark", |
906 | 938 | "entranceCondition": { |
907 | | - "comeInRunning": { |
908 | | - "speedBooster": true, |
| 939 | + "comeInStutterShinecharging": { |
909 | 940 | "minTiles": 2 |
910 | 941 | } |
911 | 942 | }, |
912 | 943 | "requires": [ |
913 | | - "canShinechargeMovementComplex", |
914 | 944 | "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", |
915 | 1000 | "h_canShineChargeMaxRunway", |
916 | 1001 | {"or": [ |
917 | 1002 | {"shinespark": {"frames": 12}}, |
|
927 | 1012 | "unlocksDoors": [ |
928 | 1013 | {"types": ["super"], "requires": []}, |
929 | 1014 | {"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." |
930 | 1252 | ] |
931 | 1253 | }, |
932 | 1254 | { |
|
0 commit comments