From a7bcc9cd8ae62f3520a0f1417aaedbb35177dd4f Mon Sep 17 00:00:00 2001 From: Brent Kerby Date: Sat, 12 Jul 2025 13:09:28 -0600 Subject: [PATCH 1/3] Green Brinstar farms --- .../brinstar/green/Brinstar Pre-Map Room.json | 38 ++++++++++-- region/brinstar/green/Early Supers Room.json | 35 +++++++++++ .../green/Etecoon Energy Tank Room.json | 62 ++++++++++++++++--- .../green/Green Brinstar Beetom Room.json | 14 +++-- .../green/Green Brinstar Fireflea Room.json | 21 +++++-- .../green/Green Brinstar Main Shaft.json | 58 +++++++++++++++-- region/brinstar/green/Green Hill Zone.json | 33 +++++++++- region/brinstar/green/Noob Bridge.json | 28 +++++++-- .../green/Spore Spawn Kihunter Room.json | 30 +++++++++ 9 files changed, 291 insertions(+), 28 deletions(-) diff --git a/region/brinstar/green/Brinstar Pre-Map Room.json b/region/brinstar/green/Brinstar Pre-Map Room.json index 0a5aedecf6..7a3944deb6 100644 --- a/region/brinstar/green/Brinstar Pre-Map Room.json +++ b/region/brinstar/green/Brinstar Pre-Map Room.json @@ -127,6 +127,18 @@ }, "flashSuitChecked": true }, + { + "link": [1, 1], + "name": "Zeela Farm", + "requires": [ + {"resetRoom": {"nodes": [1]}}, + {"cycleFrames": 120} + ], + "farmCycleDrops": [ + {"enemy": "Zeela", "count": 1} + ], + "resetsObstacles": ["A"] + }, { "id": 2, "link": [1, 1], @@ -433,12 +445,30 @@ {"resetRoom": { "nodes": [2] }}, - {"partialRefill": {"type": "Energy", "limit": 240}}, - {"partialRefill": {"type": "Missile", "limit": 20}}, - {"partialRefill": {"type": "Super", "limit": 4}} + {"cycleFrames": 320}, + {"or": [ + "canDodgeWhileShooting", + "Plasma", + {"and": [ + "Wave", + "Spazer" + ]}, + {"and": [ + "Ice", + "Wave" + ]}, + {"and": [ + "Ice", + "Spazer" + ]} + ]} ], "resetsObstacles": ["A"], - "flashSuitChecked": true + "flashSuitChecked": true, + "farmCycleDrops": [ + {"enemy": "Zeela", "count": 2}, + {"enemy": "Sm. Sidehopper", "count": 1} + ] }, { "id": 24, diff --git a/region/brinstar/green/Early Supers Room.json b/region/brinstar/green/Early Supers Room.json index fb0ba667e2..aac902a993 100644 --- a/region/brinstar/green/Early Supers Room.json +++ b/region/brinstar/green/Early Supers Room.json @@ -802,6 +802,41 @@ "leaveWithTemporaryBlue": {} } }, + { + "link": [2, 2], + "name": "Waver and Sidehopper Farm", + "requires": [ + {"resetRoom": {"nodes": [2]}}, + {"or": [ + "canWalljump", + "canCrouchJump" + ]}, + {"or": [ + {"and": [ + "Plasma", + {"cycleFrames": 600} + ]}, + {"and": [ + {"or": [ + "Wave", + "Spazer" + ]}, + {"cycleFrames": 750} + ]}, + {"and": [ + "canDodgeWhileShooting", + {"cycleFrames": 1050} + ]} + ]} + ], + "farmCycleDrops": [ + {"enemy": "Waver", "count": 4}, + {"enemy": "Sm. Sidehopper", "count": 3} + ], + "clearsObstacles": ["A"], + "resetsObstacles": ["B"], + "flashSuitChecked": true + }, { "id": 30, "link": [2, 2], diff --git a/region/brinstar/green/Etecoon Energy Tank Room.json b/region/brinstar/green/Etecoon Energy Tank Room.json index 94bb3f1660..3ee15bac11 100644 --- a/region/brinstar/green/Etecoon Energy Tank Room.json +++ b/region/brinstar/green/Etecoon Energy Tank Room.json @@ -1040,6 +1040,38 @@ ], "devNote": "This does not require canRiskPermanentLossOfAccess if Samus returns through the crumble blocks." }, + { + "link": [3, 3], + "name": "Zebbo and Beetom Farm", + "requires": [ + "Morph", + {"resetRoom": { + "nodes": [3] + }}, + {"cycleFrames": 630}, + {"or": [ + {"enemyKill": { + "enemies": [["Beetom", "Beetom"]], + "explicitWeapons": ["ScrewAttack", "Missile", "PowerBomb"] + }}, + {"and": [ + "h_useMorphBombs", + {"or": [ + "Ice", + "canTrickyDodgeEnemies" + ]}, + {"cycleFrames": 400} + ]} + ]} + ], + "clearsObstacles": ["A"], + "resetsObstacles": ["B"], + "flashSuitChecked": true, + "farmCycleDrops": [ + {"enemy": "Beetom", "count": 2}, + {"enemy": "Zebbo", "count": 1} + ] + }, { "id": 75, "link": [3, 4], @@ -1549,15 +1581,28 @@ {"resetRoom": { "nodes": [4] }}, - {"enemyKill": { - "enemies": [["Beetom"]] - }}, - {"refill": ["Energy", "Missile", "Super", "PowerBomb"]} + {"cycleFrames": 530}, + {"or": [ + {"enemyKill": { + "enemies": [["Beetom", "Beetom"]], + "explicitWeapons": ["ScrewAttack", "Missile", "PowerBomb"] + }}, + {"and": [ + {"or": [ + "Ice", + "canTrickyDodgeEnemies" + ]}, + "h_useMorphBombs" + ]} + ]} ], "clearsObstacles": ["A"], "resetsObstacles": ["B"], "flashSuitChecked": true, - "devNote": ["FIXME: Node 3 could be used to reset the room, with additional requirements."] + "farmCycleDrops": [ + {"enemy": "Beetom", "count": 2}, + {"enemy": "Zebbo", "count": 2} + ] }, { "id": 52, @@ -1565,9 +1610,12 @@ "name": "Zebbo Farm", "requires": [ {"obstaclesCleared": ["A"]}, - {"refill": ["Energy", "Missile", "Super"]} + {"cycleFrames": 115} ], - "flashSuitChecked": true + "flashSuitChecked": true, + "farmCycleDrops": [ + {"enemy": "Zebbo", "count": 1} + ] }, { "id": 80, diff --git a/region/brinstar/green/Green Brinstar Beetom Room.json b/region/brinstar/green/Green Brinstar Beetom Room.json index 6819b64f20..6ce8f1e4e7 100644 --- a/region/brinstar/green/Green Brinstar Beetom Room.json +++ b/region/brinstar/green/Green Brinstar Beetom Room.json @@ -182,16 +182,22 @@ "nodes": [1, 2] }}, {"or": [ - "ScrewAttack", + {"and": [ + "ScrewAttack", + {"cycleFrames": 180} + ]}, {"and": [ "Ice", - "h_useMorphBombs" + "h_useMorphBombs", + {"cycleFrames": 300} ]} - ]}, - {"refill": ["PowerBomb"]} + ]} ], "clearsObstacles": ["A"], "flashSuitChecked": true, + "farmCycleDrops": [ + {"enemy": "Beetom", "count": 4} + ], "note": "Kill the Beetoms with Screw Attack or by freezing them and using Bombs or Power Bombs.", "devNote": [ "Using an adjacent 2-tile runway doesn't seem workable since heat frames may be too much to maintain energy.", diff --git a/region/brinstar/green/Green Brinstar Fireflea Room.json b/region/brinstar/green/Green Brinstar Fireflea Room.json index c9518101f3..52ea014558 100644 --- a/region/brinstar/green/Green Brinstar Fireflea Room.json +++ b/region/brinstar/green/Green Brinstar Fireflea Room.json @@ -170,10 +170,23 @@ "link": [1, 1], "name": "Fireflea Farm", "requires": [ - {"resetRoom": { - "nodes": [1, 2] - }}, - {"refill": ["Energy", "PowerBomb"]} + {"or": [ + {"and": [ + {"resetRoom": { + "nodes": [1] + }}, + {"cycleFrames": 630} + ]}, + {"and": [ + {"resetRoom": { + "nodes": [2] + }}, + {"cycleFrames": 900} + ]} + ]} + ], + "farmCycleDrops": [ + {"enemy": "Fireflea", "count": 5} ], "flashSuitChecked": true }, diff --git a/region/brinstar/green/Green Brinstar Main Shaft.json b/region/brinstar/green/Green Brinstar Main Shaft.json index e2008521c6..27cb6100bc 100644 --- a/region/brinstar/green/Green Brinstar Main Shaft.json +++ b/region/brinstar/green/Green Brinstar Main Shaft.json @@ -5009,12 +5009,37 @@ "link": [12, 12], "name": "Zeela Farm", "requires": [ - {"resetRoom": { - "nodes": [1, 2, 3, 4, 5, 6] - }}, - {"refill": ["Energy", "Missile", "Super"]} + {"or": [ + {"and": [ + {"resetRoom": { + "nodes": [2, 3, 4] + }}, + {"cycleFrames": 660} + ]}, + {"and": [ + {"resetRoom": { + "nodes": [5, 6] + }}, + {"cycleFrames": 760} + ]}, + {"and": [ + {"resetRoom": { + "nodes": [1] + }}, + {"cycleFrames": 1700} + ]} + ]}, + {"or": [ + "Wave", + "Spazer", + "Plasma", + {"cycleFrames": 120} + ]} ], "resetsObstacles": ["A"], + "farmCycleDrops": [ + {"enemy": "Zeela", "count": 4} + ], "flashSuitChecked": true }, { @@ -5124,6 +5149,31 @@ "The pixel window is larger and higher with Morph and an X-Ray Stand Up." ] }, + { + "link": [13, 13], + "name": "Zeela Farm", + "requires": [ + {"or": [ + {"and": [ + {"resetRoom": { + "nodes": [7] + }}, + {"cycleFrames": 270} + ]}, + {"and": [ + {"resetRoom": { + "nodes": [8] + }}, + {"cycleFrames": 620} + ]} + ]} + ], + "resetsObstacles": ["A"], + "farmCycleDrops": [ + {"enemy": "Zeela", "count": 1} + ], + "flashSuitChecked": true + }, { "id": 237, "link": [13, 13], diff --git a/region/brinstar/green/Green Hill Zone.json b/region/brinstar/green/Green Hill Zone.json index e1285460a0..9c72402b95 100644 --- a/region/brinstar/green/Green Hill Zone.json +++ b/region/brinstar/green/Green Hill Zone.json @@ -314,7 +314,10 @@ "link": [1, 1], "name": "Geega Farm", "requires": [ - {"refill": ["Energy", "Missile", "Super"]} + {"cycleFrames": 125} + ], + "farmCycleDrops": [ + {"enemy": "Geega", "count": 1} ], "flashSuitChecked": true }, @@ -1454,6 +1457,34 @@ "leaveWithTemporaryBlue": {} } }, + { + "link": [3, 3], + "name": "Sidehopper Farm", + "requires": [ + {"resetRoom": {"nodes": [3]}}, + {"or": [ + {"and": [ + "Plasma", + {"cycleFrames": 240} + ]}, + {"and": [ + {"or": [ + "Spazer", + "Wave" + ]}, + {"cycleFrames": 300} + ]}, + {"and": [ + "canDodgeWhileShooting", + {"cycleFrames": 390} + ]} + ]} + ], + "farmCycleDrops": [ + {"enemy": "Sm. Sidehopper", "count": 3} + ], + "resetsObstacles": ["B"] + }, { "id": 65, "link": [3, 3], diff --git a/region/brinstar/green/Noob Bridge.json b/region/brinstar/green/Noob Bridge.json index 7d0af4ece2..b99880eb54 100644 --- a/region/brinstar/green/Noob Bridge.json +++ b/region/brinstar/green/Noob Bridge.json @@ -219,10 +219,30 @@ "link": [1, 1], "name": "Cacatac and Zeela Farm", "requires": [ - {"resetRoom": { - "nodes": [1, 2] - }}, - {"refill": ["Energy", "Missile", "Super"]} + {"or": [ + {"and": [ + {"resetRoom": { + "nodes": [1] + }}, + {"cycleFrames": 560} + ]}, + {"and": [ + {"resetRoom": { + "nodes": [2] + }}, + {"cycleFrames": 1100} + ]} + ]}, + {"or": [ + "Plasma", + "Spazer", + "Wave", + {"cycleFrames": 370} + ]} + ], + "farmCycleDrops": [ + {"enemy": "Zeela", "count": 4}, + {"enemy": "Cacatac", "count": 3} ], "flashSuitChecked": true }, diff --git a/region/brinstar/green/Spore Spawn Kihunter Room.json b/region/brinstar/green/Spore Spawn Kihunter Room.json index f3b37a9d51..6c55564ecc 100644 --- a/region/brinstar/green/Spore Spawn Kihunter Room.json +++ b/region/brinstar/green/Spore Spawn Kihunter Room.json @@ -208,6 +208,36 @@ "leaveWithTemporaryBlue": {} } }, + { + "link": [1, 1], + "name": "Kihunter Farm", + "requires": [ + {"or": [ + {"resetRoom": {"nodes": [1]}}, + {"and": [ + {"resetRoom": {"nodes": [2]}}, + {"cycleFrames": 90} + ]} + ]}, + {"or": [ + {"and": [ + {"or": [ + "Plasma", + "Spazer", + "Wave" + ]}, + {"cycleFrames": 500} + ]}, + {"and": [ + "canDodgeWhileShooting", + {"cycleFrames": 660} + ]} + ]} + ], + "farmCycleDrops": [ + {"enemy": "Kihunter (green)", "count": 3} + ] + }, { "id": 8, "link": [1, 1], From ce8afe86f06ef0578f2cc15ed63f8bed5ffdd640 Mon Sep 17 00:00:00 2001 From: Brent Kerby Date: Mon, 14 Jul 2025 16:26:23 -0600 Subject: [PATCH 2/3] feedback updates --- region/brinstar/green/Early Supers Room.json | 4 ++ .../green/Green Brinstar Beetom Room.json | 13 +++++ .../green/Green Brinstar Main Shaft.json | 29 +++++++++++ region/brinstar/green/Green Hill Zone.json | 3 +- region/brinstar/green/Noob Bridge.json | 52 ++++++++++++++----- .../green/Spore Spawn Kihunter Room.json | 3 +- 6 files changed, 88 insertions(+), 16 deletions(-) diff --git a/region/brinstar/green/Early Supers Room.json b/region/brinstar/green/Early Supers Room.json index aac902a993..f0feaaceb0 100644 --- a/region/brinstar/green/Early Supers Room.json +++ b/region/brinstar/green/Early Supers Room.json @@ -816,6 +816,10 @@ "Plasma", {"cycleFrames": 600} ]}, + {"and": [ + "ScrewAttack", + {"cycleFrames": 700} + ]}, {"and": [ {"or": [ "Wave", diff --git a/region/brinstar/green/Green Brinstar Beetom Room.json b/region/brinstar/green/Green Brinstar Beetom Room.json index 6ce8f1e4e7..740078f0ba 100644 --- a/region/brinstar/green/Green Brinstar Beetom Room.json +++ b/region/brinstar/green/Green Brinstar Beetom Room.json @@ -190,6 +190,19 @@ "Ice", "h_useMorphBombs", {"cycleFrames": 300} + ]}, + {"and": [ + {"or": [ + "Ice", + "canTrickyDodgeEnemies", + {"enemyDamage": {"enemy": "Beetom", "type": "contact", "hits": 1}} + ]}, + {"or": [ + {"resourceAvailable": [{"type": "Energy", "count": 50}]}, + {"resourceAvailable": [{"type": "PowerBomb", "count": 4}]} + ]}, + "h_usePowerBomb", + {"cycleFrames": 210} ]} ]} ], diff --git a/region/brinstar/green/Green Brinstar Main Shaft.json b/region/brinstar/green/Green Brinstar Main Shaft.json index 27cb6100bc..dedd883e6a 100644 --- a/region/brinstar/green/Green Brinstar Main Shaft.json +++ b/region/brinstar/green/Green Brinstar Main Shaft.json @@ -5042,6 +5042,35 @@ ], "flashSuitChecked": true }, + { + "link": [12, 12], + "name": "Ripper Farm", + "requires": [ + "ScrewAttack", + {"or": [ + {"and": [ + {"resetRoom": {"nodes": [2, 3]}}, + {"cycleFrames": 375} + ]}, + {"and": [ + {"resetRoom": {"nodes": [4]}}, + {"cycleFrames": 445} + ]}, + {"and": [ + {"resetRoom": {"nodes": [5, 6]}}, + {"cycleFrames": 600} + ]}, + {"and": [ + {"resetRoom": {"nodes": [1]}}, + {"cycleFrames": 1530} + ]} + ]} + ], + "resetsObstacles": ["A"], + "farmCycleDrops": [ + {"enemy": "Ripper 2 (red)", "count": 2} + ] + }, { "id": 229, "link": [12, 12], diff --git a/region/brinstar/green/Green Hill Zone.json b/region/brinstar/green/Green Hill Zone.json index 9c72402b95..72445924fd 100644 --- a/region/brinstar/green/Green Hill Zone.json +++ b/region/brinstar/green/Green Hill Zone.json @@ -1470,7 +1470,8 @@ {"and": [ {"or": [ "Spazer", - "Wave" + "Wave", + "ScrewAttack" ]}, {"cycleFrames": 300} ]}, diff --git a/region/brinstar/green/Noob Bridge.json b/region/brinstar/green/Noob Bridge.json index b99880eb54..856e5bbdfe 100644 --- a/region/brinstar/green/Noob Bridge.json +++ b/region/brinstar/green/Noob Bridge.json @@ -219,24 +219,19 @@ "link": [1, 1], "name": "Cacatac and Zeela Farm", "requires": [ - {"or": [ - {"and": [ - {"resetRoom": { - "nodes": [1] - }}, - {"cycleFrames": 560} - ]}, - {"and": [ - {"resetRoom": { - "nodes": [2] - }}, - {"cycleFrames": 1100} - ]} - ]}, + {"resetRoom": { + "nodes": [1] + }}, + {"cycleFrames": 560}, {"or": [ "Plasma", "Spazer", "Wave", + "Grapple", + {"and": [ + "ScrewAttack", + {"cycleFrames": 200} + ]}, {"cycleFrames": 370} ]} ], @@ -343,6 +338,35 @@ "bypassesDoorShell": true, "flashSuitChecked": true }, + { + "link": [2, 2], + "name": "Cacatac and Zeela Farm", + "requires": [ + {"resetRoom": { + "nodes": [2] + }}, + {"cycleFrames": 1000}, + {"or": [ + "Plasma", + "Spazer", + "Wave", + {"and": [ + "Grapple", + {"cycleFrames": 60} + ]}, + {"and": [ + "ScrewAttack", + {"cycleFrames": 200} + ]}, + {"cycleFrames": 370} + ]} + ], + "farmCycleDrops": [ + {"enemy": "Zeela", "count": 4}, + {"enemy": "Cacatac", "count": 4} + ], + "flashSuitChecked": true + }, { "id": 18, "link": [2, 2], diff --git a/region/brinstar/green/Spore Spawn Kihunter Room.json b/region/brinstar/green/Spore Spawn Kihunter Room.json index 6c55564ecc..98627f9a85 100644 --- a/region/brinstar/green/Spore Spawn Kihunter Room.json +++ b/region/brinstar/green/Spore Spawn Kihunter Room.json @@ -224,7 +224,8 @@ {"or": [ "Plasma", "Spazer", - "Wave" + "Wave", + "ScrewAttack" ]}, {"cycleFrames": 500} ]}, From dae5722e7cc7c629b88464dbd190d36369b9c35b Mon Sep 17 00:00:00 2001 From: Brent Kerby Date: Tue, 15 Jul 2025 18:13:27 -0600 Subject: [PATCH 3/3] Zeb farm in early supers --- region/brinstar/green/Early Supers Room.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/region/brinstar/green/Early Supers Room.json b/region/brinstar/green/Early Supers Room.json index f0feaaceb0..778dae8e52 100644 --- a/region/brinstar/green/Early Supers Room.json +++ b/region/brinstar/green/Early Supers Room.json @@ -272,7 +272,10 @@ "link": [1, 1], "name": "Zeb Farm", "requires": [ - {"refill": ["Energy", "Missile", "Super"]} + {"cycleFrames": 105} + ], + "farmCycleDrops": [ + {"enemy": "Zeb", "count": 1} ], "flashSuitChecked": true },