From 72ef283390302b7db88a73d5ff43a2dffd06fd02 Mon Sep 17 00:00:00 2001 From: kjbranch Date: Mon, 11 Aug 2025 13:06:14 -0600 Subject: [PATCH 1/3] Add canComplexGMode to Crateria --- .../crateria/central/Climb Supers Room.json | 32 ++++++--- region/crateria/central/Climb.json | 32 +++------ region/crateria/central/Crateria Tube.json | 8 +-- .../central/Final Missile Bombway.json | 2 +- region/crateria/central/Landing Site.json | 68 ++++++++++++++++++- .../crateria/central/Parlor and Alcatraz.json | 2 + region/crateria/central/Pit Room.json | 5 +- region/crateria/east/Crab Maze.json | 4 +- region/crateria/east/East Ocean.json | 8 ++- region/crateria/east/West Ocean.json | 17 +++-- .../west/Gauntlet Energy Tank Room.json | 2 + region/crateria/west/Green Pirates Shaft.json | 8 ++- 12 files changed, 136 insertions(+), 52 deletions(-) diff --git a/region/crateria/central/Climb Supers Room.json b/region/crateria/central/Climb Supers Room.json index bd45c889e1..671259e010 100644 --- a/region/crateria/central/Climb Supers Room.json +++ b/region/crateria/central/Climb Supers Room.json @@ -653,6 +653,7 @@ } }, "requires": [ + "canComplexGMode", {"or": [ {"and": [ {"itemNotCollectedAtNode": 3}, @@ -978,6 +979,7 @@ } }, "requires": [ + "canComplexGMode", "canLongXRayClimb", "canBeVeryPatient" ], @@ -1072,6 +1074,7 @@ } }, "requires": [ + "canComplexGMode", "h_artificialMorphCrystalFlash", {"or": [ {"and": [ @@ -1274,10 +1277,14 @@ "Morph", {"or": [ "canRiskPermanentLossOfAccess", - "canLongXRayClimb" + {"and": [ + "canComplexGMode", + "canLongXRayClimb", + "canBeVeryPatient" + ]} ]}, - {"ammo": {"type": "PowerBomb", "count": 9}}, - "canBeVeryPatient", + {"ammo": {"type": "PowerBomb", "count": 5}}, + "canBePatient", {"or": [ "canTrivialUseFrozenEnemies", "canTrickyJump", @@ -1290,10 +1297,14 @@ ]} ], "flashSuitChecked": true, - "note": "Wall jump up 9 times, placing a PB at the top. Only works in direct g-mode with the item still uncollected.", + "note": [ + "Wall jump up 5 times, placing a Power Bomb precisely in the top right corner to overload PLMs with as few Power Bombs as possible.", + "This only works in direct G-mode with the item still uncollected." + ], "devNote": [ - "FIXME: Using this strat won't risk canRiskPermanentLossOfAccess if the player could x-ray climb instead. However if the adjacent room is heated and Samus is really low energy, this could be a problem.", - "Placing the Power Bombs lower, on the magic tile, could overload PLMs with fewer, likely with as low as 2 Power Bombs." + "Using this strat doesn't have canRiskPermanentLossOfAccess if the player could x-ray climb instead: this requires direct G-mode and Samus can freely doorstuck here,", + "and there is no benefit to going to the item instead of the top left door, unless the item is there.", + "FIXME: Placing the Power Bombs lower, on the magic tile, could overload PLMs with fewer, likely with as low as 2 Power Bombs." ] }, { @@ -1315,9 +1326,9 @@ "flashSuitChecked": true, "note": [ "Ascend with a long IBJ, then ceiling bomb jump against the speed blocks to overload the PLMs. Falling is very unforgiving.", - "Note that the boyons can be killed with bombs." + "Note that the Boyons can be killed with bombs." ], - "devNote": "This is technically doable without canBePatient, but would require double bomb jump, morph, a way to bypass Boyons, and never falling." + "devNote": "This is technically doable without canBeVeryPatient, but would require double bomb jump, Morph, a way to bypass Boyons, and never falling." }, { "id": 43, @@ -1392,6 +1403,7 @@ } }, "requires": [ + "canComplexGMode", {"or": [ {"and": [ "canTrivialUseFrozenEnemies", @@ -1424,7 +1436,7 @@ "link": [3, 4], "name": "Remote Acquire Item", "requires": [ - "canEnterGMode", + "canComplexGMode", {"obstaclesCleared": ["C"]} ], "flashSuitChecked": true, @@ -1447,7 +1459,7 @@ "link": [3, 5], "name": "Remote Acquire Item", "requires": [ - "canEnterGMode", + "canComplexGMode", {"obstaclesCleared": ["C"]} ], "flashSuitChecked": true, diff --git a/region/crateria/central/Climb.json b/region/crateria/central/Climb.json index c947c6142a..a5490bdcc8 100644 --- a/region/crateria/central/Climb.json +++ b/region/crateria/central/Climb.json @@ -1313,6 +1313,7 @@ } }, "requires": [ + "canComplexGMode", "canLongXRayClimb", "canBeVeryPatient" ], @@ -1335,27 +1336,19 @@ }, "requires": [ {"or": [ + "h_artificialMorphSpringBall", + "h_artificialMorphBombs", + "h_fourTileJumpMorph" + ]}, + {"or": [ + "Morph", + "h_ZebesNotAwake", {"and": [ "h_artificialMorphSpringBall", {"or": [ "HiJump", "canTrickyDodgeEnemies" ]} - ]}, - {"and": [ - "Morph", - {"or": [ - "h_artificialMorphSpringBall", - "h_artificialMorphBombs", - "h_fourTileJumpMorph" - ]} - ]}, - {"and": [ - "h_ZebesNotAwake", - {"or": [ - "h_artificialMorphSpringBall", - "h_artificialMorphBombs" - ]} ]} ]} ], @@ -1407,7 +1400,7 @@ "flashSuitChecked": true, "note": [ "Overload PLMs using the scroll block at the top of the stairs next to the bomb blocks.", - "Place PBs as high as possible to occasionally kill multiple pirates at a time." + "Place Power Bombs as high as possible to occasionally kill multiple pirates at a time." ] }, { @@ -1543,14 +1536,11 @@ {"or": [ "h_artificialMorphSpringBall", "h_artificialMorphBombs", - {"and": [ - "Morph", - "h_fourTileJumpMorph" - ]} + "h_fourTileJumpMorph" ]} ], "flashSuitChecked": true, - "devNote": "PBs cannot be used, as they will solidify the bomb blocks." + "devNote": "A Power Bomb cannot be used, as it will solidify the bomb block." }, { "id": 66, diff --git a/region/crateria/central/Crateria Tube.json b/region/crateria/central/Crateria Tube.json index 6d01af4f81..29c2bf2a67 100644 --- a/region/crateria/central/Crateria Tube.json +++ b/region/crateria/central/Crateria Tube.json @@ -220,7 +220,7 @@ { "id": 12, "link": [1, 2], - "name": "Carry G-Mode Through Tube (Left to Right)", + "name": "Carry G-Mode Through Tube", "entranceCondition": { "comeInWithGMode": { "mode": "any", @@ -238,7 +238,7 @@ { "id": 13, "link": [1, 2], - "name": "Carry G-Mode Morph Through Tube (Left to Right)", + "name": "Carry G-Mode Morph Through Tube", "entranceCondition": { "comeInWithGMode": { "mode": "any", @@ -410,7 +410,7 @@ { "id": 24, "link": [2, 1], - "name": "Carry G-Mode Through Tube (Right to Left)", + "name": "Carry G-Mode Through Tube", "entranceCondition": { "comeInWithGMode": { "mode": "any", @@ -428,7 +428,7 @@ { "id": 25, "link": [2, 1], - "name": "Carry G-Mode Morph Through Tube (Right to Left)", + "name": "Carry G-Mode Morph Through Tube", "entranceCondition": { "comeInWithGMode": { "mode": "any", diff --git a/region/crateria/central/Final Missile Bombway.json b/region/crateria/central/Final Missile Bombway.json index 8078c3f3b3..ca76d00fd0 100644 --- a/region/crateria/central/Final Missile Bombway.json +++ b/region/crateria/central/Final Missile Bombway.json @@ -290,7 +290,7 @@ { "id": 10, "link": [2, 1], - "name": "G-mode Morph with Bombs", + "name": "G-Mode Morph with Bombs", "entranceCondition": { "comeInWithGMode": { "mode": "any", diff --git a/region/crateria/central/Landing Site.json b/region/crateria/central/Landing Site.json index 4d3c198d37..d494663feb 100644 --- a/region/crateria/central/Landing Site.json +++ b/region/crateria/central/Landing Site.json @@ -494,7 +494,7 @@ { "id": 90, "link": [1, 1], - "name": "G-Mode through Bomb Blocks, Ship Refill", + "name": "G-Mode through Bomb Blocks, Ship Refill, Return", "entranceCondition": { "comeInWithGMode": { "mode": "any", @@ -502,6 +502,7 @@ } }, "requires": [ + "canComplexGMode", {"refill": ["Energy", "Missile", "Super", "PowerBomb"]}, {"or": [ "SpaceJump", @@ -567,7 +568,13 @@ } }, "requires": [ - {"refill": ["Energy", "Missile", "Super", "PowerBomb"]} + {"or": [ + {"and": [ + "canComplexGMode", + {"refill": ["Energy", "Missile", "Super", "PowerBomb"]} + ]}, + "free" + ]} ], "flashSuitChecked": true, "note": [ @@ -1365,12 +1372,37 @@ } }, "requires": [ + "canComplexGMode", "canLongXRayClimb", "canBePatient" ], "flashSuitChecked": true, "note": "Climb up 3 screens." }, + { + "link": [4, 3], + "name": "G-Mode Deep Stuck X-Ray Climb, Ship Refill", + "entranceCondition": { + "comeInWithGMode": { + "mode": "direct", + "morphed": false + } + }, + "requires": [ + "canComplexGMode", + {"or": [ + "canWalljump", + "HiJump", + "canSpringBallJumpMidAir", + "h_getBlueSpeedMaxRunway" + ]}, + {"refill": ["Energy", "Missile", "Super", "PowerBomb"]}, + "canLongXRayClimb", + "canBePatient" + ], + "flashSuitChecked": true, + "note": "Refill at the ship then return and X-Ray climb up 3 screens." + }, { "id": 58, "link": [4, 3], @@ -1421,8 +1453,9 @@ } }, "requires": [ + "canComplexGMode", "canLongXRayClimb", - "canBeVeryPatient" + "canBePatient" ], "bypassesDoorShell": true, "flashSuitChecked": true, @@ -1431,6 +1464,35 @@ "Climb up 3 screens, and perform a turnaround buffered spin-jump away from the door to trigger the transition, bypassing any lock on the door." ] }, + { + "link": [4, 3], + "name": "Very Deep Stuck X-Ray Climb, Ship Refill", + "entranceCondition": { + "comeInWithGMode": { + "mode": "direct", + "morphed": false + } + }, + "requires": [ + "canComplexGMode", + {"or": [ + "canWalljump", + "HiJump", + "canSpringBallJumpMidAir", + "h_getBlueSpeedMaxRunway" + ]}, + {"refill": ["Energy", "Missile", "Super", "PowerBomb"]}, + "canLongXRayClimb", + "canBePatient" + ], + "bypassesDoorShell": true, + "flashSuitChecked": true, + "note": [ + "Enter with G-mode direct, refill at the ship and return.", + "Back up to between 1 and 6 pixels from the door transition, and activate X-ray to get very deep stuck in the door.", + "Climb up 3 screens, and perform a turnaround buffered spin-jump away from the door to trigger the transition, bypassing any lock on the door." + ] + }, { "id": 61, "link": [4, 4], diff --git a/region/crateria/central/Parlor and Alcatraz.json b/region/crateria/central/Parlor and Alcatraz.json index 94964d6d6e..793d0f5fd6 100644 --- a/region/crateria/central/Parlor and Alcatraz.json +++ b/region/crateria/central/Parlor and Alcatraz.json @@ -483,6 +483,7 @@ "h_artificialMorphMovement", "h_artificialMorphBombHorizontally", {"and": [ + "canComplexGMode", "canNeutralDamageBoost", "h_ZebesIsAwake", {"enemyDamage": {"enemy": "Geemer (blue)", "type": "contact", "hits": 1}} @@ -1745,6 +1746,7 @@ } }, "requires": [ + "canTrickyGMode", {"notable": "Alcatraz Escape G-Mode Crystal Flash Then Forced Standup"}, "h_ZebesIsAwake", "canBeVeryPatient", diff --git a/region/crateria/central/Pit Room.json b/region/crateria/central/Pit Room.json index 20fd7e530e..feff259c2e 100644 --- a/region/crateria/central/Pit Room.json +++ b/region/crateria/central/Pit Room.json @@ -301,6 +301,7 @@ } }, "requires": [ + "canComplexGMode", "h_artificialMorphBombs", "canTrickyJump" ], @@ -557,7 +558,9 @@ } }, "requires": [ - "h_artificialMorphIBJ" + "canComplexGMode", + "h_artificialMorphIBJ", + "canTrickyJump" ], "clearsObstacles": ["A"], "flashSuitChecked": true, diff --git a/region/crateria/east/Crab Maze.json b/region/crateria/east/Crab Maze.json index 12c60ee714..edeff6fef5 100644 --- a/region/crateria/east/Crab Maze.json +++ b/region/crateria/east/Crab Maze.json @@ -370,7 +370,7 @@ { "id": 12, "link": [2, 1], - "name": "G-Mode Morph to overload Crumble Block Plms", + "name": "G-Mode Morph, Overload PLMs, Through the Crumble Block", "entranceCondition": { "comeInWithGMode": { "mode": "any", @@ -407,7 +407,7 @@ } }, "requires": [ - "canInsaneJump", + "canComplexGMode", "h_artificialMorphSpringBall", "h_artificialMorphBombs", "canUseIFrames", diff --git a/region/crateria/east/East Ocean.json b/region/crateria/east/East Ocean.json index 2c6877f859..d0efdd661d 100644 --- a/region/crateria/east/East Ocean.json +++ b/region/crateria/east/East Ocean.json @@ -685,14 +685,18 @@ }, "requires": [ "h_artificialMorphUnderwaterBombIntoSpringBallJump", - "canBeVeryPatient" + {"or": [ + "h_artificialMorphSpringFling", + "canBeVeryPatient" + ]} ], "flashSuitChecked": true, "note": [ "Pause and jump just before the fade out finishes. Turn off Spring Ball and place a Bomb just above where Samus' head would be if standing.", "Pause again between 23-25 frames later and equip Spring Ball; Samus has a three frame window where she has upward momentum from the Bomb and can jump again.", "The positioning of the Bomb is quite lenient, with an 11 frame window for where it can be placed.", - "This needs to be done up to five times to cross the room with no other items." + "This needs to be done multiple times to cross the room with no other items;", + "using Spring Flings to cross from peak to peak can reduce the required number of bomb into Spring Ball jumps to two or three." ] }, { diff --git a/region/crateria/east/West Ocean.json b/region/crateria/east/West Ocean.json index 67e83facea..a7a8bc874c 100644 --- a/region/crateria/east/West Ocean.json +++ b/region/crateria/east/West Ocean.json @@ -797,6 +797,7 @@ } }, "requires": [ + "canComplexGMode", "canXRayClimb" ], "bypassesDoorShell": true, @@ -1326,6 +1327,7 @@ } }, "requires": [ + "canComplexGMode", {"notable": "Get Inside the Bridge"}, "canSkipDoorLock", {"or": [ @@ -1403,6 +1405,7 @@ } }, "requires": [ + "canComplexGMode", {"notable": "Get Inside the Bridge"}, {"or": [ "canArtificialMorph", @@ -1465,6 +1468,7 @@ } }, "requires": [ + "canComplexGMode", {"or": [ "canArtificialMorph", "canWalljump", @@ -1586,6 +1590,7 @@ } }, "requires": [ + "canComplexGMode", "canLongXRayClimb", "canBePatient" ], @@ -1607,6 +1612,7 @@ } }, "requires": [ + "canComplexGMode", "canLongXRayClimb", "canBePatient" ], @@ -1641,6 +1647,7 @@ } }, "requires": [ + "canComplexGMode", "canLongXRayClimb", "canBePatient" ], @@ -2236,9 +2243,9 @@ } }, "requires": [ + "canComplexGMode", "canXRayStandUp", "canPartialFloorClip", - "canInsaneJump", "canDownGrab", {"or": [ "h_artificialMorphSpringBall", @@ -2267,6 +2274,7 @@ } }, "requires": [ + "canComplexGMode", "canXRayClimb" ], "flashSuitChecked": true, @@ -3076,7 +3084,7 @@ { "id": 133, "link": [16, 14], - "name": "Base", + "name": "G-Mode Through the Crumble Block", "requires": [ "canEnterGMode", {"or": [ @@ -3099,8 +3107,7 @@ "link": [16, 14], "name": "Shinespark Through Crumble Blocks, Quick Morph", "requires": [ - "canEnterGMode", - "canInsaneJump", + "canComplexGMode", {"canShineCharge": { "usedTiles": 23, "steepUpTiles": 6, @@ -3132,7 +3139,6 @@ "requires": [ "canPowerBombItemOverloadPLMs", {"notable": "G-mode Overload PLMs by Power Bombing Morph Maze Item"}, - "canEnterGMode", "h_usePowerBomb", {"or": [ "SpaceJump", @@ -3159,7 +3165,6 @@ "requires": [ "canPowerBombItemOverloadPLMs", {"notable": "G-mode Overload PLMs by Power Bombing Morph Maze Item"}, - "canEnterGMode", {"itemNotCollectedAtNode": 10}, "canRiskPermanentLossOfAccess", {"or": [ diff --git a/region/crateria/west/Gauntlet Energy Tank Room.json b/region/crateria/west/Gauntlet Energy Tank Room.json index 087595b460..9905ba2581 100644 --- a/region/crateria/west/Gauntlet Energy Tank Room.json +++ b/region/crateria/west/Gauntlet Energy Tank Room.json @@ -840,6 +840,7 @@ } }, "requires": [ + "canComplexGMode", {"itemNotCollectedAtNode": 3}, "canRiskPermanentLossOfAccess", "h_artificialMorphMovement", @@ -992,6 +993,7 @@ } }, "requires": [ + "canComplexGMode", {"itemNotCollectedAtNode": 3}, "canRiskPermanentLossOfAccess", "Morph", diff --git a/region/crateria/west/Green Pirates Shaft.json b/region/crateria/west/Green Pirates Shaft.json index 5598cfcc49..5544cfbfde 100644 --- a/region/crateria/west/Green Pirates Shaft.json +++ b/region/crateria/west/Green Pirates Shaft.json @@ -633,6 +633,7 @@ } }, "requires": [ + "canComplexGMode", "h_artificialMorphCrystalFlash", {"autoReserveTrigger": {}}, {"or": [ @@ -652,7 +653,8 @@ "Crystal Flash then damage down on the Pirates to Reserve trigger to exit G-Mode.", "To prevent freeing the Beetoms, the Power Bomb needs to be placed on the left platform just below the door.", "To prevent extra hits after the trigger, kill the Pirate when Samus is low on Energy, then finish damaging down using its invisible lasers." - ] + ], + "devNote": "FIXME: Using a Power Bomb could also be used to exit G-mode. All G-mode CF strats need to be thoroughly checked and maybe make a tech for understanding it." }, { "id": 19, @@ -1036,6 +1038,7 @@ } }, "requires": [ + "canComplexGMode", "canLongXRayClimb", {"enemyKill": { "enemies": [["Green Space Pirate (standing)"]], @@ -1061,6 +1064,7 @@ } }, "requires": [ + "canComplexGMode", "canLongXRayClimb", {"or": [ "h_artificialMorphPowerBomb", @@ -1754,7 +1758,7 @@ { "id": 73, "link": [10, 2], - "name": "Base", + "name": "Exit G-Mode", "requires": [ "canEnterGMode" ], From f2570ef4d4790387ababbb65c682f58b9affbead Mon Sep 17 00:00:00 2001 From: kjbranch Date: Mon, 11 Aug 2025 16:23:56 -0600 Subject: [PATCH 2/3] add missing screw option in landing site --- region/crateria/central/Landing Site.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/region/crateria/central/Landing Site.json b/region/crateria/central/Landing Site.json index d494663feb..ef055d6cfe 100644 --- a/region/crateria/central/Landing Site.json +++ b/region/crateria/central/Landing Site.json @@ -1394,7 +1394,8 @@ "canWalljump", "HiJump", "canSpringBallJumpMidAir", - "h_getBlueSpeedMaxRunway" + "h_getBlueSpeedMaxRunway", + "ScrewAttack" ]}, {"refill": ["Energy", "Missile", "Super", "PowerBomb"]}, "canLongXRayClimb", @@ -1479,7 +1480,8 @@ "canWalljump", "HiJump", "canSpringBallJumpMidAir", - "h_getBlueSpeedMaxRunway" + "h_getBlueSpeedMaxRunway", + "ScrewAttack" ]}, {"refill": ["Energy", "Missile", "Super", "PowerBomb"]}, "canLongXRayClimb", From 520c6e33f14edabc574227b1f4e115ca4e715b26 Mon Sep 17 00:00:00 2001 From: kjbranch Date: Wed, 13 Aug 2025 09:41:28 -0600 Subject: [PATCH 3/3] feedback update - apply feedback to older regions too --- region/brinstar/pink/Big Pink.json | 3 +++ region/crateria/east/West Ocean.json | 2 ++ 2 files changed, 5 insertions(+) diff --git a/region/brinstar/pink/Big Pink.json b/region/brinstar/pink/Big Pink.json index 25e3989934..60fc68beea 100644 --- a/region/brinstar/pink/Big Pink.json +++ b/region/brinstar/pink/Big Pink.json @@ -1585,6 +1585,7 @@ }, "requires": [ "canPowerBombItemOverloadPLMs", + "canComplexGMode", {"itemNotCollectedAtNode": 10}, "canRiskPermanentLossOfAccess", "canArtificialMorph", @@ -1634,6 +1635,7 @@ } }, "requires": [ + "canComplexGMode", "canArtificialMorph", "h_artificialMorphIBJ", {"or": [ @@ -1671,6 +1673,7 @@ }, "requires": [ "canPowerBombItemOverloadPLMs", + "canComplexGMode", {"itemNotCollectedAtNode": 10}, "canRiskPermanentLossOfAccess", "canArtificialMorph", diff --git a/region/crateria/east/West Ocean.json b/region/crateria/east/West Ocean.json index a7a8bc874c..9180071b55 100644 --- a/region/crateria/east/West Ocean.json +++ b/region/crateria/east/West Ocean.json @@ -3138,6 +3138,7 @@ "name": "G-mode Overload PLMs by Power Bombing Morph Maze Item", "requires": [ "canPowerBombItemOverloadPLMs", + "canComplexGMode", {"notable": "G-mode Overload PLMs by Power Bombing Morph Maze Item"}, "h_usePowerBomb", {"or": [ @@ -3164,6 +3165,7 @@ "name": "G-mode Overload PLMs by Power Bombing Morph Maze Item, Permanent Softlock Risk", "requires": [ "canPowerBombItemOverloadPLMs", + "canComplexGMode", {"notable": "G-mode Overload PLMs by Power Bombing Morph Maze Item"}, {"itemNotCollectedAtNode": 10}, "canRiskPermanentLossOfAccess",