Skip to content

Commit 6a84539

Browse files
authored
Merge pull request #1502 from kjbranch/crateria-remote-runways
Crateria remote runway strats
2 parents 63adb4d + 3e70dd8 commit 6a84539

19 files changed

Lines changed: 1717 additions & 59 deletions

logicalRequirements.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -435,6 +435,25 @@ __Example:__
435435
}},
436436
```
437437

438+
439+
#### speedBall object
440+
441+
A `speedBall` object represents the need for Samus to be able to gain blue speed and jump into a speedball using a specified runway. It includes a `canSpeedball` tech requirement. Whether a speedball can performed within a given runway length depends on the player's ability to shortcharge as well as to perform a short-hop mockball. The [blue run speed table](strats.md#blue-run-speed-table) describes several tiers of shortcharging skill, their associated runway lengths over which blue speed can be attained, and the resulting run speed. For determining whether a speedball is logically possible, the lowest run speed should be used within the range of what is possible for that skill level; this corresponds to using the "Ideal speed" from the table. The total runway length required can then be computed as follows:
442+
443+
$$\text{minimum speedball runway} = \text{minimal blue speed runway} + \text{short-hop mockball frames} * \text{mid-air speed}$$
444+
445+
Here the "mid-air speed" is obtained by adding the extra run speed (from the "Ideal speed" at the end of getting blue speed) to a base speed of $1.5, which is the average of the spin-jump base speed of $1.6 and the aim-down base speed of $1.4, assuming that roughly half of the jump will be spent in each of those two states. The "short-hop mockball frames" is the amount of frames between the start of the jump and when the morph-sized hitbox is achieved; it is a parameter that can be varied based on assumed player skill: a value of 6 is at or near TAS-level, while 40 would be a lenient value where Samus can jump several tiles into the air.
446+
447+
__Example:__
448+
```json
449+
{"speedBall": {
450+
"length": 25,
451+
"steepUpTiles": 3,
452+
"steepDownTiles": 3,
453+
"openEnd": 1
454+
}},
455+
```
456+
438457
#### itemNotCollectedAtNode object
439458
An `itemNotCollectedAtNode` object represents the need to have not yet collected the item at a given node in the same room. For example, such
440459
an item could be used to overload PLMs in G-mode assuming the item has spawned. Note that any conditions for the item to spawn (e.g. for

region/brinstar/blue/Morph Ball Room.json

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@
254254
"link": [1, 5],
255255
"name": "Room Entry Speedball",
256256
"entranceCondition": {
257-
"comeInShinecharging": {
257+
"comeInGettingBlueSpeed": {
258258
"length": 2,
259259
"openEnd": 0
260260
}
@@ -728,7 +728,7 @@
728728
"name": "Morph Ball Room Speedball (Right to Left)",
729729
"requires": [
730730
{"obstaclesCleared": ["B"]},
731-
{"canShineCharge": {
731+
{"getBlueSpeed": {
732732
"usedTiles": 21,
733733
"openEnd": 1
734734
}},
@@ -798,10 +798,9 @@
798798
"link": [6, 5],
799799
"name": "Morph Ball Room Speedball (Left to Right)",
800800
"requires": [
801-
"canSpeedball",
802801
{"obstaclesCleared": ["C"]},
803-
{"canShineCharge": {
804-
"usedTiles": 18,
802+
{"speedBall": {
803+
"length": 25,
805804
"openEnd": 0
806805
}}
807806
],

region/crateria/central/Bomb Torizo Room.json

Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,136 @@
186186
},
187187
"flashSuitChecked": true
188188
},
189+
{
190+
"link": [1, 1],
191+
"name": "Leave Spinning (Bomb Torizo Intact)",
192+
"requires": [],
193+
"exitCondition": {
194+
"leaveSpinning": {
195+
"remoteRunway": {
196+
"length": 7,
197+
"openEnd": 1
198+
}
199+
}
200+
}
201+
},
202+
{
203+
"link": [1, 1],
204+
"name": "Leave With Mockball (Bomb Torizo Intact)",
205+
"requires": [],
206+
"exitCondition": {
207+
"leaveWithMockball": {
208+
"remoteRunway": {
209+
"length": 6,
210+
"openEnd": 1
211+
},
212+
"landingRunway": {
213+
"length": 1,
214+
"openEnd": 1
215+
}
216+
}
217+
}
218+
},
219+
{
220+
"link": [1, 1],
221+
"name": "Leave With Spring Ball Bounce (Bomb Torizo Intact)",
222+
"requires": [],
223+
"exitCondition": {
224+
"leaveWithSpringBallBounce": {
225+
"remoteRunway": {
226+
"length": 5,
227+
"openEnd": 1
228+
},
229+
"landingRunway": {
230+
"length": 1,
231+
"openEnd": 1
232+
},
233+
"movementType": "uncontrolled"
234+
}
235+
}
236+
},
237+
{
238+
"link": [1, 1],
239+
"name": "Leave Space Jumping (Bomb Torizo Intact)",
240+
"requires": [],
241+
"exitCondition": {
242+
"leaveSpaceJumping": {
243+
"remoteRunway": {
244+
"length": 3,
245+
"openEnd": 1
246+
}
247+
}
248+
}
249+
},
250+
{
251+
"link": [1, 1],
252+
"name": "Leave Spinning (Bomb Torizo Dead)",
253+
"requires": [
254+
"f_DefeatedBombTorizo"
255+
],
256+
"exitCondition": {
257+
"leaveSpinning": {
258+
"remoteRunway": {
259+
"length": 10,
260+
"openEnd": 1
261+
}
262+
}
263+
}
264+
},
265+
{
266+
"link": [1, 1],
267+
"name": "Leave With Mockball (Bomb Torizo Dead)",
268+
"requires": [
269+
"f_DefeatedBombTorizo"
270+
],
271+
"exitCondition": {
272+
"leaveWithMockball": {
273+
"remoteRunway": {
274+
"length": 9,
275+
"openEnd": 1
276+
},
277+
"landingRunway": {
278+
"length": 1,
279+
"openEnd": 1
280+
}
281+
}
282+
}
283+
},
284+
{
285+
"link": [1, 1],
286+
"name": "Leave With Spring Ball Bounce (Bomb Torizo Dead)",
287+
"requires": [
288+
"f_DefeatedBombTorizo"
289+
],
290+
"exitCondition": {
291+
"leaveWithSpringBallBounce": {
292+
"remoteRunway": {
293+
"length": 8,
294+
"openEnd": 1
295+
},
296+
"landingRunway": {
297+
"length": 1,
298+
"openEnd": 1
299+
},
300+
"movementType": "uncontrolled"
301+
}
302+
}
303+
},
304+
{
305+
"link": [1, 1],
306+
"name": "Leave Space Jumping (Bomb Torizo Dead)",
307+
"requires": [
308+
"f_DefeatedBombTorizo"
309+
],
310+
"exitCondition": {
311+
"leaveSpaceJumping": {
312+
"remoteRunway": {
313+
"length": 5,
314+
"openEnd": 1
315+
}
316+
}
317+
}
318+
},
189319
{
190320
"link": [1, 1],
191321
"name": "Crystal Flash",

region/crateria/central/Crateria Super Room.json

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,38 @@
313313
"canLongCeilingBombJump"
314314
]
315315
},
316+
{
317+
"link": [1, 4],
318+
"name": "Speedy Jump Spring Fling",
319+
"entranceCondition": {
320+
"comeInRunning": {
321+
"minTiles": 28,
322+
"speedBooster": true
323+
}
324+
},
325+
"requires": [
326+
"canTrickyJump",
327+
"canLateralMidAirMorph",
328+
"canSpringFling"
329+
],
330+
"note": "Run and jump into an airball, pressing pause just as Samus hits the ceiling, in order to unequip Spring Ball to reset fall speed.",
331+
"devNote": "This can be done with 26 tiles of other-room runway, but it would probably require a higher movement tech."
332+
},
333+
{
334+
"link": [1, 4],
335+
"name": "Spring Ball Bounce Spring Fling",
336+
"entranceCondition": {
337+
"comeInWithSpringBallBounce": {
338+
"remoteAndLandingMinTiles": [[30, 1]],
339+
"movementType": "controlled"
340+
}
341+
},
342+
"requires": [
343+
"canTrickyJump",
344+
"canLateralMidAirMorph",
345+
"canSpringFling"
346+
]
347+
},
316348
{
317349
"link": [1, 5],
318350
"name": "G-Mode Morph and Bombs to Overload Speed Blocks",
@@ -478,6 +510,40 @@
478510
],
479511
"devNote": "There are 2 unusable tiles in this runway."
480512
},
513+
{
514+
"link": [1, 6],
515+
"name": "Speedy Jump Spring Fling Temporary Blue",
516+
"entranceCondition": {
517+
"comeInRunning": {
518+
"minTiles": 28,
519+
"speedBooster": true
520+
}
521+
},
522+
"requires": [
523+
"canTrickyJump",
524+
"canLateralMidAirMorph",
525+
"canSpringFling",
526+
"canTemporaryBlue"
527+
],
528+
"note": "Run and jump into an airball, pressing pause just as Samus hits the ceiling, in order to unequip Spring Ball to reset fall speed.",
529+
"devNote": "This can be done with 26 tiles of other-room runway, but it would probably require a higher movement tech."
530+
},
531+
{
532+
"link": [1, 6],
533+
"name": "Spring Ball Bounce Spring Fling Temporary Blue",
534+
"entranceCondition": {
535+
"comeInWithSpringBallBounce": {
536+
"remoteAndLandingMinTiles": [[30, 1]],
537+
"movementType": "controlled"
538+
}
539+
},
540+
"requires": [
541+
"canTrickyJump",
542+
"canLateralMidAirMorph",
543+
"canSpringFling",
544+
"canTemporaryBlue"
545+
]
546+
},
481547
{
482548
"link": [1, 6],
483549
"name": "Temporary Blue Springball",

0 commit comments

Comments
 (0)