From 283becbc68ae0b38e42ac8d28d1dc7fe56dd2edd Mon Sep 17 00:00:00 2001 From: Michael McKenzie Date: Thu, 31 Jul 2025 15:07:06 -0230 Subject: [PATCH 1/3] UN East Farms Part 2 --- region/norfair/east/Cathedral.json | 35 ++++++-- region/norfair/east/Double Chamber.json | 82 ++++++++++++++++-- region/norfair/east/Frog Speedway.json | 42 ++++++--- region/norfair/east/Green Bubbles Tunnel.json | 85 +++++++++++++++++++ region/norfair/east/Kronic Boost Room.json | 64 +++++++++++++- region/norfair/east/Lava Farm Tunnel.json | 33 ++++++- 6 files changed, 311 insertions(+), 30 deletions(-) diff --git a/region/norfair/east/Cathedral.json b/region/norfair/east/Cathedral.json index 836d3d59ea..e4fad41146 100644 --- a/region/norfair/east/Cathedral.json +++ b/region/norfair/east/Cathedral.json @@ -763,15 +763,38 @@ { "id": 26, "link": [4, 4], - "name": "Sova Farm", + "name": "Sova and Geruta Farm", "requires": [ - {"resetRoom": {"nodes": [1, 2]}}, "h_heatProof", - {"partialRefill": {"type": "Energy", "limit": 300}}, - {"partialRefill": {"type": "Super", "limit": 6}}, - {"partialRefill": {"type": "Missile", "limit": 14}} + {"or": [ + {"and": [ + {"resetRoom": {"nodes": [1]}}, + {"cycleFrames": 1080} + ]}, + {"and": [ + {"resetRoom": {"nodes": [2]}}, + {"cycleFrames": 1230} + ]} + ]}, + {"or": [ + "Plasma", + "Wave", + {"and": [ + "ScrewAttack", + {"cycleFrames": 150} + ]}, + {"and": [ + "Spazer", + {"cycleFrames": 60} + ]}, + {"cycleFrames": 700} + ]} ], - "resetsObstacles": ["A"] + "resetsObstacles": ["A"], + "farmCycleDrops": [ + {"enemy": "Sova", "count": 4}, + {"enemy": "Geruta", "count": 3} + ] }, { "id": 27, diff --git a/region/norfair/east/Double Chamber.json b/region/norfair/east/Double Chamber.json index 51b21cbd9e..57186a81eb 100644 --- a/region/norfair/east/Double Chamber.json +++ b/region/norfair/east/Double Chamber.json @@ -215,6 +215,27 @@ ], "flashSuitChecked": true }, + { + "link": [1, 1], + "name": "Ripper Farm", + "requires": [ + "h_heatProof", + "SpaceJump", + "ScrewAttack", + {"or": [ + {"and": [ + {"resetRoom": {"nodes": [1]}}, + {"cycleFrames": 660} + ]}, + {"and": [ + {"resetRoom": {"nodes": [2]}}, + {"cycleFrames": 810} + ]} + ]} + ], + "resetsObstacles": ["A"], + "farmCycleDrops": [{"enemy": "Ripper 2 (green)", "count": 1}] + }, { "id": 3, "link": [1, 2], @@ -1980,6 +2001,20 @@ ], "flashSuitChecked": true }, + { + "link": [3, 3], + "name": "Ripper Farm", + "requires": [ + "h_heatProof", + "SpaceJump", + "ScrewAttack", + {"resetRoom": {"nodes": [3]}}, + {"cycleFrames": 230} + ], + "resetsObstacles": ["A"], + "farmCycleDrops": [{"enemy": "Ripper 2 (green)", "count": 1}], + "devNote": "FIXME: It is possible but risky to farm using hijump, walljump, and crumble jumps." + }, { "id": 44, "link": [3, 3], @@ -3083,13 +3118,50 @@ "requires": [ "h_heatProof", "Morph", - {"resetRoom": {"nodes": [2]}}, - {"partialRefill": {"type": "PowerBomb", "limit": 4}}, - {"partialRefill": {"type": "Super", "limit": 4}}, - {"refill": ["Energy", "Missile"]} + {"or": [ + {"and": [ + {"resetRoom": {"nodes": [1]}}, + {"or": [ + {"and": [ + "SpaceJump", + {"cycleFrames": 510} + ]}, + {"and": [ + "HiJump", + "SpeedBooster", + {"cycleFrames": 940} + ]} + ]} + ]}, + {"and": [ + {"resetRoom": {"nodes": [2]}}, + {"cycleFrames": 860} + ]}, + {"and": [ + {"resetRoom": {"nodes": [3]}}, + {"or": [ + {"and": [ + "SpaceJump", + {"cycleFrames": 1160} + ]}, + {"and": [ + "HiJump", + "SpeedBooster", + {"or": [ + "Grapple", + "canWalljump" + ]}, + {"cycleFrames": 1190} + ]} + ]} + ]} + ]} ], "resetsObstacles": ["A"], - "devNote": "FIXME: Other nodes could be used to reset the room, with additional requirements." + "farmCycleDrops": [ + {"enemy": "Kago", "count": 1} + ], + "devNote": "FIXME: There are more possible item combinations." }, { "id": 78, diff --git a/region/norfair/east/Frog Speedway.json b/region/norfair/east/Frog Speedway.json index 8e2d19e6d7..4aa8d0b107 100644 --- a/region/norfair/east/Frog Speedway.json +++ b/region/norfair/east/Frog Speedway.json @@ -85,34 +85,52 @@ { "id": 2, "link": [1, 1], - "name": "Beetom Farm", + "name": "Beetom Farm (Speed Booster)", "requires": [ + "SpeedBooster", {"or": [ {"resetRoom": {"nodes": [1]}}, {"and": [ {"resetRoom": {"nodes": [2]}}, - "SpeedBooster" + {"cycleFrames": 40} ]} ]}, + "h_getBlueSpeedMaxRunway", + {"cycleFrames": 330} + ], + "farmCycleDrops": [{"enemy": "Beetom", "count": 6}], + "flashSuitChecked": true, + "note": "Kill the Beetoms with Screw Attack or by freezing or carefully avoiding them and using Bombs or Power Bombs.", + "devNote": [ + "Health Bomb ends at 50 energy.", + "One ammo can be used to gain a power bomb and then power bombs can be used to farm more power bombs." + ] + }, + { + "link": [1, 1], + "name": "Beetom Farm", + "requires": [ + {"resetRoom": {"nodes": [1]}}, {"or": [ - "ScrewAttack", - "h_getBlueSpeedMaxRunway", + {"and": [ + "ScrewAttack", + {"cycleFrames": 370} + ]}, {"and": [ "Ice", - "h_useMorphBombs" + "h_useMorphBombs", + {"cycleFrames": 480} ]}, {"and": [ "Morph", {"resourceAvailable": [{"type": "Energy", "count": 50}]}, - {"or": [ - {"ammo": {"type": "PowerBomb", "count": 1}}, - {"ammo": {"type": "Missile", "count": 1}}, - {"ammo": {"type": "Super", "count": 1}} - ]} + "h_usePowerBomb", + {"cycleFrames": 460} ]} - ]}, - {"refill": ["PowerBomb"]} + ]} ], + "farmCycleDrops": [{"enemy": "Beetom", "count": 3}], + "flashSuitChecked": true, "note": "Kill the Beetoms with Screw Attack or by freezing or carefully avoiding them and using Bombs or Power Bombs.", "devNote": [ "Health Bomb ends at 50 energy.", diff --git a/region/norfair/east/Green Bubbles Tunnel.json b/region/norfair/east/Green Bubbles Tunnel.json index f4985b9204..8ea9e7bc39 100644 --- a/region/norfair/east/Green Bubbles Tunnel.json +++ b/region/norfair/east/Green Bubbles Tunnel.json @@ -104,6 +104,56 @@ ], "flashSuitChecked": true }, + { + "link": [1, 1], + "name": "Geruta Farm (Morph)", + "requires": [ + "h_heatProof", + "canMidAirMorph", + {"resetRoom": {"nodes": [1]}}, + {"cycleFrames": 320}, + {"or": [ + "Plasma", + {"and": [ + "Spazer", + {"cycleFrames": 20} + ]}, + {"and": [ + "Ice", + {"cycleFrames": 40} + ]}, + {"and": [ + "Wave", + {"cycleFrames": 15} + ]}, + {"and": [ + "ScrewAttack", + {"cycleFrames": 30} + ]}, + {"cycleFrames": 200} + ]} + ], + "collectsItems": [3], + "farmCycleDrops": [{"enemy": "Geruta", "count": 1}] + }, + { + "link": [1, 1], + "name": "Geruta Farm (Grapple)", + "requires": [ + "h_heatProof", + "Grapple", + {"resetRoom": {"nodes": [1]}}, + {"cycleFrames": 300}, + {"or": [ + "Plasma", + "Spazer", + "Ice", + "Wave", + {"cycleFrames": 90} + ]} + ], + "farmCycleDrops": [{"enemy": "Geruta", "count": 1}] + }, { "id": 3, "link": [1, 2], @@ -353,6 +403,41 @@ ], "flashSuitChecked": true }, + { + "link": [2, 2], + "name": "Geruta Farm", + "requires": [ + "h_heatProof", + {"resetRoom": {"nodes": [2]}}, + {"or": [ + {"and": [ + {"or": [ + "ScrewAttack", + "Plasma" + ]}, + {"cycleFrames": 90} + ]}, + {"and": [ + {"or": [ + "Ice", + "Spazer", + "Wave", + "canPseudoScrew" + ]}, + {"cycleFrames": 110} + ]}, + {"and": [ + "h_lavaProof", + {"cycleFrames": 210} + ]}, + {"and": [ + "canTrickyJump", + {"cycleFrames": 270} + ]} + ]} + ], + "farmCycleDrops": [{"enemy": "Geruta", "count": 1}] + }, { "id": 20, "link": [2, 2], diff --git a/region/norfair/east/Kronic Boost Room.json b/region/norfair/east/Kronic Boost Room.json index 9e97f48aef..19227b4736 100644 --- a/region/norfair/east/Kronic Boost Room.json +++ b/region/norfair/east/Kronic Boost Room.json @@ -495,6 +495,32 @@ ], "flashSuitChecked": true }, + { + "link": [2, 2], + "name": "Viola Farm", + "requires": [ + "h_heatProof", + "Morph", + {"resetRoom": {"nodes": [2]}}, + {"or": [ + {"and": [ + {"or": [ + "Plasma", + "Wave", + "Spazer" + ]}, + {"cycleFrames": 630} + ]}, + {"and": [ + "Grapple", + {"cycleFrames": 680} + ]}, + {"cycleFrames": 770} + ]} + ], + "resetsObstacles": ["A"], + "farmCycleDrops": [{"enemy": "Viola", "count": 4}] + }, { "id": 13, "link": [2, 3], @@ -707,11 +733,43 @@ "name": "Viola Farm", "requires": [ "h_heatProof", - {"resetRoom": {"nodes": [1, 3, 4]}}, - {"refill": ["PowerBomb"]} + {"or": [ + {"and": [ + {"resetRoom": {"nodes": [1, 4]}}, + {"or": [ + {"and": [ + {"or": [ + "Plasma", + "Wave", + "Spazer" + ]}, + {"cycleFrames": 450} + ]}, + {"and": [ + "Grapple", + {"cycleFrames": 530} + ]}, + {"cycleFrames": 660} + ]} + ]}, + {"and": [ + {"resetRoom": {"nodes": [3]}}, + {"or": [ + {"and": [ + {"or": [ + "Plasma", + "Wave", + "Spazer" + ]}, + {"cycleFrames": 450} + ]}, + {"cycleFrames": 500} + ]} + ]} + ]} ], "resetsObstacles": ["A"], - "devNote": "FIXME: Resetting the room using door node 2 would also be possible if the obstacle is cleared." + "farmCycleDrops": [{"enemy": "Viola", "count": 4}] }, { "id": 19, diff --git a/region/norfair/east/Lava Farm Tunnel.json b/region/norfair/east/Lava Farm Tunnel.json index d4b7e318c8..bf2319803c 100644 --- a/region/norfair/east/Lava Farm Tunnel.json +++ b/region/norfair/east/Lava Farm Tunnel.json @@ -1157,9 +1157,8 @@ ] }, { - "id": 42, "link": [4, 4], - "name": "Gamet Farm", + "name": "Approach Farm", "requires": [ {"or": [ {"and": [ @@ -1168,8 +1167,34 @@ ]}, {"heatFrames": 60} ]}, - {"refill": ["Energy", "Missile", "Super", "PowerBomb"]} - ] + {"partialRefill": {"type": "Energy", "limit": 50}} + ], + "devNote": "Raise energy high enough to use the farm if it is low." + }, + { + "id": 42, + "link": [4, 4], + "name": "Gamet Farm", + "requires": [ + {"or": [ + {"and": [ + "h_lavaProof", + {"simpleHeatFrames": 100}, + {"heatFrames": 50}, + {"simpleCycleFrames": 100}, + {"cycleFrames": 50} + ]}, + {"and": [ + {"simpleHeatFrames": 215}, + {"heatFrames": 20}, + {"simpleCycleFrames": 215}, + {"cycleFrames": 20} + ]} + ]} + + ], + "farmCycleDrops": [{"enemy": "Gamet", "count": 5}], + "flashSuitChecked": false } ], "notables": [], From 0dbed74517d18136c1ae1199f070c2ac70f3e4c2 Mon Sep 17 00:00:00 2001 From: Michael McKenzie Date: Thu, 31 Jul 2025 15:42:09 -0230 Subject: [PATCH 2/3] Cleanup --- region/norfair/east/Cathedral.json | 3 ++- region/norfair/east/Double Chamber.json | 6 ++++-- region/norfair/east/Frog Speedway.json | 9 ++------- region/norfair/east/Green Bubbles Tunnel.json | 9 ++++++--- region/norfair/east/Kronic Boost Room.json | 6 ++++-- region/norfair/east/Lava Farm Tunnel.json | 6 +++--- 6 files changed, 21 insertions(+), 18 deletions(-) diff --git a/region/norfair/east/Cathedral.json b/region/norfair/east/Cathedral.json index e4fad41146..bd6a0eea58 100644 --- a/region/norfair/east/Cathedral.json +++ b/region/norfair/east/Cathedral.json @@ -794,7 +794,8 @@ "farmCycleDrops": [ {"enemy": "Sova", "count": 4}, {"enemy": "Geruta", "count": 3} - ] + ], + "flashSuitChecked": true }, { "id": 27, diff --git a/region/norfair/east/Double Chamber.json b/region/norfair/east/Double Chamber.json index 57186a81eb..8885ba177c 100644 --- a/region/norfair/east/Double Chamber.json +++ b/region/norfair/east/Double Chamber.json @@ -2013,6 +2013,7 @@ ], "resetsObstacles": ["A"], "farmCycleDrops": [{"enemy": "Ripper 2 (green)", "count": 1}], + "flashSuitChecked": true, "devNote": "FIXME: It is possible but risky to farm using hijump, walljump, and crumble jumps." }, { @@ -3124,7 +3125,7 @@ {"or": [ {"and": [ "SpaceJump", - {"cycleFrames": 510} + {"cycleFrames": 1060} ]}, {"and": [ "HiJump", @@ -3135,7 +3136,7 @@ ]}, {"and": [ {"resetRoom": {"nodes": [2]}}, - {"cycleFrames": 860} + {"cycleFrames": 830} ]}, {"and": [ {"resetRoom": {"nodes": [3]}}, @@ -3161,6 +3162,7 @@ "farmCycleDrops": [ {"enemy": "Kago", "count": 1} ], + "flashSuitChecked": true, "devNote": "FIXME: There are more possible item combinations." }, { diff --git a/region/norfair/east/Frog Speedway.json b/region/norfair/east/Frog Speedway.json index 4aa8d0b107..9ef70e7a3e 100644 --- a/region/norfair/east/Frog Speedway.json +++ b/region/norfair/east/Frog Speedway.json @@ -99,12 +99,7 @@ {"cycleFrames": 330} ], "farmCycleDrops": [{"enemy": "Beetom", "count": 6}], - "flashSuitChecked": true, - "note": "Kill the Beetoms with Screw Attack or by freezing or carefully avoiding them and using Bombs or Power Bombs.", - "devNote": [ - "Health Bomb ends at 50 energy.", - "One ammo can be used to gain a power bomb and then power bombs can be used to farm more power bombs." - ] + "flashSuitChecked": true }, { "link": [1, 1], @@ -131,7 +126,7 @@ ], "farmCycleDrops": [{"enemy": "Beetom", "count": 3}], "flashSuitChecked": true, - "note": "Kill the Beetoms with Screw Attack or by freezing or carefully avoiding them and using Bombs or Power Bombs.", + "note": "Kill the Beetoms with Screw Attack or by freezing and using Bombs or Power Bombs.", "devNote": [ "Health Bomb ends at 50 energy.", "One ammo can be used to gain a power bomb and then power bombs can be used to farm more power bombs." diff --git a/region/norfair/east/Green Bubbles Tunnel.json b/region/norfair/east/Green Bubbles Tunnel.json index 8ea9e7bc39..52d31b08ea 100644 --- a/region/norfair/east/Green Bubbles Tunnel.json +++ b/region/norfair/east/Green Bubbles Tunnel.json @@ -134,7 +134,8 @@ ]} ], "collectsItems": [3], - "farmCycleDrops": [{"enemy": "Geruta", "count": 1}] + "farmCycleDrops": [{"enemy": "Geruta", "count": 1}], + "flashSuitChecked": true }, { "link": [1, 1], @@ -152,7 +153,8 @@ {"cycleFrames": 90} ]} ], - "farmCycleDrops": [{"enemy": "Geruta", "count": 1}] + "farmCycleDrops": [{"enemy": "Geruta", "count": 1}], + "flashSuitChecked": true }, { "id": 3, @@ -436,7 +438,8 @@ ]} ]} ], - "farmCycleDrops": [{"enemy": "Geruta", "count": 1}] + "farmCycleDrops": [{"enemy": "Geruta", "count": 1}], + "flashSuitChecked": true }, { "id": 20, diff --git a/region/norfair/east/Kronic Boost Room.json b/region/norfair/east/Kronic Boost Room.json index 19227b4736..c6a34265ad 100644 --- a/region/norfair/east/Kronic Boost Room.json +++ b/region/norfair/east/Kronic Boost Room.json @@ -519,7 +519,8 @@ ]} ], "resetsObstacles": ["A"], - "farmCycleDrops": [{"enemy": "Viola", "count": 4}] + "farmCycleDrops": [{"enemy": "Viola", "count": 4}], + "flashSuitChecked": true }, { "id": 13, @@ -769,7 +770,8 @@ ]} ], "resetsObstacles": ["A"], - "farmCycleDrops": [{"enemy": "Viola", "count": 4}] + "farmCycleDrops": [{"enemy": "Viola", "count": 4}], + "flashSuitChecked": true }, { "id": 19, diff --git a/region/norfair/east/Lava Farm Tunnel.json b/region/norfair/east/Lava Farm Tunnel.json index bf2319803c..2dc44ea420 100644 --- a/region/norfair/east/Lava Farm Tunnel.json +++ b/region/norfair/east/Lava Farm Tunnel.json @@ -1167,8 +1167,9 @@ ]}, {"heatFrames": 60} ]}, - {"partialRefill": {"type": "Energy", "limit": 50}} + {"partialRefill": {"type": "RegularEnergy", "limit": 50}} ], + "flashSuitChecked": true, "devNote": "Raise energy high enough to use the farm if it is low." }, { @@ -1191,10 +1192,9 @@ {"cycleFrames": 20} ]} ]} - ], "farmCycleDrops": [{"enemy": "Gamet", "count": 5}], - "flashSuitChecked": false + "flashSuitChecked": true } ], "notables": [], From 8d2eb2bafd3c3d80cf1e691bb16f822a395c2450 Mon Sep 17 00:00:00 2001 From: Michael McKenzie Date: Fri, 1 Aug 2025 00:00:13 -0230 Subject: [PATCH 3/3] Conversion Error --- region/norfair/east/Lava Farm Tunnel.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/region/norfair/east/Lava Farm Tunnel.json b/region/norfair/east/Lava Farm Tunnel.json index 2dc44ea420..bc89696e3e 100644 --- a/region/norfair/east/Lava Farm Tunnel.json +++ b/region/norfair/east/Lava Farm Tunnel.json @@ -1180,15 +1180,15 @@ {"or": [ {"and": [ "h_lavaProof", - {"simpleHeatFrames": 100}, + {"simpleHeatFrames": 60}, {"heatFrames": 50}, - {"simpleCycleFrames": 100}, + {"simpleCycleFrames": 60}, {"cycleFrames": 50} ]}, {"and": [ - {"simpleHeatFrames": 215}, + {"simpleHeatFrames": 135}, {"heatFrames": 20}, - {"simpleCycleFrames": 215}, + {"simpleCycleFrames": 135}, {"cycleFrames": 20} ]} ]}