From ebda729b047f9e0c167789a3f746765826d0552c Mon Sep 17 00:00:00 2001 From: kjbranch Date: Tue, 5 Aug 2025 14:51:22 -0600 Subject: [PATCH 1/5] Add canComplexGMode, use throughout Brinsar --- .../blue/Blue Brinstar Energy Tank Room.json | 4 +-- region/brinstar/blue/Morph Ball Room.json | 8 +++--- .../green/Brinstar Reserve Tank Room.json | 4 ++- .../green/Etecoon Energy Tank Room.json | 26 ++++++++----------- region/brinstar/green/Green Hill Zone.json | 4 +++ region/brinstar/pink/Big Pink.json | 12 +++++---- .../pink/Pink Brinstar Wave Gate Room.json | 3 ++- .../brinstar/pink/Spore Spawn Super Room.json | 2 ++ .../brinstar/red/Alpha Power Bomb Room.json | 1 + tech.json | 22 +++++++++++++--- 10 files changed, 54 insertions(+), 32 deletions(-) diff --git a/region/brinstar/blue/Blue Brinstar Energy Tank Room.json b/region/brinstar/blue/Blue Brinstar Energy Tank Room.json index decac4372c..b1abb866f2 100644 --- a/region/brinstar/blue/Blue Brinstar Energy Tank Room.json +++ b/region/brinstar/blue/Blue Brinstar Energy Tank Room.json @@ -988,7 +988,7 @@ "link": [4, 1], "name": "Artificial Morph Remotely Collect the Item", "requires": [ - "canEnterGMode", + "canComplexGMode", {"obstaclesCleared": ["D"]} ], "flashSuitChecked": true, @@ -1383,7 +1383,7 @@ { "id": 61, "link": [6, 4], - "name": "G-Mode Morph Remotely Collect the Item", + "name": "G-Mode Morph Touch the Item (Prepare to Remote Acquire)", "requires": [ "canEnterGMode", {"itemNotCollectedAtNode": 4}, diff --git a/region/brinstar/blue/Morph Ball Room.json b/region/brinstar/blue/Morph Ball Room.json index cd303ef982..e81a210713 100644 --- a/region/brinstar/blue/Morph Ball Room.json +++ b/region/brinstar/blue/Morph Ball Room.json @@ -988,7 +988,7 @@ {"or": [ {"enemyDamage": {"enemy": "Sidehopper", "type": "contact", "hits": 2}}, "h_artificialMorphPowerBomb", - "canInsaneJump", + "canComplexGMode", {"and": [ "Morph", {"or": [ @@ -1024,7 +1024,7 @@ {"or": [ {"enemyDamage": {"enemy": "Sidehopper", "type": "contact", "hits": 2}}, "h_artificialMorphPowerBomb", - "canInsaneJump" + "canComplexGMode" ]}, "h_artificialMorphPowerBomb", {"or": [ @@ -1054,7 +1054,7 @@ }, "requires": [ {"or": [ - "canInsaneJump", + "canComplexGMode", {"enemyDamage": {"enemy": "Sidehopper", "type": "contact", "hits": 2}}, {"and": [ "h_artificialMorphPowerBomb", @@ -1090,7 +1090,7 @@ }, "requires": [ {"or": [ - "canInsaneJump", + "canComplexGMode", {"enemyDamage": {"enemy": "Sidehopper", "type": "contact", "hits": 2}}, {"and": [ "h_artificialMorphPowerBomb", diff --git a/region/brinstar/green/Brinstar Reserve Tank Room.json b/region/brinstar/green/Brinstar Reserve Tank Room.json index 64a202bbb3..8a164922e0 100644 --- a/region/brinstar/green/Brinstar Reserve Tank Room.json +++ b/region/brinstar/green/Brinstar Reserve Tank Room.json @@ -123,6 +123,7 @@ } }, "requires": [ + "canComplexGMode", {"or": [ "h_artificialMorphSpringBall", {"and": [ @@ -156,7 +157,8 @@ } }, "requires": [], - "flashSuitChecked": true + "flashSuitChecked": true, + "devNote": "This is only useful if the item is Morph." }, { "id": 6, diff --git a/region/brinstar/green/Etecoon Energy Tank Room.json b/region/brinstar/green/Etecoon Energy Tank Room.json index 919e9ee4ec..7c710ebb2c 100644 --- a/region/brinstar/green/Etecoon Energy Tank Room.json +++ b/region/brinstar/green/Etecoon Energy Tank Room.json @@ -383,7 +383,7 @@ "ScrewAttack", "canTrickyGMode", {"and": [ - "canInsaneJump", + "canComplexGMode", {"or": [ "Ice", {"ammo": {"type": "Missile", "count": 1}}, @@ -421,7 +421,7 @@ {"itemNotCollectedAtNode": 5}, "canRiskPermanentLossOfAccess", "canOffScreenMovement", - "canInsaneJump", + "canComplexGMode", {"or": [ "canTrickyGMode", "h_artificialMorphPowerBomb", @@ -759,7 +759,7 @@ "ScrewAttack", "canTrickyGMode", {"and": [ - "canInsaneJump", + "canComplexGMode", {"or": [ "Ice", {"ammo": {"type": "Missile", "count": 1}}, @@ -797,7 +797,7 @@ "canRiskPermanentLossOfAccess", "canOffScreenMovement", "h_artificialMorphPowerBomb", - "canInsaneJump", + "canComplexGMode", {"or": [ "canTrickyGMode", "h_artificialMorphPowerBomb", @@ -1017,6 +1017,7 @@ } }, "requires": [ + "canComplexGMode", {"itemNotCollectedAtNode": 5}, {"or": [ "Morph", @@ -1445,7 +1446,7 @@ {"tech": "canBombHorizontally"}, {"ammo": {"type": "PowerBomb", "count": 6}}, {"or": [ - "canInsaneJump", + "canComplexGMode", {"ammo": {"type": "PowerBomb", "count": 2}} ]} ]}, @@ -1453,7 +1454,7 @@ "h_artificialMorphSpringBall", {"ammo": {"type": "PowerBomb", "count": 3}}, {"or": [ - "canInsaneJump", + "canComplexGMode", {"ammo": {"type": "PowerBomb", "count": 1}} ]} ]}, @@ -1478,19 +1479,14 @@ } }, "requires": [ + "canComplexGMode", {"itemNotCollectedAtNode": 5}, {"or": [ "Morph", "h_artificialMorphSpringBall" ]}, {"or": [ - {"and": [ - {"ammo": {"type": "PowerBomb", "count": 3}}, - {"or": [ - "canInsaneJump", - {"ammo": {"type": "PowerBomb", "count": 1}} - ]} - ]}, + {"ammo": {"type": "PowerBomb", "count": 3}}, {"and": [ "Morph", {"or": [ @@ -1670,7 +1666,7 @@ {"and": [ {"ammo": {"type": "PowerBomb", "count": 3}}, {"or": [ - "canInsaneJump", + "canComplexGMode", {"ammo": {"type": "PowerBomb", "count": 1}} ]} ]}, @@ -1724,7 +1720,7 @@ {"and": [ {"ammo": {"type": "PowerBomb", "count": 3}}, {"or": [ - "canInsaneJump", + "canComplexGMode", {"ammo": {"type": "PowerBomb", "count": 1}} ]} ]}, diff --git a/region/brinstar/green/Green Hill Zone.json b/region/brinstar/green/Green Hill Zone.json index 7f1ce3aa22..969c6f3939 100644 --- a/region/brinstar/green/Green Hill Zone.json +++ b/region/brinstar/green/Green Hill Zone.json @@ -337,6 +337,7 @@ } }, "requires": [ + "canComplexGMode", {"or": [ "h_artificialMorphLongIBJ", "h_artificialMorphSpringBallBombJump", @@ -624,6 +625,7 @@ } }, "requires": [ + "canComplexGMode", {"or": [ {"and": [ "h_artificialMorphIBJ", @@ -979,6 +981,7 @@ } }, "requires": [ + "canComplexGMode", {"or": [ "h_artificialMorphLongIBJ", "h_artificialMorphSpringBallBombJump", @@ -1123,6 +1126,7 @@ } }, "requires": [ + "canComplexGMode", {"or": [ {"and": [ "h_artificialMorphIBJ", diff --git a/region/brinstar/pink/Big Pink.json b/region/brinstar/pink/Big Pink.json index b78f8a5552..1257007afe 100644 --- a/region/brinstar/pink/Big Pink.json +++ b/region/brinstar/pink/Big Pink.json @@ -784,7 +784,7 @@ {"enemyDamage": {"enemy": "Sm. Sidehopper", "type": "contact", "hits": 1}} ]}, {"or": [ - "canInsaneJump", + "canComplexGMode", "h_artificialMorphPowerBomb", {"enemyDamage": {"enemy": "Sm. Sidehopper", "type": "contact", "hits": 1}} ]} @@ -2651,6 +2651,7 @@ } }, "requires": [ + "canComplexGMode", "h_CrystalFlash", "canMidAirMorph" ], @@ -2689,6 +2690,7 @@ } }, "requires": [ + "canComplexGMode", {"or": [ "h_artificialMorphIBJ", "Morph", @@ -3742,7 +3744,7 @@ "requires": [ "canEnterGMode", {"or": [ - "canInsaneJump", + "canComplexGMode", "h_artificialMorphPowerBomb", {"enemyDamage": {"enemy": "Sm. Sidehopper", "type": "contact", "hits": 1}} ]}, @@ -3951,7 +3953,7 @@ ]}, {"or": [ "Morph", - "canInsaneJump", + "canComplexGMode", {"and": [ "canTrickyDodgeEnemies", "h_artificialMorphSpringBall" @@ -4003,7 +4005,7 @@ ]}, {"or": [ "Morph", - "canInsaneJump", + "canComplexGMode", {"and": [ "canTrickyDodgeEnemies", "h_artificialMorphSpringBall" @@ -4048,7 +4050,7 @@ ]}, {"or": [ "Morph", - "canInsaneJump", + "canComplexGMode", {"and": [ "canTrickyDodgeEnemies", "h_artificialMorphSpringBall" diff --git a/region/brinstar/pink/Pink Brinstar Wave Gate Room.json b/region/brinstar/pink/Pink Brinstar Wave Gate Room.json index 1d56752896..43743c9938 100644 --- a/region/brinstar/pink/Pink Brinstar Wave Gate Room.json +++ b/region/brinstar/pink/Pink Brinstar Wave Gate Room.json @@ -407,7 +407,7 @@ "requires": [ "canEnterGMode", {"obstaclesCleared": ["C"]}, - "canInsaneJump", + "canTrickyDodgeEnemies", {"or": [ "ScrewAttack", "Plasma" @@ -1970,6 +1970,7 @@ } }, "requires": [ + "canComplexGMode", "canXRayClimb", "canOffScreenMovement", "canInsaneJump" diff --git a/region/brinstar/pink/Spore Spawn Super Room.json b/region/brinstar/pink/Spore Spawn Super Room.json index 349ef84bfb..4f0c6fe77e 100644 --- a/region/brinstar/pink/Spore Spawn Super Room.json +++ b/region/brinstar/pink/Spore Spawn Super Room.json @@ -244,6 +244,7 @@ } }, "requires": [ + "canComplexGMode", "h_artificialMorphCrystalFlash", {"canShineCharge": {"usedTiles": 16, "openEnd": 1}}, "canShinechargeMovement", @@ -279,6 +280,7 @@ } }, "requires": [ + "canComplexGMode", "h_artificialMorphCrystalFlash", {"canShineCharge": {"usedTiles": 16, "openEnd": 1}}, "canShinechargeMovement", diff --git a/region/brinstar/red/Alpha Power Bomb Room.json b/region/brinstar/red/Alpha Power Bomb Room.json index 3e0ba47cd5..15f0ec0533 100644 --- a/region/brinstar/red/Alpha Power Bomb Room.json +++ b/region/brinstar/red/Alpha Power Bomb Room.json @@ -522,6 +522,7 @@ } }, "requires": [ + "canComplexGMode", "canUseIFrames", "canNeutralDamageBoost", "canInsaneJump", diff --git a/tech.json b/tech.json index 7de2c14982..beeca1ec08 100644 --- a/tech.json +++ b/tech.json @@ -2511,14 +2511,28 @@ ], "extensionTechs": [ { - "id": 200, - "name": "canTrickyGMode", + "name": "canComplexGMode", "techRequires": [ "canEnterGMode" ], "otherRequires": [], - "note": ["Doing something particularly precise or risky while in G-mode."], - "devNote": "This could be expanded to unusual setups." + "note": [ + "Doing something particularly precise, risky, or unintuitive while in G-mode or while setting up G-mode.", + "This includes: enemy dodging that would not normally be an issue and is unintuitive, such as enemies that deal a small amount of damage and awkward dodging while artificially morphed;", + "bypassing door locks while in G-mode to maintain indirect G-mode in the next room; exiting G-mode while inside of overloaded blocks in order to X-Ray climb;", + "touching an item in direct G-mode before PLMs are overloaded and obtaining the item remotely when exiting G-mode." + ], + "extensionTechs": [ + { + "id": 200, + "name": "canTrickyGMode", + "techRequires": [ + "canComplexGMode" + ], + "otherRequires": [], + "note": ["Doing something particularly precise, risky, or unintuitive while in G-mode or while setting up G-mode."] + } + ] }, { "id": 198, From 002f37cfb5267c7c3aeb712a0bf7c0cee9993640 Mon Sep 17 00:00:00 2001 From: kjbranch Date: Tue, 5 Aug 2025 15:57:08 -0600 Subject: [PATCH 2/5] add more details to tech, move very deep stuck --- region/brinstar/blue/Construction Zone.json | 1 + .../green/Etecoon Energy Tank Room.json | 1 + .../green/Green Brinstar Main Shaft.json | 9 +++++++++ .../brinstar/kraid/Warehouse Zeela Room.json | 1 + region/brinstar/pink/Big Pink.json | 3 +++ region/brinstar/pink/Dachora Room.json | 1 + .../pink/Mission Impossible Room.json | 1 + .../brinstar/pink/Spore Spawn Super Room.json | 1 + region/brinstar/red/Below Spazer.json | 1 + region/brinstar/red/Red Tower.json | 1 + tech.json | 19 +++++++++++++++---- 11 files changed, 35 insertions(+), 4 deletions(-) diff --git a/region/brinstar/blue/Construction Zone.json b/region/brinstar/blue/Construction Zone.json index 7f6295c724..fb63e4ce21 100644 --- a/region/brinstar/blue/Construction Zone.json +++ b/region/brinstar/blue/Construction Zone.json @@ -803,6 +803,7 @@ } }, "requires": [ + "canComplexGMode", "canXRayClimb" ], "bypassesDoorShell": true, diff --git a/region/brinstar/green/Etecoon Energy Tank Room.json b/region/brinstar/green/Etecoon Energy Tank Room.json index 7c710ebb2c..7886ebc6bf 100644 --- a/region/brinstar/green/Etecoon Energy Tank Room.json +++ b/region/brinstar/green/Etecoon Energy Tank Room.json @@ -844,6 +844,7 @@ } }, "requires": [ + "canComplexGMode", "canXRayClimb" ], "bypassesDoorShell": true, diff --git a/region/brinstar/green/Green Brinstar Main Shaft.json b/region/brinstar/green/Green Brinstar Main Shaft.json index ee5056d642..14a44c487e 100644 --- a/region/brinstar/green/Green Brinstar Main Shaft.json +++ b/region/brinstar/green/Green Brinstar Main Shaft.json @@ -1534,6 +1534,7 @@ } }, "requires": [ + "canComplexGMode", "canXRayClimb" ], "bypassesDoorShell": true, @@ -2364,6 +2365,7 @@ } }, "requires": [ + "canComplexGMode", "canLongXRayClimb" ], "bypassesDoorShell": true, @@ -2444,6 +2446,7 @@ } }, "requires": [ + "canComplexGMode", "canXRayClimb" ], "bypassesDoorShell": true, @@ -3043,6 +3046,7 @@ } }, "requires": [ + "canComplexGMode", "canLongXRayClimb" ], "bypassesDoorShell": true, @@ -3626,6 +3630,7 @@ } }, "requires": [ + "canComplexGMode", "canLongXRayClimb", "canBePatient" ], @@ -3706,6 +3711,7 @@ } }, "requires": [ + "canComplexGMode", "canXRayClimb" ], "bypassesDoorShell": true, @@ -3964,6 +3970,7 @@ } }, "requires": [ + "canComplexGMode", "canLongXRayClimb", "canBeVeryPatient" ], @@ -4029,6 +4036,7 @@ } }, "requires": [ + "canComplexGMode", "canLongXRayClimb", "canBeVeryPatient" ], @@ -4072,6 +4080,7 @@ } }, "requires": [ + "canComplexGMode", "canLongXRayClimb", "canBePatient" ], diff --git a/region/brinstar/kraid/Warehouse Zeela Room.json b/region/brinstar/kraid/Warehouse Zeela Room.json index 6a939f29d9..36065f3763 100644 --- a/region/brinstar/kraid/Warehouse Zeela Room.json +++ b/region/brinstar/kraid/Warehouse Zeela Room.json @@ -277,6 +277,7 @@ } }, "requires": [ + "canComplexGMode", "canXRayClimb" ], "bypassesDoorShell": true, diff --git a/region/brinstar/pink/Big Pink.json b/region/brinstar/pink/Big Pink.json index 1257007afe..a01a3bcf33 100644 --- a/region/brinstar/pink/Big Pink.json +++ b/region/brinstar/pink/Big Pink.json @@ -1736,6 +1736,7 @@ } }, "requires": [ + "canComplexGMode", "canLongXRayClimb", "canBePatient" ], @@ -2301,6 +2302,7 @@ } }, "requires": [ + "canComplexGMode", "canLongXRayClimb", "canBeVeryPatient" ], @@ -2322,6 +2324,7 @@ } }, "requires": [ + "canComplexGMode", "canLongXRayClimb" ], "bypassesDoorShell": true, diff --git a/region/brinstar/pink/Dachora Room.json b/region/brinstar/pink/Dachora Room.json index 3c146b3bcc..753c2c7e8b 100644 --- a/region/brinstar/pink/Dachora Room.json +++ b/region/brinstar/pink/Dachora Room.json @@ -545,6 +545,7 @@ } }, "requires": [ + "canComplexGMode", "canLongXRayClimb", "canBeVeryPatient" ], diff --git a/region/brinstar/pink/Mission Impossible Room.json b/region/brinstar/pink/Mission Impossible Room.json index 50a12f974a..88157892b1 100644 --- a/region/brinstar/pink/Mission Impossible Room.json +++ b/region/brinstar/pink/Mission Impossible Room.json @@ -630,6 +630,7 @@ } }, "requires": [ + "canComplexGMode", "canXRayClimb" ], "bypassesDoorShell": true, diff --git a/region/brinstar/pink/Spore Spawn Super Room.json b/region/brinstar/pink/Spore Spawn Super Room.json index 4f0c6fe77e..185ce786db 100644 --- a/region/brinstar/pink/Spore Spawn Super Room.json +++ b/region/brinstar/pink/Spore Spawn Super Room.json @@ -178,6 +178,7 @@ } }, "requires": [ + "canComplexGMode", "canLongXRayClimb", "canBeVeryPatient" ], diff --git a/region/brinstar/red/Below Spazer.json b/region/brinstar/red/Below Spazer.json index 860b6d1831..46d3a61329 100644 --- a/region/brinstar/red/Below Spazer.json +++ b/region/brinstar/red/Below Spazer.json @@ -657,6 +657,7 @@ } }, "requires": [ + "canComplexGMode", "canXRayClimb" ], "bypassesDoorShell": true, diff --git a/region/brinstar/red/Red Tower.json b/region/brinstar/red/Red Tower.json index 7ab9c44682..29ef056f1e 100644 --- a/region/brinstar/red/Red Tower.json +++ b/region/brinstar/red/Red Tower.json @@ -1276,6 +1276,7 @@ } }, "requires": [ + "canComplexGMode", "canLongXRayClimb" ], "bypassesDoorShell": true, diff --git a/tech.json b/tech.json index beeca1ec08..8b95a26687 100644 --- a/tech.json +++ b/tech.json @@ -2505,9 +2505,18 @@ ], "otherRequires": [], "note": [ - "Ability to enter G-mode starting with low reserve energy.", - "Have 4 or fewer energy in reserves (set to Auto), take damage while going through a door, use X-Ray while entering the next room, and release X-Ray before reserves have finished filling (a 4-frame window when starting with 4 reserve energy).", - "This can be used for many things, including overloading PLMs to move through solid tiles, setting up a deep doorstuck, and triggering Artificial Morph if canArtificialMorph is enabled." + "Ability to enter G-mode and utilize the unusual behaviors that it enables. This requires X-Ray, Reserve Energy, and reserves set to Auto refill.", + "In order to enter G-mode, Samus needs to take damage after touching a room transition so that she immediately takes damage and triggers the refill while entering the next room.", + "In addition, she needs to be using X-Ray while entering the room and release X-Ray before reserves have finished filling.", + "For the simplest cases, Samus will need to start with 4 (or fewer) Reserve Energy, giving a 4-frame window to release X-Ray in the next room (or fewer: 1-frame per Reserve Energy).", + "When successfully entering G-mode, the room will darken and the door will remain open (releasing X-Ray too early, neither of these occur; releasing it too late, the room darkens and the door closes - this is R-mode).", + "While in G-mode, many things do not behave as expected until exiting G-mode by using X-Ray - Samus can not open doors, collect items, or break blocks, and enemy drops do not spawn and their projectiles are invisible and do not move.", + "If Samus can overload PLMs, many types of blocks change their behavior: bomb, crumble, speed blocks, and sand behave as air (Power Bomb and shot blocks remain solid).", + "The most common ways to overload PLMs include: bombing Power Bomb and speed blocks and the side or bottom of crumble blocks that haven't been stepped on (approximately 40 times),", + "grappling grapple blocks, rolling through invisible camera scroll blocks (which often appear in morph tunnels), and touching sand.", + "Note that stepping on a crumble block or bombing a bomb block will prevent them from behaving like air after PLMs are overloaded.", + "When Samus enters G-mode, this is called direct G-mode if she leaves that room in any way, she is instead in indirect G-mode.", + "When in indirect G-mode, blue and green gates do not spawn, and Samus can freely walk through them." ], "extensionTechs": [ { @@ -2519,7 +2528,9 @@ "note": [ "Doing something particularly precise, risky, or unintuitive while in G-mode or while setting up G-mode.", "This includes: enemy dodging that would not normally be an issue and is unintuitive, such as enemies that deal a small amount of damage and awkward dodging while artificially morphed;", - "bypassing door locks while in G-mode to maintain indirect G-mode in the next room; exiting G-mode while inside of overloaded blocks in order to X-Ray climb;", + "bypassing door locks while in G-mode to maintain indirect G-mode in the next room;", + "exiting direct G-mode while in the open door to get very deep doorstuck and X-Ray climb and doorlock bypass a door above;", + "exiting G-mode while inside of overloaded blocks in order to have them solidify and be able to X-Ray climb;", "touching an item in direct G-mode before PLMs are overloaded and obtaining the item remotely when exiting G-mode." ], "extensionTechs": [ From 2f8c367b0bfc00e0d708ed89c0214f17917ed6e2 Mon Sep 17 00:00:00 2001 From: kjbranch <61815121+kjbranch@users.noreply.github.com> Date: Wed, 6 Aug 2025 08:43:50 -0600 Subject: [PATCH 3/5] Apply suggestions from code review Co-authored-by: Brent Kerby --- tech.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tech.json b/tech.json index 8b95a26687..8635448994 100644 --- a/tech.json +++ b/tech.json @@ -2511,11 +2511,11 @@ "For the simplest cases, Samus will need to start with 4 (or fewer) Reserve Energy, giving a 4-frame window to release X-Ray in the next room (or fewer: 1-frame per Reserve Energy).", "When successfully entering G-mode, the room will darken and the door will remain open (releasing X-Ray too early, neither of these occur; releasing it too late, the room darkens and the door closes - this is R-mode).", "While in G-mode, many things do not behave as expected until exiting G-mode by using X-Ray - Samus can not open doors, collect items, or break blocks, and enemy drops do not spawn and their projectiles are invisible and do not move.", - "If Samus can overload PLMs, many types of blocks change their behavior: bomb, crumble, speed blocks, and sand behave as air (Power Bomb and shot blocks remain solid).", + "If Samus can overload PLMs, many types of blocks change their behavior: bomb, crumble, speed blocks, and sand behave as air (Power Bomb, Super, and shot blocks remain solid).", "The most common ways to overload PLMs include: bombing Power Bomb and speed blocks and the side or bottom of crumble blocks that haven't been stepped on (approximately 40 times),", "grappling grapple blocks, rolling through invisible camera scroll blocks (which often appear in morph tunnels), and touching sand.", "Note that stepping on a crumble block or bombing a bomb block will prevent them from behaving like air after PLMs are overloaded.", - "When Samus enters G-mode, this is called direct G-mode if she leaves that room in any way, she is instead in indirect G-mode.", + "When Samus enters G-mode, this is called direct G-mode; if she leaves that room (for example by going back through the open door), she is instead in indirect G-mode.", "When in indirect G-mode, blue and green gates do not spawn, and Samus can freely walk through them." ], "extensionTechs": [ From 7dc9b6b8c1f682298123d2c0bfce6a97aed0ff31 Mon Sep 17 00:00:00 2001 From: kjbranch Date: Wed, 6 Aug 2025 08:45:29 -0600 Subject: [PATCH 4/5] feedback update --- tech.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tech.json b/tech.json index 8635448994..bb58f45c16 100644 --- a/tech.json +++ b/tech.json @@ -2526,7 +2526,7 @@ ], "otherRequires": [], "note": [ - "Doing something particularly precise, risky, or unintuitive while in G-mode or while setting up G-mode.", + "Doing something precise, risky, or unintuitive while in G-mode or while setting up G-mode.", "This includes: enemy dodging that would not normally be an issue and is unintuitive, such as enemies that deal a small amount of damage and awkward dodging while artificially morphed;", "bypassing door locks while in G-mode to maintain indirect G-mode in the next room;", "exiting direct G-mode while in the open door to get very deep doorstuck and X-Ray climb and doorlock bypass a door above;", From b00ecef729a7c1bf9e815e8311b19ce48db0ff33 Mon Sep 17 00:00:00 2001 From: kjbranch Date: Fri, 8 Aug 2025 09:16:41 -0600 Subject: [PATCH 5/5] feedback update --- tech.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tech.json b/tech.json index bb58f45c16..552672464d 100644 --- a/tech.json +++ b/tech.json @@ -2516,7 +2516,7 @@ "grappling grapple blocks, rolling through invisible camera scroll blocks (which often appear in morph tunnels), and touching sand.", "Note that stepping on a crumble block or bombing a bomb block will prevent them from behaving like air after PLMs are overloaded.", "When Samus enters G-mode, this is called direct G-mode; if she leaves that room (for example by going back through the open door), she is instead in indirect G-mode.", - "When in indirect G-mode, blue and green gates do not spawn, and Samus can freely walk through them." + "When in indirect G-mode, items and blue and green gates do not spawn, and Samus can freely walk through them." ], "extensionTechs": [ {