Skip to content

Commit 7bff029

Browse files
authored
Merge pull request #2127 from blkerby/pink-brin-farms
Pink Brinstar farms
2 parents 5dea0a3 + 65867ed commit 7bff029

6 files changed

Lines changed: 262 additions & 32 deletions

region/brinstar/pink/Dachora Room.json

Lines changed: 52 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -188,13 +188,59 @@
188188
"link": [1, 1],
189189
"name": "Zeela and Reo Farm",
190190
"requires": [
191-
{"resetRoom": {
192-
"nodes": [1]
193-
}},
194-
{"partialRefill": {"type": "Super", "limit": 8}},
195-
{"refill": ["Energy", "Missile"]}
191+
{"or": [
192+
{"resetRoom": {
193+
"nodes": [1]
194+
}},
195+
{"and": [
196+
{"resetRoom": {
197+
"nodes": [2]
198+
}},
199+
{"or": [
200+
{"and": [
201+
"h_getBlueSpeedMaxRunway",
202+
"canCarefulJump",
203+
{"cycleFrames": 500}
204+
]},
205+
{"and": [
206+
"ScrewAttack",
207+
{"cycleFrames": 620}
208+
]},
209+
{"and": [
210+
"h_useMorphBombs",
211+
{"cycleFrames": 1100}
212+
]}
213+
]}
214+
]}
215+
]},
216+
{"or": [
217+
{"and": [
218+
"Plasma",
219+
{"cycleFrames": 360}
220+
]},
221+
{"and": [
222+
"Wave",
223+
{"cycleFrames": 360}
224+
]},
225+
{"and": [
226+
"Spazer",
227+
{"cycleFrames": 400}
228+
]},
229+
{"and": [
230+
"ScrewAttack",
231+
{"cycleFrames": 490}
232+
]},
233+
{"and": [
234+
"canDodgeWhileShooting",
235+
{"cycleFrames": 540}
236+
]}
237+
]}
196238
],
197-
"resetsObstacles": ["A"]
239+
"resetsObstacles": ["A"],
240+
"farmCycleDrops": [
241+
{"enemy": "Zeela", "count": 2},
242+
{"enemy": "Reo", "count": 3}
243+
]
198244
},
199245
{
200246
"id": 5,

region/brinstar/pink/Mission Impossible Room.json

Lines changed: 75 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -300,6 +300,54 @@
300300
"leaveWithTemporaryBlue": {}
301301
}
302302
},
303+
{
304+
"link": [1, 1],
305+
"name": "Sidehopper Farm",
306+
"requires": [
307+
{"resetRoom": {"nodes": [1]}},
308+
{"or": [
309+
{"and": [
310+
"ScrewAttack",
311+
{"cycleFrames": 310}
312+
]},
313+
{"and": [
314+
"Plasma",
315+
{"cycleFrames": 440}
316+
]},
317+
{"and": [
318+
"Wave",
319+
"Spazer",
320+
"canDodgeWhileShooting",
321+
{"cycleFrames": 500}
322+
]},
323+
{"and": [
324+
{"notable": "Doorway Sidehopper Kill"},
325+
{"doorUnlockedAtNode": 1},
326+
"canTrickyDodgeEnemies",
327+
{"or": [
328+
{"and": [
329+
"Wave",
330+
{"cycleFrames": 750}
331+
]},
332+
{"and": [
333+
"Spazer",
334+
{"cycleFrames": 840}
335+
]},
336+
{"and": [
337+
"Ice",
338+
{"cycleFrames": 1000}
339+
]},
340+
{"cycleFrames": 1440}
341+
]}
342+
]}
343+
]}
344+
],
345+
"clearsObstacles": ["A"],
346+
"resetsObstacles": ["B"],
347+
"farmCycleDrops": [
348+
{"enemy": "Sidehopper", "count": 2}
349+
]
350+
},
303351
{
304352
"id": 10,
305353
"link": [1, 1],
@@ -481,26 +529,26 @@
481529
"link": [1, 4],
482530
"name": "Doorway Sidehopper Kill",
483531
"requires": [
532+
{"notable": "Doorway Sidehopper Kill"},
484533
{"doorUnlockedAtNode": 1},
485-
"canDodgeWhileShooting",
486-
{"or": [
487-
"Morph",
488-
"Spazer",
489-
"Wave",
490-
"Plasma",
491-
{"enemyKill": {
492-
"enemies": [["Sidehopper"]],
493-
"explicitWeapons": ["Missile"]
494-
}},
495-
{"enemyDamage": {"enemy": "Sidehopper", "type": "contact", "hits": 2}},
496-
"canTrickyJump"
497-
]}
534+
"canTrickyDodgeEnemies"
498535
],
499536
"clearsObstacles": ["A"],
500537
"note": [
501-
"Open the door and kill the first hopper from inside the doorway. It won't be able to hit Samus for many jumps.",
502-
"It is possible to quickly get back to the right and crouch against the the ledge while aiming upward to safely kill the Sidehopper.",
503-
"Alternatively, morph can help with the second hopper, as it won't be able to hit Samus."
538+
"Open the door, walk a safe distance into the doorway, and turn around.",
539+
"Wait for the Sidehopper to do 4 hops before beginning to shoot it.",
540+
"It can then be safely killed from inside the doorway.",
541+
"It is not recommended to moonwalk into the doorway,",
542+
"as this carries risk of shooting the Sidehopper pre-maturely.",
543+
"After bringing the second Hopper on camera,",
544+
"quickly get back to the right and crouch against the the ledge while aiming upward to safely kill it."
545+
],
546+
"detailNote": [
547+
"Shooting the Sidehopper delays its AI, which affects its RNG on later hops.",
548+
"If the Sidehopper is shot too early, it may do a short hop directly into the doorway.",
549+
"After the Sidehopper initiates its 4th hop (in which it will land on the ground in front of the ledge),",
550+
"it will be stuck in a safe pattern for long enough to kill it,",
551+
"regardless of whether it does large or small hops afterward."
504552
]
505553
},
506554
{
@@ -889,8 +937,18 @@
889937
"Break spin just before you would hit the respawning crumble block, in order to clip up through it.",
890938
"Then perform a crumble jump to make it out."
891939
]
940+
},
941+
{
942+
"id": 5,
943+
"name": "Doorway Sidehopper Kill",
944+
"note": [
945+
"Open the door, walk a safe distance into the doorway, and turn around.",
946+
"Wait for the Sidehopper to do 4 hops before beginning to shoot it.",
947+
"After bringing the second Hopper on camera,",
948+
"quickly get back to the right and crouch against the the ledge while aiming upward to safely kill it."
949+
]
892950
}
893951
],
894952
"nextStratId": 41,
895-
"nextNotableId": 5
953+
"nextNotableId": 6
896954
}

region/brinstar/pink/Pink Brinstar Wave Gate Room.json

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -565,6 +565,30 @@
565565
"flashSuitChecked": true,
566566
"note": "Kill the Sidehoppers with a Power Bomb upon entry."
567567
},
568+
{
569+
"link": [1, 1],
570+
"name": "Sidehopper Farm",
571+
"requires": [
572+
"canPrepareForNextRoom",
573+
{"resetRoom": {"nodes": [1]}},
574+
{"or":[
575+
{"and": [
576+
"ScrewAttack",
577+
{"cycleFrames": 130}
578+
]},
579+
{"and": [
580+
"h_PlasmaHitbox",
581+
{"cycleFrames": 170}
582+
]}
583+
]}
584+
],
585+
"farmCycleDrops": [
586+
{"enemy": "Sidehopper", "count": 1},
587+
{"enemy": "Sm. Sidehopper", "count": 2}
588+
],
589+
"clearsObstacles": ["A"],
590+
"resetsObstacles": ["B", "C"]
591+
},
568592
{
569593
"id": 17,
570594
"link": [1, 1],
@@ -1191,6 +1215,35 @@
11911215
}
11921216
}
11931217
},
1218+
{
1219+
"link": [2, 2],
1220+
"name": "Sidehopper Farm",
1221+
"requires": [
1222+
"canWalljump",
1223+
"canTrickyJump",
1224+
{"resetRoom": {"nodes": [2]}},
1225+
{"or": [
1226+
{"and": [
1227+
"ScrewAttack",
1228+
{"cycleFrames": 600}
1229+
]},
1230+
{"and": [
1231+
"Plasma",
1232+
{"cycleFrames": 690}
1233+
]},
1234+
{"and": [
1235+
"Wave",
1236+
{"cycleFrames": 810}
1237+
]}
1238+
]}
1239+
],
1240+
"farmCycleDrops": [
1241+
{"enemy": "Sidehopper", "count": 1},
1242+
{"enemy": "Sm. Sidehopper", "count": 2}
1243+
],
1244+
"clearsObstacles": ["A", "B"],
1245+
"resetsObstacles": ["C"]
1246+
},
11941247
{
11951248
"id": 43,
11961249
"link": [2, 2],

region/brinstar/pink/Spore Spawn Farming Room.json

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,24 @@
8080
"link": [1, 1],
8181
"name": "Zeb Farm",
8282
"requires": [
83-
{"refill": ["Energy", "Missile", "Super"]}
83+
{"cycleFrames": 105}
84+
],
85+
"farmCycleDrops": [
86+
{"enemy": "Zeb", "count": 1}
87+
]
88+
},
89+
{
90+
"link": [1, 1],
91+
"name": "Double Zeb Farm",
92+
"requires": [
93+
"canDodgeWhileShooting",
94+
{"cycleFrames": 105}
95+
],
96+
"farmCycleDrops": [
97+
{"enemy": "Zeb", "count": 2}
98+
],
99+
"note": [
100+
"Jump back and forth between the left two bug pipes to farm them simultaneously."
84101
]
85102
},
86103
{

region/brinstar/pink/Spore Spawn Super Room.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,10 @@
119119
"link": [1, 1],
120120
"name": "Zeb Farm",
121121
"requires": [
122-
{"refill": ["Energy", "Missile", "Super"]}
122+
{"cycleFrames": 105}
123+
],
124+
"farmCycleDrops": [
125+
{"enemy": "Zeb", "count": 1}
123126
]
124127
},
125128
{

region/brinstar/pink/Waterway Energy Tank Room.json

Lines changed: 60 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -167,19 +167,72 @@
167167
"link": [1, 1],
168168
"name": "Zero Farm",
169169
"requires": [
170-
"h_heatProof",
170+
{"resetRoom": {"nodes": [1]}},
171171
{"or": [
172172
{"and": [
173173
"Gravity",
174-
{"refill": ["PowerBomb"]}
174+
{"or": [
175+
{"and": [
176+
{"or": [
177+
"Wave",
178+
"Spazer",
179+
"Plasma"
180+
]},
181+
{"cycleFrames": 340}
182+
]},
183+
{"and": [
184+
"ScrewAttack",
185+
{"cycleFrames": 360}
186+
]},
187+
{"and": [
188+
"Grapple",
189+
{"cycleFrames": 360}
190+
]},
191+
{"cycleFrames": 420}
192+
]}
175193
]},
176-
{"partialRefill": {"type": "PowerBomb", "limit": 6}}
194+
{"and": [
195+
{"or": [
196+
"Charge",
197+
"Wave",
198+
"Spazer",
199+
"Plasma"
200+
]},
201+
{"cycleFrames": 690}
202+
]},
203+
{"cycleFrames": 780}
177204
]}
178205
],
179-
"devNote": [
180-
"FIXME: The h_heatProof requirement is because Zeros only drop small energy, not enough to guarantee progress if the neighboring room is heated",
181-
"Later we should remove this in favor of some way to require that the neighboring room is not heated."
182-
]
206+
"farmCycleDrops": [
207+
{"enemy": "Zero", "count": 2}
208+
],
209+
"resetsObstacles": ["A"]
210+
},
211+
{
212+
"link": [1, 1],
213+
"name": "Zero, Puyo, and Skultera Farm",
214+
"requires": [
215+
{"resetRoom": {"nodes": [1]}},
216+
"Gravity",
217+
"h_getBlueSpeedMaxRunway",
218+
{"or": [
219+
{"and": [
220+
{"or": [
221+
"Plasma",
222+
"Wave",
223+
"Spazer"
224+
]},
225+
{"cycleFrames": 440}
226+
]},
227+
{"cycleFrames": 510}
228+
]}
229+
],
230+
"farmCycleDrops": [
231+
{"enemy": "Zero", "count": 2},
232+
{"enemy": "Puyo", "count": 3},
233+
{"enemy": "Skultera", "count": 2}
234+
],
235+
"resetsObstacles": ["A"]
183236
},
184237
{
185238
"id": 5,

0 commit comments

Comments
 (0)