diff --git a/region/norfair/east/Cathedral.json b/region/norfair/east/Cathedral.json index 836d3d59ea..bd6a0eea58 100644 --- a/region/norfair/east/Cathedral.json +++ b/region/norfair/east/Cathedral.json @@ -763,15 +763,39 @@ { "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"], + "farmCycleDrops": [ + {"enemy": "Sova", "count": 4}, + {"enemy": "Geruta", "count": 3} ], - "resetsObstacles": ["A"] + "flashSuitChecked": true }, { "id": 27, diff --git a/region/norfair/east/Double Chamber.json b/region/norfair/east/Double Chamber.json index 51b21cbd9e..8885ba177c 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,21 @@ ], "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}], + "flashSuitChecked": true, + "devNote": "FIXME: It is possible but risky to farm using hijump, walljump, and crumble jumps." + }, { "id": 44, "link": [3, 3], @@ -3083,13 +3119,51 @@ "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": 1060} + ]}, + {"and": [ + "HiJump", + "SpeedBooster", + {"cycleFrames": 940} + ]} + ]} + ]}, + {"and": [ + {"resetRoom": {"nodes": [2]}}, + {"cycleFrames": 830} + ]}, + {"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} + ], + "flashSuitChecked": true, + "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..9ef70e7a3e 100644 --- a/region/norfair/east/Frog Speedway.json +++ b/region/norfair/east/Frog Speedway.json @@ -85,35 +85,48 @@ { "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 + }, + { + "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"]} + ]} ], - "note": "Kill the Beetoms with Screw Attack or by freezing or carefully avoiding them and using Bombs or Power Bombs.", + "farmCycleDrops": [{"enemy": "Beetom", "count": 3}], + "flashSuitChecked": true, + "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 f4985b9204..52d31b08ea 100644 --- a/region/norfair/east/Green Bubbles Tunnel.json +++ b/region/norfair/east/Green Bubbles Tunnel.json @@ -104,6 +104,58 @@ ], "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}], + "flashSuitChecked": true + }, + { + "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}], + "flashSuitChecked": true + }, { "id": 3, "link": [1, 2], @@ -353,6 +405,42 @@ ], "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}], + "flashSuitChecked": true + }, { "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..c6a34265ad 100644 --- a/region/norfair/east/Kronic Boost Room.json +++ b/region/norfair/east/Kronic Boost Room.json @@ -495,6 +495,33 @@ ], "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}], + "flashSuitChecked": true + }, { "id": 13, "link": [2, 3], @@ -707,11 +734,44 @@ "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}], + "flashSuitChecked": true }, { "id": 19, diff --git a/region/norfair/east/Lava Farm Tunnel.json b/region/norfair/east/Lava Farm Tunnel.json index d4b7e318c8..bc89696e3e 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": "RegularEnergy", "limit": 50}} + ], + "flashSuitChecked": true, + "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": 60}, + {"heatFrames": 50}, + {"simpleCycleFrames": 60}, + {"cycleFrames": 50} + ]}, + {"and": [ + {"simpleHeatFrames": 135}, + {"heatFrames": 20}, + {"simpleCycleFrames": 135}, + {"cycleFrames": 20} + ]} + ]} + ], + "farmCycleDrops": [{"enemy": "Gamet", "count": 5}], + "flashSuitChecked": true } ], "notables": [],