Skip to content

Commit 7cf778a

Browse files
committed
X-mode and spikesuit numerics, with some examples
1 parent b5fd815 commit 7cf778a

16 files changed

Lines changed: 584 additions & 269 deletions

helpers.json

Lines changed: 222 additions & 101 deletions
Original file line numberDiff line numberDiff line change
@@ -414,54 +414,6 @@
414414
],
415415
"devNote": "1 Power Bomb leniency per attempt, 8 leniency attempts."
416416
},
417-
{
418-
"name": "h_XModeSpikeHitLeniency",
419-
"requires": [
420-
{"spikeHits": 1}
421-
]
422-
},
423-
{
424-
"name": "h_XModeThornHitLeniency",
425-
"requires": [
426-
{"thornHits": 1}
427-
]
428-
},
429-
{
430-
"name": "h_thornXModeFramePerfectExtraLeniency",
431-
"requires": [
432-
{"thornHits": 1}
433-
]
434-
},
435-
{
436-
"name": "h_thornDoubleXModeFramePerfectExtraLeniency",
437-
"requires":[
438-
{"thornHits": 4}
439-
]
440-
},
441-
{
442-
"name": "h_spikeSuitSpikeHitLeniency",
443-
"requires": [
444-
{"spikeHits": 2}
445-
]
446-
},
447-
{
448-
"name": "h_spikeSuitThornHitLeniency",
449-
"requires": [
450-
{"thornHits": 2}
451-
]
452-
},
453-
{
454-
"name": "h_spikeSuitSamusEaterLeniency",
455-
"requires": [
456-
{"samusEaterCycles": 2}
457-
]
458-
},
459-
{
460-
"name": "h_spikeSuitPowerBombLeniency",
461-
"requires": [
462-
{"ammo": {"type": "PowerBomb","count": 2}}
463-
]
464-
},
465417
{
466418
"name": "h_extendedMoondanceBeetomLeniency",
467419
"requires": [
@@ -1547,28 +1499,6 @@
15471499
],
15481500
"devNote": "All heat frames before and after the refill are added on the strats that use the helper."
15491501
},
1550-
{
1551-
"name": "h_XModeSpikeHit",
1552-
"requires": [
1553-
{"spikeHits": 1},
1554-
"h_XModeSpikeHitLeniency"
1555-
],
1556-
"devNote": [
1557-
"Some strats require multiple spike hits, in which case h_canSpikeXMode will be included multiple times.",
1558-
"In this case, the total leniency is the base leniency h_XModeSpikeHitLeniency multiplied by the number of hits."
1559-
]
1560-
},
1561-
{
1562-
"name": "h_XModeThornHit",
1563-
"requires": [
1564-
{"thornHits": 1},
1565-
"h_XModeThornHitLeniency"
1566-
],
1567-
"devNote": [
1568-
"Some strats require multiple thorn hits, in which case h_canThornXMode will be included multiple times.",
1569-
"In this case, the total leniency is the base leniency h_XModeThornHitLeniency multiplied by the number of hits."
1570-
]
1571-
},
15721502
{
15731503
"name": "h_XRayMorphIceClip",
15741504
"requires": [
@@ -1859,78 +1789,200 @@
18591789
{
18601790
"name": "h_spikeXModeSpikeSuit",
18611791
"requires": [
1862-
"h_XModeSpikeHit",
1863-
"h_XModeSpikeHit",
1864-
"h_spikeSuitSpikeHitLeniency",
1865-
"h_spikeSuitSpikeHitLeniency",
1866-
"h_spikeSuitSpikeHitLeniency",
1792+
{"spikeHits": {"mul": [
1793+
{"add": ["n_spikeXModeAttempts", 2]},
1794+
"n_spikeSuitAttempts"
1795+
]}},
18671796
"h_shinechargeMaxRunway",
1868-
"canXModeSpikeSuit",
1869-
{"spikeHits": 1}
1797+
"canXModeSpikeSuit"
18701798
],
1871-
"devNote": "This helper is used for an X-Mode shinecharge followed by a spikesuit so the leniency should be multiplactive."
1799+
"devNote": [
1800+
"This covers the most common case of spike X-mode spikesuit, where a minimum of 3 spike hits need to be taken;",
1801+
"this relies on being able to bounce before entering the spikes."
1802+
]
18721803
},
18731804
{
18741805
"name": "h_thornXModeSpikeSuit",
18751806
"requires": [
1876-
"h_XModeThornHit",
1877-
"h_XModeThornHit",
1878-
"h_XModeThornHitLeniency",
1879-
"h_XModeThornHitLeniency",
1880-
"h_XModeThornHitLeniency",
1807+
{"or": [
1808+
{"thornHits": {"mul": [
1809+
{"add": ["n_thornXModeAttempts", 2]},
1810+
"n_spikeSuitAttempts"
1811+
]}},
1812+
{"and": [
1813+
"canXModeMovement",
1814+
{"thornHits": {"mul": [
1815+
{"add": ["n_thornXModeAttempts", 1]},
1816+
"n_spikeSuitAttempts"
1817+
]}}
1818+
]}
1819+
]},
18811820
"h_shinechargeMaxRunway",
1882-
"canXModeSpikeSuit",
1883-
{"thornHits": 1}
1821+
"canXModeSpikeSuit"
18841822
],
1885-
"devNote": "This helper is used for an X-Mode shinecharge followed by a spikesuit so the leniency should be multiplactive."
1823+
"devNote": [
1824+
"This covers the most common case of thorn X-mode spikesuit, where a minimum of 2 thorn hits need to be taken;",
1825+
"this relies on being able to bounce before entering the thorns,",
1826+
"and with canXModeMovement, it relies on timing Samus' i-frames to avoid an additional thorn hit after X-mode is released."
1827+
]
18861828
},
18871829
{
1888-
"name": "h_spikeXModeShinecharge",
1830+
"name": "h_thornXModeSpikeSuitWithoutLenience",
18891831
"requires": [
1890-
"canXMode",
1891-
"h_XModeSpikeHit",
1892-
"h_XModeSpikeHit",
1832+
{"or": [
1833+
{"thornHits": 3},
1834+
{"and": [
1835+
"canXModeMovement",
1836+
{"thornHits": 2}
1837+
]}
1838+
]},
18931839
"h_shinechargeMaxRunway",
1894-
"canShinechargeMovement"
1840+
"canXModeSpikeSuit"
1841+
],
1842+
"devNote": [
1843+
"This is applicable in case a farm is available, making lenience unnecessary."
18951844
]
18961845
},
18971846
{
1898-
"name": "h_thornXModeShinecharge",
1847+
"name": "h_XModeShinecharge",
18991848
"requires": [
19001849
"canXMode",
1901-
"h_XModeThornHit",
19021850
"h_shinechargeMaxRunway",
19031851
"canShinechargeMovement"
1852+
],
1853+
"devNote": [
1854+
"This helper should be used as a base in combination with spike/thorn hit requirements."
1855+
]
1856+
},
1857+
{
1858+
"name": "h_spikeXModeShinecharge",
1859+
"requires": [
1860+
"h_XModeShinecharge",
1861+
{"spikeHits": {"add": ["n_spikeXModeAttempts", 1]}}
1862+
],
1863+
"devNote": [
1864+
"This covers the most common case of spike X-mode, where a minimum of 2 spike hits need to be taken;",
1865+
"this relies on being able to bounce before entering the spikes."
1866+
]
1867+
},
1868+
{
1869+
"name": "h_thornXModeShinecharge",
1870+
"requires": [
1871+
"h_XModeShinecharge",
1872+
{"or": [
1873+
{"thornHits": {"add": ["n_thornXModeAttempts", 1]}},
1874+
{"and": [
1875+
"canXModeMovement",
1876+
{"thornHits": "n_thornXModeAttempts"}
1877+
]}
1878+
]}
1879+
],
1880+
"devNote": [
1881+
"This covers the most common case of thorn X-mode, where a minimum of 1 thorn hit needs to be taken;",
1882+
"this relies on being able to bounce before entering the thorns;",
1883+
"with canXModeMovement, it relies on timing Samus' i-frames to avoid an additional thorn hit after X-mode is released."
1884+
]
1885+
},
1886+
{
1887+
"name": "h_thornXModeShinechargeWithoutLenience",
1888+
"requires": [
1889+
"h_XModeShinecharge",
1890+
{"or": [
1891+
{"thornHits": 2},
1892+
{"and": [
1893+
"canXModeMovement",
1894+
{"thornHits": 1}
1895+
]}
1896+
]}
1897+
],
1898+
"devNote": [
1899+
"This is applicable in case a farm is available, making lenience unnecessary."
19041900
]
19051901
},
19061902
{
19071903
"name": "h_spikeXModeBlueSuit",
19081904
"requires": [
19091905
"canXModeBlueSuit",
1910-
"h_XModeSpikeHit"
1906+
{"spikeHits": "n_spikeXModeAttempts"}
1907+
],
1908+
"devNote": [
1909+
"This covers the most common case of spike X-mode bluesuit, where a minimum of 1 spike hit needs to be taken;",
1910+
"this relies on being able to bounce before entering the spikes."
19111911
]
19121912
},
19131913
{
19141914
"name": "h_thornXModeBlueSuit",
19151915
"requires": [
19161916
"canXModeBlueSuit",
1917-
"h_XModeThornHit"
1917+
{"thornHits": "n_thornXModeAttempts"}
1918+
],
1919+
"devNote": [
1920+
"This covers the most common case of thorn X-mode bluesuit, where a minimum of 1 thorn hit needs to be taken;",
1921+
"this relies on being able to bounce before entering the thorns."
1922+
]
1923+
},
1924+
{
1925+
"name": "h_thornXModeBlueSuitWithoutLenience",
1926+
"requires": [
1927+
"canXModeBlueSuit",
1928+
{"thornHits": 1}
1929+
],
1930+
"devNote": [
1931+
"This is applicable in case a farm is available, making lenience unnecessary."
19181932
]
19191933
},
19201934
{
19211935
"name": "h_spikeDoubleXModeBlueSuit",
1922-
"requires":[
1936+
"requires": [
19231937
"canDoubleXModeBlueSuit",
1924-
"h_spikeXModeShinecharge",
1925-
"h_spikeXModeBlueSuit"
1938+
{"spikeHits": {"mul": [
1939+
{"add": ["n_spikeXModeAttempts", 2]},
1940+
"n_spikeXModeAttempts"
1941+
]}}
1942+
],
1943+
"devNote": [
1944+
"This covers the most common case of spike double X-mode bluesuit, where a minimum of 3 spike hits need to be taken;",
1945+
"this relies on being able to bounce before entering the spikes for both X-modes,",
1946+
"or on using i-frames to bounce on the spikes for the second X-mode."
19261947
]
19271948
},
19281949
{
19291950
"name": "h_thornDoubleXModeBlueSuit",
1930-
"requires":[
1951+
"requires": [
19311952
"canDoubleXModeBlueSuit",
1932-
"h_thornXModeShinecharge",
1933-
"h_thornXModeBlueSuit"
1953+
{"or": [
1954+
{"thornHits": {"mul": [
1955+
{"add": ["n_thornXModeAttempts", 2]},
1956+
"n_thornXModeAttempts"
1957+
]}},
1958+
{"and": [
1959+
"canXModeMovement",
1960+
{"thornHits": {"mul": [
1961+
{"add": ["n_thornXModeAttempts", 1]},
1962+
"n_thornXModeAttempts"
1963+
]}}
1964+
]}
1965+
]}
1966+
],
1967+
"devNote": [
1968+
"This covers the most common case of thorn double X-mode bluesuit, where a minimum of 2 thorn hits need to be taken;",
1969+
"this relies on being able to bounce before entering the thorns for both X-modes.",
1970+
"With canXModeMovement, it also relies on timing Samus' i-frames to avoid an additional thorn hit after the first X-mode is released."
1971+
]
1972+
},
1973+
{
1974+
"name": "h_thornDoubleXModeBlueSuitWithoutLenience",
1975+
"requires": [
1976+
{"or": [
1977+
{"thornHits": 3},
1978+
{"and": [
1979+
"canXModeMovement",
1980+
{"thornHits": 2}
1981+
]}
1982+
]}
1983+
],
1984+
"devNote": [
1985+
"This is applicable in case a farm is available, making lenience unnecessary."
19341986
]
19351987
},
19361988
{
@@ -1950,6 +2002,75 @@
19502002
]
19512003
}
19522004
]
2005+
},
2006+
{
2007+
"name": "Deprecated",
2008+
"description": "These helpers are to be removed soon.",
2009+
"helpers": [
2010+
{
2011+
"name": "h_XModeSpikeHitLeniency",
2012+
"requires": [
2013+
{"spikeHits": "n_spikeXModeLenience"}
2014+
]
2015+
},
2016+
{
2017+
"name": "h_XModeThornHitLeniency",
2018+
"requires": [
2019+
{"thornHits": "n_spikeXModeLenience"}
2020+
]
2021+
},
2022+
{
2023+
"name": "h_thornXModeFramePerfectExtraLeniency",
2024+
"requires": [
2025+
{"thornHits": "n_thornXModeLenience"}
2026+
]
2027+
},
2028+
{
2029+
"name": "h_thornDoubleXModeFramePerfectExtraLeniency",
2030+
"requires":[
2031+
{"thornHits": {"mul": [
2032+
{"add": ["n_thornXModeAttempts", 2]},
2033+
"n_thornXModeLenience"
2034+
]}}
2035+
]
2036+
},
2037+
{
2038+
"name": "h_spikeSuitSpikeHitLeniency",
2039+
"requires": [
2040+
{"spikeHits": "n_spikeSuitLenience"}
2041+
]
2042+
},
2043+
{
2044+
"name": "h_spikeSuitThornHitLeniency",
2045+
"requires": [
2046+
{"thornHits": "n_spikeSuitLenience"}
2047+
]
2048+
},
2049+
{
2050+
"name": "h_spikeSuitSamusEaterLeniency",
2051+
"requires": [
2052+
{"samusEaterCycles": "n_spikeSuitLenience"}
2053+
]
2054+
},
2055+
{
2056+
"name": "h_spikeSuitPowerBombLeniency",
2057+
"requires": [
2058+
{"ammo": {"type": "PowerBomb", "count": "n_spikeSuitLenience"}}
2059+
]
2060+
},
2061+
{
2062+
"name": "h_XModeSpikeHit",
2063+
"requires": [
2064+
{"spikeHits": "n_spikeXModeAttempts"}
2065+
]
2066+
},
2067+
{
2068+
"name": "h_XModeThornHit",
2069+
"requires": [
2070+
{"thornHits": "n_thornXModeAttempts"}
2071+
]
2072+
}
2073+
]
19532074
}
19542075
]
19552076
}

0 commit comments

Comments
 (0)