|
1493 | 1493 | "canShinechargeMovementComplex", |
1494 | 1494 | {"canShineCharge": {"usedTiles": 25, "openEnd": 2}}, |
1495 | 1495 | {"or": [ |
1496 | | - {"shinespark": {"frames": 118, "excessFrames": 6}}, |
| 1496 | + {"shinespark": {"frames": 121, "excessFrames": 6}}, |
| 1497 | + {"and": [ |
| 1498 | + "canSpeedyJump", |
| 1499 | + {"shinespark": {"frames": 118, "excessFrames": 6}} |
| 1500 | + ]}, |
1497 | 1501 | {"and": [ |
1498 | 1502 | "HiJump", |
| 1503 | + {"shinespark": {"frames": 117, "excessFrames": 6}} |
| 1504 | + ]}, |
| 1505 | + {"and": [ |
| 1506 | + "HiJump", |
| 1507 | + "canSpeedyJump", |
1499 | 1508 | {"shinespark": {"frames": 113, "excessFrames": 6}} |
1500 | 1509 | ]} |
1501 | 1510 | ]} |
|
1538 | 1547 | {"canShineCharge": {"usedTiles": 23, "openEnd": 2}}, |
1539 | 1548 | "ScrewAttack", |
1540 | 1549 | {"or": [ |
1541 | | - {"shinespark": {"frames": 118, "excessFrames": 6}}, |
| 1550 | + {"shinespark": {"frames": 121, "excessFrames": 6}}, |
| 1551 | + {"and": [ |
| 1552 | + "canSpeedyJump", |
| 1553 | + {"shinespark": {"frames": 118, "excessFrames": 6}} |
| 1554 | + ]}, |
| 1555 | + {"and": [ |
| 1556 | + "HiJump", |
| 1557 | + {"shinespark": {"frames": 117, "excessFrames": 6}} |
| 1558 | + ]}, |
1542 | 1559 | {"and": [ |
1543 | 1560 | "HiJump", |
| 1561 | + "canSpeedyJump", |
1544 | 1562 | {"shinespark": {"frames": 113, "excessFrames": 6}} |
1545 | 1563 | ]} |
1546 | 1564 | ]} |
|
1561 | 1579 | "requires": [ |
1562 | 1580 | "canCarefulJump", |
1563 | 1581 | "canShinechargeMovementComplex", |
| 1582 | + {"getBlueSpeed": {"usedTiles": 34, "openEnd": 0}}, |
| 1583 | + "h_blueJump", |
1564 | 1584 | {"canShineCharge": {"usedTiles": 34, "openEnd": 0}}, |
1565 | 1585 | {"shinespark": {"frames": 128, "excessFrames": 6}} |
1566 | 1586 | ], |
1567 | 1587 | "flashSuitChecked": true, |
1568 | 1588 | "blueSuitChecked": true, |
1569 | | - "note": "Charge a Shinespark running left, then get blue speed by running back to the right to jump through the Boyons." |
| 1589 | + "note": "Charge a Shinespark running left, then get blue speed by running back to the right to jump through the Boyons.", |
| 1590 | + "devNote": ["The out-of-order requirements are to work around the tests' assumption that a getBlueSpeed would lose the shinecharge."] |
1570 | 1591 | }, |
1571 | 1592 | { |
1572 | 1593 | "id": 41, |
|
1598 | 1619 | "Ice", |
1599 | 1620 | "canTrickyDodgeEnemies", |
1600 | 1621 | "ScrewAttack", |
1601 | | - "h_getBlueSpeedMaxRunway", |
| 1622 | + {"and": [ |
| 1623 | + "h_getBlueSpeedMaxRunway", |
| 1624 | + "h_blueJump" |
| 1625 | + ]}, |
1602 | 1626 | {"enemyKill": { |
1603 | 1627 | "enemies": [["Boyon", "Boyon", "Boyon", "Boyon"]], |
1604 | 1628 | "excludedWeapons": ["Bombs"] |
|
1873 | 1897 | {"or": [ |
1874 | 1898 | {"and": [ |
1875 | 1899 | "canTrivialUseFrozenEnemies", |
1876 | | - "h_shinechargeMaxRunway", |
1877 | | - "canMidairShinespark", |
1878 | | - {"shinespark": {"frames": 118, "excessFrames": 6}} |
| 1900 | + "h_shinechargeMaxRunway" |
1879 | 1901 | ]}, |
1880 | 1902 | {"and": [ |
1881 | 1903 | "canShinechargeMovementComplex", |
1882 | | - {"canShineCharge": {"usedTiles": 34, "openEnd": 0}}, |
1883 | | - {"shinespark": {"frames": 128, "excessFrames": 6}} |
| 1904 | + {"getBlueSpeed": {"usedTiles": 34, "openEnd": 0}}, |
| 1905 | + "h_blueJump", |
| 1906 | + {"canShineCharge": {"usedTiles": 34, "openEnd": 0}} |
1884 | 1907 | ]}, |
1885 | 1908 | {"and": [ |
1886 | | - {"blueSuitShinecharge": {}}, |
1887 | | - {"shinespark": {"frames": 121, "excessFrames": 5}} |
| 1909 | + {"canShineCharge": {"usedTiles": 25, "openEnd": 2}}, |
| 1910 | + {"enemyKill": { |
| 1911 | + "enemies": [["Boyon", "Boyon", "Boyon", "Boyon"]], |
| 1912 | + "excludedWeapons": ["Bombs"] |
| 1913 | + }} |
| 1914 | + ]}, |
| 1915 | + {"blueSuitShinecharge": {}}, |
| 1916 | + {"and": [ |
| 1917 | + "canInsaneJump", |
| 1918 | + {"canShineCharge": { |
| 1919 | + "usedTiles": 14, |
| 1920 | + "openEnd": 0 |
| 1921 | + }} |
| 1922 | + ]}, |
| 1923 | + {"and": [ |
| 1924 | + "canInsaneJump", |
| 1925 | + {"canShineCharge": { |
| 1926 | + "usedTiles": 14, |
| 1927 | + "openEnd": 1 |
| 1928 | + }}, |
| 1929 | + {"enemyKill": {"enemies": [["Boyon"]]}} |
1888 | 1930 | ]} |
1889 | | - ]} |
| 1931 | + ]}, |
| 1932 | + {"shinespark": {"frames": 121, "excessFrames": 5}} |
1890 | 1933 | ], |
1891 | 1934 | "collectsItems": [3], |
1892 | 1935 | "flashSuitChecked": true, |
1893 | 1936 | "blueSuitChecked": true, |
1894 | 1937 | "note": "Shinespark up to the item, touch it, and return through the speed block that is now air. Exit G-mode below to collect the item.", |
1895 | | - "devNote": "These shinespark frames could be reduced with more items or tech, but in direct G-mode, Samus will be at low Energy and need an energy free shinespark." |
| 1938 | + "devNote": [ |
| 1939 | + "The shinespark frames could be reduced with more items or tech, but in direct G-mode, Samus will be at low Energy and need an energy free shinespark.", |
| 1940 | + "The out-of-order requirements in the blue jump case are to work around the tests' assumption that a getBlueSpeed would lose the shinecharge." |
| 1941 | + ] |
1896 | 1942 | }, |
1897 | 1943 | { |
1898 | 1944 | "id": 48, |
|
2025 | 2071 | "h_storedSpark", |
2026 | 2072 | "canDash", |
2027 | 2073 | "canHorizontalShinespark", |
2028 | | - {"shinespark": {"frames": 43, "excessFrames": 7}} |
| 2074 | + {"or": [ |
| 2075 | + {"shinespark": {"frames": 44, "excessFrames": 7}}, |
| 2076 | + {"and": [ |
| 2077 | + "canShinechargeMovementTricky", |
| 2078 | + {"shinespark": {"frames": 38, "excessFrames": 0}} |
| 2079 | + ]}, |
| 2080 | + {"and": [ |
| 2081 | + "canShinechargeMovementTricky", |
| 2082 | + "canSpeedyJump", |
| 2083 | + {"shinespark": {"frames": 35, "excessFrames": 0}} |
| 2084 | + ]} |
| 2085 | + ]} |
2029 | 2086 | ], |
2030 | 2087 | "flashSuitChecked": true, |
2031 | 2088 | "blueSuitChecked": true |
|
2247 | 2304 | "blueSuitChecked": true, |
2248 | 2305 | "devNote": "There is no point in using a blue suit to spark or sparking at the bottom if Samus can wall jump." |
2249 | 2306 | }, |
| 2307 | + { |
| 2308 | + "link": [5, 3], |
| 2309 | + "name": "Shinespark", |
| 2310 | + "requires": [ |
| 2311 | + {"or": [ |
| 2312 | + {"canShineCharge": { |
| 2313 | + "usedTiles": 14, |
| 2314 | + "openEnd": 0 |
| 2315 | + }}, |
| 2316 | + {"and": [ |
| 2317 | + {"or": [ |
| 2318 | + {"enemyKill": {"enemies": [["Boyon"]]}}, |
| 2319 | + {"obstaclesCleared": ["A"]} |
| 2320 | + ]}, |
| 2321 | + {"canShineCharge": { |
| 2322 | + "usedTiles": 14, |
| 2323 | + "openEnd": 1 |
| 2324 | + }} |
| 2325 | + ]} |
| 2326 | + ]}, |
| 2327 | + "canMidairShinespark", |
| 2328 | + {"or": [ |
| 2329 | + {"shinespark": {"frames": 121, "excessFrames": 6}}, |
| 2330 | + {"and": [ |
| 2331 | + {"shinespark": {"frames": 117, "excessFrames": 6}}, |
| 2332 | + "HiJump" |
| 2333 | + ]}, |
| 2334 | + {"and": [ |
| 2335 | + {"shinespark": {"frames": 112, "excessFrames": 6}}, |
| 2336 | + "HiJump", |
| 2337 | + "canSpeedyJump" |
| 2338 | + ]}, |
| 2339 | + {"and": [ |
| 2340 | + "canFastWalljumpClimb", |
| 2341 | + {"shinespark": {"frames": 93, "excessFrames": 6}} |
| 2342 | + ]}, |
| 2343 | + {"and": [ |
| 2344 | + "HiJump", |
| 2345 | + "canFastWalljumpClimb", |
| 2346 | + {"shinespark": {"frames": 83, "excessFrames": 6}} |
| 2347 | + ]} |
| 2348 | + ]} |
| 2349 | + ], |
| 2350 | + "flashSuitChecked": true, |
| 2351 | + "blueSuitChecked": true, |
| 2352 | + "note": ["Use the runway to the right of the Boyons to gain a shinecharge."], |
| 2353 | + "detailNote": ["If the rightmost Boyon is cleared, an extra half tile of runway is available."] |
| 2354 | + }, |
2250 | 2355 | { |
2251 | 2356 | "id": 65, |
2252 | 2357 | "link": [6, 3], |
|
0 commit comments