|
291 | 291 | "requires": [ |
292 | 292 | "canSpeedKeep", |
293 | 293 | {"canShineCharge": {"usedTiles": 21, "openEnd": 2}}, |
294 | | - "h_speedKeepSpikeHit", |
295 | | - "h_speedKeepSpikeHit", |
296 | | - "h_speedKeepSpikeHit", |
| 294 | + {"spikeHits": {"mul": [3, "n_speedKeepAttempts"]}}, |
297 | 295 | {"spikeHits": 1}, |
298 | 296 | "h_spikeSuitSpikeHitLeniency", |
299 | 297 | "canPatientSpikeSuit", |
300 | 298 | {"shinespark": {"frames": 6, "excessFrames": 2}} |
301 | 299 | ], |
302 | | - "flashSuitChecked": true |
| 300 | + "flashSuitChecked": true, |
| 301 | + "devNote": "FIXME: the lenience needs to multiply speed keep attempts and spike suit attempts." |
303 | 302 | }, |
304 | 303 | { |
305 | 304 | "id": 94, |
|
310 | 309 | "canSpeedKeep", |
311 | 310 | {"doorUnlockedAtNode": 1}, |
312 | 311 | {"canShineCharge": {"usedTiles": 13, "openEnd": 1}}, |
313 | | - "h_speedKeepSpikeHit", |
314 | | - "h_speedKeepSpikeHit", |
315 | | - "h_speedKeepSpikeHit", |
| 312 | + {"spikeHits": {"mul": [3, "n_speedKeepAttempts"]}}, |
316 | 313 | {"spikeHits": 1}, |
317 | 314 | "h_spikeSuitSpikeHitLeniency", |
318 | 315 | "canPatientSpikeSuit", |
319 | 316 | {"shinespark": {"frames": 6, "excessFrames": 2}} |
320 | 317 | ], |
321 | | - "flashSuitChecked": true |
| 318 | + "flashSuitChecked": true, |
| 319 | + "devNote": "FIXME: the lenience needs to multiply speed keep attempts and spike suit attempts." |
322 | 320 | }, |
323 | 321 | { |
324 | 322 | "id": 81, |
|
985 | 983 | "canChainTemporaryBlue", |
986 | 984 | "can4HighMidAirMorph", |
987 | 985 | "canSpeedKeep", |
988 | | - "h_speedKeepSpikeHit", |
989 | | - "h_speedKeepSpikeHitLeniency", |
| 986 | + {"spikeHits": {"add": ["n_speedKeepAttempts", "n_speedKeepLenience"]}}, |
990 | 987 | "canSpeedball" |
991 | 988 | ], |
992 | 989 | "flashSuitChecked": true, |
993 | 990 | "note": [ |
994 | | - "Bounce into the spikes and use a SpeedKeep to run on spikes to setup for a speedball towards the item.", |
| 991 | + "Bounce into the spikes and use a speedkeep to run on spikes to setup for a speedball towards the item.", |
995 | 992 | "Bouncing on the platform near the door saves a spike hit." |
996 | 993 | ], |
997 | 994 | "devNote": [ |
|
1014 | 1011 | "canCarefulJump", |
1015 | 1012 | "canSlowShortCharge", |
1016 | 1013 | "can4HighMidAirMorph", |
1017 | | - "h_speedKeepSpikeHit", |
| 1014 | + {"spikeHits": "n_speedKeepAttempts"}, |
1018 | 1015 | "canSpeedball" |
1019 | 1016 | ], |
1020 | 1017 | "flashSuitChecked": true, |
1021 | 1018 | "note": [ |
1022 | | - "Bounce into the spikes and use a SpeedKeep to run on spikes to setup for a speedball towards the item.", |
| 1019 | + "Bounce into the spikes and use a speedkeep to run on spikes to setup for a speedball towards the item.", |
1023 | 1020 | "Bouncing on the platform near the door saves a spike hit.", |
1024 | | - "Or a DamageBoost SpeedKeep could be used instead of a Spike SpeedKeep with enough runspeed." |
| 1021 | + "Or a damage boost speedkeep could be used instead of a spike speedkeep with enough runspeed." |
1025 | 1022 | ] |
1026 | 1023 | }, |
1027 | 1024 | { |
|
1038 | 1035 | "canSpeedKeep", |
1039 | 1036 | "canCarefulJump", |
1040 | 1037 | {"getBlueSpeed": {"usedTiles": 21, "openEnd": 2}}, |
1041 | | - "h_speedKeepSpikeHit", |
| 1038 | + {"spikeHits": "n_speedKeepAttempts"}, |
1042 | 1039 | {"or": [ |
1043 | | - "h_speedKeepSpikeHit", |
| 1040 | + {"spikeHits": "n_speedKeepAttempts"}, |
1044 | 1041 | {"and": [ |
1045 | 1042 | "canChainTemporaryBlue", |
1046 | | - "h_speedKeepSpikeHitLeniency" |
| 1043 | + {"spikeHits": "n_speedKeepLenience"} |
1047 | 1044 | ]} |
1048 | 1045 | ]}, |
1049 | 1046 | "canSpeedball" |
1050 | 1047 | ], |
1051 | 1048 | "flashSuitChecked": true, |
1052 | 1049 | "note": [ |
1053 | | - "Bounce into the spikes and use a SpeedKeep to run on spikes to setup for a speedball towards the item.", |
1054 | | - "A DamageBoost SpeedKeep could be used instead of a Spike SpeedKeep with enough runspeed." |
| 1050 | + "Bounce into the spikes and use a speedkeep to run on spikes to setup for a speedball towards the item.", |
| 1051 | + "A damage boost speedkeep could be used instead of a spike speedkeep with enough runspeed." |
1055 | 1052 | ], |
1056 | 1053 | "devNote": [ |
1057 | 1054 | "The extra lenience is because of the need to either to perform a very precise jump off the spikes,", |
|
1071 | 1068 | {"and": [ |
1072 | 1069 | "canChainTemporaryBlue", |
1073 | 1070 | {"getBlueSpeed": {"usedTiles": 13, "openEnd": 1}}, |
1074 | | - "h_speedKeepSpikeHit" |
| 1071 | + {"spikeHits": "n_speedKeepAttempts"} |
1075 | 1072 | ]}, |
1076 | 1073 | {"and": [ |
1077 | 1074 | {"getBlueSpeed": {"usedTiles": 14, "openEnd": 1}}, |
1078 | | - "h_speedKeepSpikeHit", |
1079 | | - "h_speedKeepSpikeHit" |
| 1075 | + {"spikeHits": {"mul": [2, "n_speedKeepAttempts"]}} |
1080 | 1076 | ]}, |
1081 | 1077 | {"and": [ |
1082 | 1078 | "canChainTemporaryBlue", |
1083 | | - "h_speedKeepSpikeHit", |
1084 | | - "h_speedKeepSpikeHit", |
1085 | | - "h_speedKeepSpikeHit" |
| 1079 | + {"spikeHits": {"mul": [ |
| 1080 | + {"add": ["n_speedKeepAttempts", 2]}, |
| 1081 | + "n_speedKeepAttempts" |
| 1082 | + ]}} |
1086 | 1083 | ]} |
1087 | 1084 | ]}, |
1088 | 1085 | "canSpeedball" |
1089 | 1086 | ], |
1090 | 1087 | "flashSuitChecked": true, |
1091 | 1088 | "note": [ |
1092 | | - "Using only the short runway and spike pit, use one or two SpeedKeeps to Speedball towards the item location.", |
1093 | | - "This requires either a very short shortcharge, or a second SpeedKeep in the spikes which also resets Samus' run speed with a crouch jump before spike i-frames expire." |
| 1089 | + "Using only the short runway and spike pit, use one or two speedkeeps to speedball towards the item location.", |
| 1090 | + "This requires either a very short shortcharge, or a second speedkeep in the spikes which also resets Samus' run speed with a crouch jump before spike i-frames expire." |
| 1091 | + ], |
| 1092 | + "devNote": [ |
| 1093 | + "1 - Stop and bounce on left ledge.", |
| 1094 | + "2 - Jump from ledge and bounce in spikes.", |
| 1095 | + "3 - Stop and bounce on left ledge, then stop in spikes and speedkeep again." |
1094 | 1096 | ] |
1095 | 1097 | }, |
1096 | 1098 | { |
|
0 commit comments