Skip to content

Commit 13fb616

Browse files
committed
Merge branch 'master' into g-ws
2 parents 49fb12e + a399572 commit 13fb616

96 files changed

Lines changed: 3695 additions & 402 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

helpers.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -969,6 +969,14 @@
969969
]}
970970
]
971971
},
972+
{
973+
"name": "h_flashSuitIceClip",
974+
"requires": [
975+
"canTrickyUseFrozenEnemies",
976+
"canCeilingClip",
977+
{"useFlashSuit": {}}
978+
]
979+
},
972980
{
973981
"name": "h_maxHeightSpringBallJump",
974982
"requires": [

logicalRequirements.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,22 @@ __Example:__
242242
}}
243243
```
244244

245+
#### lavaFramesWithEnergyDrops object
246+
247+
A `lavaFramesWithEnergyDrops` object represents the need for Samus to spend time in lava, but with the possibility of offsetting some of the lava damage using energy drops from enemies. Any lava damage is logically applied before the energy gain, so Samus must be able to survive the heat before picking up the drops. Any energy gain is logically capped to not exceed the heat damage, so this logical requirement cannot result in a net energy gain.
248+
249+
The actual amount of energy gained typically depends on RNG and also on which ammo types are completely full. The drop probabilities for each enemy type is given in the [enemies](enemies/main.json) file. Because of the randomness involved, the logical amount of energy gain is open to various interpretations. For example, the mean, the median, or a lower confidence limit could be used.
250+
251+
__Example:__
252+
```json
253+
{"lavaFramesWithEnergyDrops": {
254+
"frames": 200,
255+
"drops": [
256+
{"enemy": "Fune", "count": 1}
257+
]
258+
}}
259+
```
260+
245261
#### gravitylessHeatFrames object
246262
A `gravitylessHeatFrames` object represents Samus in a heated environment with Gravity Suit turned off, even if it is available. The number of frames here needs to be represented as `heatFrames` without the reduction effects given by Gravity Suit.
247263

region/brinstar/blue/Blue Brinstar Energy Tank Room.json

Lines changed: 39 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -503,10 +503,14 @@
503503
{"resetRoom": {
504504
"nodes": [1]
505505
}},
506-
{"refill": ["Missile"]},
507-
{"partialRefill": {"type": "Energy", "limit": 200}}
506+
{"cycleFrames": 400}
508507
],
509-
"resetsObstacles": ["A", "B", "C", "D"]
508+
"resetsObstacles": ["A", "B", "C", "D"],
509+
"farmCycleDrops": [
510+
{"enemy": "Geemer (blue)", "count": 2},
511+
{"enemy": "Skree", "count": 2},
512+
{"enemy": "Reo", "count": 1}
513+
]
510514
},
511515
{
512516
"id": 15,
@@ -883,6 +887,38 @@
883887
"flashSuitChecked": true,
884888
"note": "Falling down the shaft and breaking the crumble block does not require Morph."
885889
},
890+
{
891+
"link": [2, 2],
892+
"name": "Geemer, Skree, and Reo Farm",
893+
"requires": [
894+
{"notable": "Return Through Crumble Blocks"},
895+
"h_ZebesIsAwake",
896+
"Morph",
897+
{"or": [
898+
"ScrewAttack",
899+
"h_useMorphBombs"
900+
]},
901+
{"or": [
902+
"canConsecutiveWalljump",
903+
"SpaceJump"
904+
]},
905+
{"resetRoom": {
906+
"nodes": [2]
907+
}},
908+
{"cycleFrames": 1350}
909+
],
910+
"resetsObstacles": ["C", "D"],
911+
"clearsObstacles": ["A", "B"],
912+
"farmCycleDrops": [
913+
{"enemy": "Geemer (blue)", "count": 2},
914+
{"enemy": "Skree", "count": 2},
915+
{"enemy": "Reo", "count": 1}
916+
],
917+
"devNote": [
918+
"Returning with an IBJ or frozen Geemer would also be possible,",
919+
"but these are probably too slow to model in a farm strat."
920+
]
921+
},
886922
{
887923
"id": 38,
888924
"link": [2, 2],

region/brinstar/blue/Morph Ball Room.json

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -363,6 +363,73 @@
363363
"leaveWithTemporaryBlue": {}
364364
}
365365
},
366+
{
367+
"link": [1, 1],
368+
"name": "Sidehopper Farm",
369+
"requires": [
370+
"h_ZebesIsAwake",
371+
"canPrepareForNextRoom",
372+
{"resetRoom": {"nodes": [1]}},
373+
{"or": [
374+
{"and": [
375+
"Plasma",
376+
"Charge",
377+
{"cycleFrames": 270}
378+
]},
379+
{"and": [
380+
"ScrewAttack",
381+
{"cycleFrames": 250}
382+
]},
383+
{"and": [
384+
"Plasma",
385+
"Wave",
386+
"canTrickyDodgeEnemies",
387+
{"cycleFrames": 300}
388+
]},
389+
{"and": [
390+
"h_PlasmaHitbox",
391+
{"cycleFrames": 360}
392+
]},
393+
{"and": [
394+
"Morph",
395+
"canTrickyDodgeEnemies",
396+
{"or": [
397+
{"and": [
398+
"Wave",
399+
"Spazer",
400+
{"cycleFrames": 600}
401+
]},
402+
{"and": [
403+
"Wave",
404+
{"cycleFrames": 840}
405+
]},
406+
{"and": [
407+
"Spazer",
408+
"Ice",
409+
{"cycleFrames": 840}
410+
]},
411+
{"and": [
412+
"Spazer",
413+
{"cycleFrames": 960}
414+
]},
415+
{"and": [
416+
"Ice",
417+
{"cycleFrames": 1560}
418+
]},
419+
{"and": [
420+
"canBePatient",
421+
{"cycleFrames": 2320}
422+
]}
423+
]}
424+
]}
425+
]}
426+
],
427+
"resetsObstacles": ["A", "B", "D"],
428+
"clearsObstacles": ["C"],
429+
"farmCycleDrops": [
430+
{"enemy": "Sidehopper", "count": 3}
431+
]
432+
},
366433
{
367434
"id": 10,
368435
"link": [1, 1],

region/brinstar/green/Brinstar Pre-Map Room.json

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,18 @@
127127
},
128128
"flashSuitChecked": true
129129
},
130+
{
131+
"link": [1, 1],
132+
"name": "Zeela Farm",
133+
"requires": [
134+
{"resetRoom": {"nodes": [1]}},
135+
{"cycleFrames": 120}
136+
],
137+
"farmCycleDrops": [
138+
{"enemy": "Zeela", "count": 1}
139+
],
140+
"resetsObstacles": ["A"]
141+
},
130142
{
131143
"id": 2,
132144
"link": [1, 1],
@@ -433,12 +445,30 @@
433445
{"resetRoom": {
434446
"nodes": [2]
435447
}},
436-
{"partialRefill": {"type": "Energy", "limit": 240}},
437-
{"partialRefill": {"type": "Missile", "limit": 20}},
438-
{"partialRefill": {"type": "Super", "limit": 4}}
448+
{"cycleFrames": 320},
449+
{"or": [
450+
"canDodgeWhileShooting",
451+
"Plasma",
452+
{"and": [
453+
"Wave",
454+
"Spazer"
455+
]},
456+
{"and": [
457+
"Ice",
458+
"Wave"
459+
]},
460+
{"and": [
461+
"Ice",
462+
"Spazer"
463+
]}
464+
]}
439465
],
440466
"resetsObstacles": ["A"],
441-
"flashSuitChecked": true
467+
"flashSuitChecked": true,
468+
"farmCycleDrops": [
469+
{"enemy": "Zeela", "count": 2},
470+
{"enemy": "Sm. Sidehopper", "count": 1}
471+
]
442472
},
443473
{
444474
"id": 24,

region/brinstar/green/Early Supers Room.json

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,10 @@
272272
"link": [1, 1],
273273
"name": "Zeb Farm",
274274
"requires": [
275-
{"refill": ["Energy", "Missile", "Super"]}
275+
{"cycleFrames": 105}
276+
],
277+
"farmCycleDrops": [
278+
{"enemy": "Zeb", "count": 1}
276279
],
277280
"flashSuitChecked": true
278281
},
@@ -802,6 +805,45 @@
802805
"leaveWithTemporaryBlue": {}
803806
}
804807
},
808+
{
809+
"link": [2, 2],
810+
"name": "Waver and Sidehopper Farm",
811+
"requires": [
812+
{"resetRoom": {"nodes": [2]}},
813+
{"or": [
814+
"canWalljump",
815+
"canCrouchJump"
816+
]},
817+
{"or": [
818+
{"and": [
819+
"Plasma",
820+
{"cycleFrames": 600}
821+
]},
822+
{"and": [
823+
"ScrewAttack",
824+
{"cycleFrames": 700}
825+
]},
826+
{"and": [
827+
{"or": [
828+
"Wave",
829+
"Spazer"
830+
]},
831+
{"cycleFrames": 750}
832+
]},
833+
{"and": [
834+
"canDodgeWhileShooting",
835+
{"cycleFrames": 1050}
836+
]}
837+
]}
838+
],
839+
"farmCycleDrops": [
840+
{"enemy": "Waver", "count": 4},
841+
{"enemy": "Sm. Sidehopper", "count": 3}
842+
],
843+
"clearsObstacles": ["A"],
844+
"resetsObstacles": ["B"],
845+
"flashSuitChecked": true
846+
},
805847
{
806848
"id": 30,
807849
"link": [2, 2],

0 commit comments

Comments
 (0)