Botwoon Energy Tank Room

Room ID: 186

Wiki
Difficulty filter

From: 1
Left Door
To: 1
Left Door

Exit condition:

{
  "leaveWithRunway": {
    "length": 3,
    "openEnd": 1
  }
}
From: 1
Left Door
To: 1
Left Door

Requires:

{
  "refill": [
    "Energy",
    "Missile",
    "PowerBomb"
  ]
}
From: 1
Left Door
To: 1
Left Door

Requires:

"Gravity"
{
  "canShineCharge": {
    "usedTiles": 33,
    "openEnd": 2
  }
}

Exit condition:

{
  "leaveShinecharged": {
    "framesRemaining": 120
  }
}
From: 1
Left Door
To: 1
Left Door

Exit condition:

{
  "leaveWithGModeSetup": {}
}
From: 1
Left Door
To: 2
Left Sand Pit

From: 1
Left Door
To: 2
Left Sand Pit

Entrance condition:

{
  "comeInWithGMode": {
    "mode": "any",
    "morphed": false
  }
}

Exit condition:

{
  "leaveWithGMode": {
    "morphed": false
  }
}
From: 1
Left Door
To: 2
Left Sand Pit

Entrance condition:

{
  "comeInWithGMode": {
    "mode": "any",
    "morphed": true
  }
}

Requires:

{
  "or": [
    "h_canArtificialMorphBombs",
    {
      "and": [
        "h_canArtificialMorphPowerBomb",
        "h_additionalBomb",
        {
          "or": [
            "canTrickyJump",
            "h_canArtificialMorphSpringBall",
            "Gravity",
            "h_additionalBomb"
          ]
        }
      ]
    },
    {
      "and": [
        "Gravity",
        {
          "enemyDamage": {
            "enemy": "Puyo",
            "type": "contact",
            "hits": 1
          }
        }
      ]
    },
    {
      "and": [
        "h_canArtificialMorphSpringBall",
        {
          "enemyDamage": {
            "enemy": "Puyo",
            "type": "contact",
            "hits": 3
          }
        }
      ]
    },
    {
      "enemyDamage": {
        "enemy": "Puyo",
        "type": "contact",
        "hits": 7
      }
    }
  ]
}

Exit condition:

{
  "leaveWithGMode": {
    "morphed": true
  }
}
From: 1
Left Door
To: 3
Right Sand Pit

Requires:

"h_canNavigateUnderwater"
From: 1
Left Door
To: 3
Right Sand Pit

Entrance condition:

{
  "comeInWithGMode": {
    "mode": "any",
    "morphed": false
  }
}

Exit condition:

{
  "leaveWithGMode": {
    "morphed": false
  }
}
From: 1
Left Door
To: 3
Right Sand Pit

Entrance condition:

{
  "comeInWithGMode": {
    "mode": "any",
    "morphed": true
  }
}

Requires:

{
  "or": [
    "h_canArtificialMorphSpringBall",
    {
      "and": [
        "Gravity",
        "h_canArtificialMorphBombHorizontally"
      ]
    }
  ]
}
{
  "or": [
    {
      "and": [
        "h_canArtificialMorphBombThings",
        "h_additionalBomb"
      ]
    },
    {
      "and": [
        "Gravity",
        "h_canArtificialMorphSpringBall",
        {
          "enemyDamage": {
            "enemy": "Puyo",
            "type": "contact",
            "hits": 1
          }
        }
      ]
    },
    {
      "and": [
        "h_canArtificialMorphSpringBall",
        {
          "enemyDamage": {
            "enemy": "Puyo",
            "type": "contact",
            "hits": 3
          }
        }
      ]
    },
    {
      "and": [
        "Gravity",
        "h_canArtificialMorphPowerBomb",
        {
          "enemyDamage": {
            "enemy": "Puyo",
            "type": "contact",
            "hits": 2
          }
        }
      ]
    }
  ]
}

Exit condition:

{
  "leaveWithGMode": {
    "morphed": true
  }
}
From: 1
Left Door
To: 4
Right Door

Requires:

"Gravity"
{
  "canShineCharge": {
    "usedTiles": 33,
    "openEnd": 2
  }
}
{
  "or": [
    {
      "canShineCharge": {
        "usedTiles": 22,
        "gentleDownTiles": 4,
        "openEnd": 1
      }
    },
    "h_canUseSpringBall",
    "SpaceJump",
    "h_canUseMorphBombs",
    "canPlayInSand"
  ]
}

Exit condition:

{
  "leaveWithRunway": {
    "length": 45,
    "openEnd": 1
  }
}
From: 1
Left Door
To: 4
Right Door

Requires:

"canSuitlessMaridia"
"HiJump"
{
  "or": [
    "h_canUseSpringBall",
    "canPlayInSand"
  ]
}
{
  "obstaclesCleared": [
    "A"
  ]
}
From: 1
Left Door
To: 4
Right Door

Requires:

"Gravity"
{
  "canShineCharge": {
    "usedTiles": 33,
    "openEnd": 1,
    "gentleDownTiles": 3,
    "steepDownTiles": 1
  }
}

Clears obstacles: A

From: 1
Left Door
To: 4
Right Door

Entrance condition:

{
  "comeInShinecharged": {
    "framesRequired": 60
  }
}

Requires:

"canSuitlessMaridia"
"canHorizontalShinespark"
{
  "shinespark": {
    "frames": 159,
    "excessFrames": 43
  }
}

Clears obstacles: A

From: 1
Left Door
To: 4
Right Door

Enter the room with blue speed, and jump into a speedball.

Entrance condition:

{
  "comeInShinecharging": {
    "length": 0,
    "openEnd": 1
  }
}

Requires:

"canWaterShineCharge"
"canSpeedball"
"canTrickyJump"
From: 1
Left Door
To: 4
Right Door

Overload PLMs by touching the sand, then move through the speed blocks. Avoiding the sand pits is easier without Gravity or HiJump.

Entrance condition:

{
  "comeInWithGMode": {
    "mode": "any",
    "morphed": false
  }
}

Requires:

"canSuitlessMaridia"
From: 1
Left Door
To: 4
Right Door

Entrance condition:

{
  "comeInWithGrappleTeleport": {
    "blockPositions": [
      [
        108,
        12
      ],
      [
        108,
        13
      ]
    ]
  }
}

Bypasses door shell: true

From: 1
Left Door
To: 4
Right Door

Entrance condition:

{
  "comeInWithGrappleTeleport": {
    "blockPositions": [
      [
        108,
        12
      ]
    ]
  }
}

Exit condition:

{
  "leaveWithGrappleTeleport": {
    "blockPositions": [
      [
        108,
        12
      ]
    ]
  }
}

Bypasses door shell: true

From: 1
Left Door
To: 4
Right Door

Entrance condition:

{
  "comeInWithGrappleTeleport": {
    "blockPositions": [
      [
        108,
        13
      ]
    ]
  }
}

Exit condition:

{
  "leaveWithGrappleTeleport": {
    "blockPositions": [
      [
        108,
        13
      ]
    ]
  }
}

Bypasses door shell: true

From: 1
Left Door
To: 5
Item

Requires:

"Gravity"
"Morph"
From: 1
Left Door
To: 5
Item

Requires:

"canSuitlessMaridia"
"Morph"
{
  "or": [
    "canTrickySpringBallJump",
    "HiJump"
  ]
}
From: 1
Left Door
To: 5
Item

Requires:

"canSuitlessMaridia"
"Morph"
"canTrickyUseFrozenEnemies"
From: 1
Left Door
To: 5
Item

Entrance condition:

{
  "comeInShinechargedJumping": {
    "framesRequired": 22
  }
}

Requires:

"Morph"
"canCrossRoomJumpIntoWater"
"canShinechargeMovement"
"canMidairShinespark"
{
  "shinespark": {
    "frames": 55
  }
}
From: 1
Left Door
To: 5
Item

Needs max horizontal speed coming from 43 runway tiles in the adjacent room. Jump after the transition.

Entrance condition:

{
  "comeInJumping": {
    "speedBooster": true,
    "minTiles": 43
  }
}

Requires:

"canTrickyJump"
"canLateralMidAirMorph"
"canCrossRoomJumpIntoWater"

Needs a runway of 7 tiles with no open end in the adjacent room, to get enough height. This is a peak of height with speed booster, no hjb, while underwater. Jump before the transition with SpeedBooster off and then SpeedBooster back on after reaching the ceiling and Morphing.

Entrance condition:

{
  "comeInJumping": {
    "speedBooster": true,
    "minTiles": 6.4375
  }
}

Requires:

"canLateralMidAirMorph"
"canDisableEquipment"
"canCrossRoomJumpIntoWater"
"canSpringBallBounce"
{
  "or": [
    {
      "enemyDamage": {
        "enemy": "Puyo",
        "type": "contact",
        "hits": 1
      }
    },
    "canInsaneJump",
    {
      "and": [
        "Plasma",
        "canTrickyJump"
      ]
    }
  ]
}
From: 1
Left Door
To: 5
Item

Be careful not to touch or bomb the sand in order to grab the item before PLMs are overloaded.

Entrance condition:

{
  "comeInWithGMode": {
    "mode": "direct",
    "morphed": true
  }
}

Requires:

{
  "or": [
    {
      "and": [
        "Gravity",
        "h_canArtificialMorphIBJ",
        "canDodgeWhileShooting"
      ]
    },
    {
      "and": [
        "h_canArtificialMorphSpringBall",
        {
          "or": [
            "Gravity",
            "HiJump"
          ]
        },
        {
          "or": [
            "canTrickyJump",
            "h_canArtificialMorphPowerBomb"
          ]
        }
      ]
    }
  ]
}

Clears obstacles: B

From: 1
Left Door
To: 5
Item

Entrance condition:

{
  "comeInWithGMode": {
    "mode": "any",
    "morphed": true
  }
}

Requires:

{
  "or": [
    {
      "and": [
        "Gravity",
        "h_canArtificialMorphIBJ"
      ]
    },
    {
      "and": [
        "h_canArtificialMorphSpringBall",
        {
          "or": [
            "Gravity",
            "HiJump"
          ]
        },
        {
          "or": [
            "canTrickyJump",
            "h_canArtificialMorphPowerBomb"
          ]
        }
      ]
    }
  ]
}

Notable: true

Lure a Puyo close to the sand and use it to Bomb-Grapple-Jump up to the Morph Ball maze. It helps to predict the jump pattern of the enemy.

Requires:

"canSuitlessMaridia"
"canBombGrappleJump"
"canCrouchJump"
From: 2
Left Sand Pit
To: 2
Left Sand Pit

Exit condition:

{
  "leaveNormally": {}
}
From: 3
Right Sand Pit
To: 3
Right Sand Pit

Exit condition:

{
  "leaveNormally": {}
}
From: 4
Right Door
To: 1
Left Door

Requires:

"Gravity"
{
  "or": [
    "canPlayInSand",
    "SpaceJump",
    "h_canUseSpringBall"
  ]
}
{
  "obstaclesCleared": [
    "A"
  ]
}
From: 4
Right Door
To: 1
Left Door

Requires:

"canSuitlessMaridia"
"HiJump"
{
  "or": [
    "h_canUseSpringBall",
    "canPlayInSand"
  ]
}
{
  "obstaclesCleared": [
    "A"
  ]
}
From: 4
Right Door
To: 1
Left Door

Requires:

"Gravity"
{
  "canShineCharge": {
    "usedTiles": 22,
    "gentleDownTiles": 4,
    "openEnd": 1
  }
}

Clears obstacles: A

From: 4
Right Door
To: 1
Left Door

Entrance condition:

{
  "comeInShinecharging": {
    "length": 22,
    "gentleDownTiles": 4,
    "openEnd": 1
  }
}

Requires:

"Gravity"

Clears obstacles: A

From: 4
Right Door
To: 1
Left Door

Entrance condition:

{
  "comeInShinecharged": {
    "framesRequired": 80
  }
}

Requires:

"Gravity"
"canHorizontalShinespark"
{
  "shinespark": {
    "frames": 115,
    "excessFrames": 12
  }
}

Clears obstacles: A

From: 4
Right Door
To: 1
Left Door

Coming in with zero momentum, all it takes is one non-HiJump full height jump forward, then activate.

Entrance condition:

{
  "comeInShinecharged": {
    "framesRequired": 160
  }
}

Requires:

"canSuitlessMaridia"
"canHorizontalShinespark"
{
  "shinespark": {
    "frames": 147,
    "excessFrames": 15
  }
}

Clears obstacles: A

From: 4
Right Door
To: 1
Left Door

Entrance condition:

{
  "comeInShinecharging": {
    "length": 6,
    "openEnd": 1
  }
}

Requires:

"canWaterShineCharge"

Clears obstacles: A

From: 4
Right Door
To: 1
Left Door

Entrance condition:

{
  "comeInRunning": {
    "speedBooster": true,
    "minTiles": 2
  }
}

Requires:

"canStutterWaterShineCharge"

Clears obstacles: A

From: 4
Right Door
To: 1
Left Door

Overload PLMs by touching the sand, then move through the speed blocks. Shoot the Puyo while crouching to increase accuracy. Avoiding the right pit is much easier without Gravity or HiJump. Standing on the edge and spin jumping to the left is much easier than a running jump. While on the left side of this platform, the Puyo to the left will start moving; carefully kill it.

Entrance condition:

{
  "comeInWithGMode": {
    "mode": "any",
    "morphed": true
  }
}

Requires:

{
  "or": [
    "canTrickyJump",
    {
      "and": [
        "Gravity",
        "SpaceJump"
      ]
    }
  ]
}
From: 4
Right Door
To: 1
Left Door

Entrance condition:

{
  "comeInWithGrappleTeleport": {
    "blockPositions": [
      [
        7,
        2
      ]
    ]
  }
}
From: 4
Right Door
To: 1
Left Door

Entrance condition:

{
  "comeInWithGrappleTeleport": {
    "blockPositions": [
      [
        3,
        12
      ],
      [
        3,
        13
      ]
    ]
  }
}

Bypasses door shell: true

From: 4
Right Door
To: 1
Left Door

Entrance condition:

{
  "comeInWithGrappleTeleport": {
    "blockPositions": [
      [
        3,
        12
      ]
    ]
  }
}

Exit condition:

{
  "leaveWithGrappleTeleport": {
    "blockPositions": [
      [
        3,
        12
      ]
    ]
  }
}

Bypasses door shell: true

From: 4
Right Door
To: 1
Left Door

Entrance condition:

{
  "comeInWithGrappleTeleport": {
    "blockPositions": [
      [
        3,
        13
      ]
    ]
  }
}

Exit condition:

{
  "leaveWithGrappleTeleport": {
    "blockPositions": [
      [
        3,
        13
      ]
    ]
  }
}

Bypasses door shell: true

From: 4
Right Door
To: 2
Left Sand Pit

Overload PLMs by touching the sand, then move through the speed blocks. Shoot the Puyo while crouching to increase accuracy. Avoiding the right pit is much easier without Gravity or HiJump. Standing on the edge and spin jumping to the left is much easier than a running jump. While on the left side of this platform, the Puyo to the left will start moving; carefully kill or dodge it.

Entrance condition:

{
  "comeInWithGMode": {
    "mode": "any",
    "morphed": false
  }
}

Requires:

{
  "or": [
    "canTrickyJump",
    {
      "and": [
        "Gravity",
        "SpaceJump"
      ]
    }
  ]
}

Exit condition:

{
  "leaveWithGMode": {
    "morphed": false
  }
}
From: 4
Right Door
To: 2
Left Sand Pit

With Gravity, or Spring Ball and HiJump, it is easiest to go through the Morph maze at the top of the room and fall into the the sand. Otherwise, the overload PLMs by touching the sand, or by bombing the speed blocks, to be able to go through to the left. Killing the Zoas with Bombs or Power Bombs will prevent them from respawning, although it is possible but tricky to dodge them with just Spring Ball.

Entrance condition:

{
  "comeInWithGMode": {
    "mode": "any",
    "morphed": true
  }
}

Requires:

{
  "or": [
    {
      "and": [
        "h_canArtificialMorphSpringBall",
        {
          "or": [
            "Gravity",
            "HiJump"
          ]
        }
      ]
    },
    {
      "and": [
        "Gravity",
        "h_canArtificialMorphIBJ"
      ]
    },
    {
      "and": [
        "h_canArtificialMorphSpringBall",
        {
          "or": [
            "canTrickyJump",
            "h_canArtificialMorphBombThings"
          ]
        }
      ]
    }
  ]
}

Exit condition:

{
  "leaveWithGMode": {
    "morphed": true
  }
}
From: 4
Right Door
To: 3
Right Sand Pit

Overload PLMs by touching the sand, then move through the speed blocks. Shoot the Puyo while crouching to increase accuracy.

Entrance condition:

{
  "comeInWithGMode": {
    "mode": "any",
    "morphed": false
  }
}

Exit condition:

{
  "leaveWithGMode": {
    "morphed": false
  }
}
From: 4
Right Door
To: 3
Right Sand Pit

With Gravity, or Spring Ball and HiJump, it is easiest to go through the Morph maze at the top of the room and fall into the the sand. Otherwise, the overload PLMs by touching the sand, or by bombing the speed blocks, to be able to go through to the left. Killing the Zoas with Bombs or Power Bombs will prevent them from respawning, although it is possible but tricky to dodge them with just Spring Ball.

Entrance condition:

{
  "comeInWithGMode": {
    "mode": "any",
    "morphed": true
  }
}

Requires:

{
  "or": [
    {
      "and": [
        "h_canArtificialMorphSpringBall",
        {
          "or": [
            "Gravity",
            "HiJump"
          ]
        }
      ]
    },
    {
      "and": [
        "Gravity",
        "h_canArtificialMorphIBJ"
      ]
    },
    {
      "and": [
        "h_canArtificialMorphSpringBall",
        {
          "or": [
            "canTrickyJump",
            "h_canArtificialMorphBombThings"
          ]
        }
      ]
    }
  ]
}

Exit condition:

{
  "leaveWithGMode": {
    "morphed": true
  }
}
From: 4
Right Door
To: 4
Right Door

Exit condition:

{
  "leaveWithRunway": {
    "length": 23,
    "gentleUpTiles": 4,
    "openEnd": 1
  }
}
From: 4
Right Door
To: 4
Right Door

Entrance condition:

{
  "comeInRunning": {
    "speedBooster": true,
    "minTiles": 2
  }
}

Requires:

"canStutterWaterShineCharge"
"canShinechargeMovementComplex"
{
  "or": [
    {
      "shinespark": {
        "frames": 12
      }
    },
    {
      "and": [
        "canShinechargeMovementTricky",
        {
          "shinespark": {
            "frames": 3
          }
        }
      ]
    }
  ]
}

Exit condition:

{
  "leaveWithSpark": {}
}
From: 4
Right Door
To: 4
Right Door

Requires:

{
  "refill": [
    "Energy",
    "Missile",
    "Super"
  ]
}
From: 4
Right Door
To: 4
Right Door

Lure the Zoas. Jump so that they start moving horizontally while higher, use spin jumps to move horizontally faster while keeping them on screen.

Exit condition:

{
  "leaveWithGModeSetup": {}
}
From: 4
Right Door
To: 5
Item

Be careful not to touch or bomb the sand in order to grab the item before PLMs are overloaded. With bombs, kill the Zoas and they will stop spawning.

Entrance condition:

{
  "comeInWithGMode": {
    "mode": "direct",
    "morphed": true
  }
}

Requires:

{
  "or": [
    {
      "and": [
        "Gravity",
        "h_canArtificialMorphIBJ"
      ]
    },
    {
      "and": [
        "h_canArtificialMorphSpringBall",
        {
          "or": [
            "Gravity",
            "HiJump"
          ]
        }
      ]
    }
  ]
}

Clears obstacles: B

From: 4
Right Door
To: 5
Item

With bombs, kill the Zoas and they will stop spawning.

Entrance condition:

{
  "comeInWithGMode": {
    "mode": "any",
    "morphed": true
  }
}

Requires:

{
  "or": [
    {
      "and": [
        "Gravity",
        "h_canArtificialMorphIBJ"
      ]
    },
    {
      "and": [
        "h_canArtificialMorphSpringBall",
        {
          "or": [
            "Gravity",
            "HiJump"
          ]
        }
      ]
    }
  ]
}
From: 4
Right Door
To: 6
Junction Right of Morph Passage

Requires:

"Gravity"
From: 4
Right Door
To: 6
Junction Right of Morph Passage

Requires:

"canSuitlessMaridia"
{
  "or": [
    "canSpringBallJumpMidAir",
    "HiJump"
  ]
}
From: 4
Right Door
To: 6
Junction Right of Morph Passage

Requires:

"canSuitlessMaridia"
"canUseFrozenEnemies"
From: 4
Right Door
To: 6
Junction Right of Morph Passage

Shinespark diagonally over the zoa pit or run through the speed blocks and shinespark after turning around.

Entrance condition:

{
  "comeInShinecharging": {
    "length": 6,
    "openEnd": 1
  }
}

Requires:

"Morph"
"canWaterShineCharge"
{
  "shinespark": {
    "frames": 8
  }
}
From: 4
Right Door
To: 6
Junction Right of Morph Passage

Shinespark diagonally over the zoa pit or run through the speed blocks and shinespark after turning around.

Entrance condition:

{
  "comeInRunning": {
    "speedBooster": true,
    "minTiles": 2
  }
}

Requires:

"Morph"
"canStutterWaterShineCharge"
{
  "shinespark": {
    "frames": 8
  }
}
From: 4
Right Door
To: 6
Junction Right of Morph Passage

Entrance condition:

{
  "comeInShinechargedJumping": {
    "framesRequired": 20
  }
}

Requires:

"Morph"
"canCrossRoomJumpIntoWater"
"canShinechargeMovement"
"canMidairShinespark"
{
  "shinespark": {
    "frames": 46,
    "excessFrames": 3
  }
}
From: 4
Right Door
To: 6
Junction Right of Morph Passage

Requires running 7 tiles with no open end in the adjacent room, as this is a peak in jump speed. Run with Speedbooster off, and turn it on after entering the room.

Entrance condition:

{
  "comeInJumping": {
    "speedBooster": true,
    "minTiles": 6.4375
  }
}

Requires:

"canDisableEquipment"
"canCrossRoomJumpIntoWater"
From: 4
Right Door
To: 6
Junction Right of Morph Passage

Use the respawning Zoas to double jump up to the Morph Ball maze.

Requires:

"canSuitlessMaridia"
"h_canCrouchJumpDownGrab"
"canBombGrappleJump"
From: 5
Item
To: 1
Left Door

If the Puyos are alive, lure the first to the right, then roll out of the hole, unmorph and fight them. Crouching while shooting may increase accuracy.

Requires:

"Morph"

If the Puyos are alive, lure the first to the right, then roll out of the hole, unmorph and fight them. Crouching while shooting may increase accuracy.

Requires:

{
  "obstaclesCleared": [
    "B"
  ]
}

Requires:

{
  "obstaclesCleared": [
    "B"
  ]
}
From: 5
Item
To: 6
Junction Right of Morph Passage

Requires:

{
  "or": [
    "h_canUseSpringBall",
    {
      "and": [
        "Gravity",
        "h_canBombThings",
        "h_additionalBomb",
        "h_additionalBomb"
      ]
    }
  ]
}
From: 5
Item
To: 6
Junction Right of Morph Passage

Jump and mid-air morph. This is much easier with Gravity and HiJump turned off.

Requires:

"canSuitlessMaridia"
"Morph"
"canDisableEquipment"
From: 6
Junction Right of Morph Passage
To: 4
Right Door

From: 6
Junction Right of Morph Passage
To: 5
Item

Requires:

{
  "or": [
    "h_canUseSpringBall",
    {
      "and": [
        "Gravity",
        "h_canBombThings",
        "h_additionalBomb",
        "h_additionalBomb"
      ]
    }
  ]
}
From: 6
Junction Right of Morph Passage
To: 5
Item

Jump and mid-air morph. This is much easier with Gravity and HiJump turned off.

Requires:

"canSuitlessMaridia"
"Morph"
"canDisableEquipment"
From: 6
Junction Right of Morph Passage
To: 6
Junction Right of Morph Passage

Requires:

{
  "refill": [
    "Energy"
  ]
}

{
  "$schema": "../../../schema/m3-room.schema.json",
  "id": 186,
  "name": "Botwoon Energy Tank Room",
  "area": "Maridia",
  "subarea": "Inner",
  "subsubarea": "Pink",
  "playable": true,
  "roomAddress": "0x7D7E4",
  "roomEnvironments": [
    {
      "heated": false
    }
  ],
  "nodes": [
    {
      "id": 1,
      "name": "Left Door",
      "nodeType": "door",
      "nodeSubType": "blue",
      "nodeAddress": "0x001a84c",
      "doorEnvironments": [
        {
          "physics": "water"
        }
      ]
    },
    {
      "id": 2,
      "name": "Left Sand Pit",
      "nodeType": "exit",
      "nodeSubType": "sandpit",
      "nodeAddress": "0x001a864"
    },
    {
      "id": 3,
      "name": "Right Sand Pit",
      "nodeType": "exit",
      "nodeSubType": "sandpit",
      "nodeAddress": "0x001a858"
    },
    {
      "id": 4,
      "name": "Right Door",
      "nodeType": "door",
      "nodeSubType": "blue",
      "nodeAddress": "0x001a870",
      "doorEnvironments": [
        {
          "physics": "water"
        }
      ]
    },
    {
      "id": 5,
      "name": "Item",
      "nodeType": "item",
      "nodeSubType": "visible",
      "nodeItem": "ETank",
      "nodeAddress": "0x7C755"
    },
    {
      "id": 6,
      "name": "Junction Right of Morph Passage",
      "nodeType": "junction",
      "nodeSubType": "junction"
    }
  ],
  "obstacles": [
    {
      "id": "A",
      "name": "Speed Blocks",
      "obstacleType": "inanimate"
    },
    {
      "id": "B",
      "name": "G-Mode Grab Item and Leave Before Exiting G-Mode",
      "obstacleType": "abstract"
    }
  ],
  "enemies": [
    {
      "id": "e1",
      "groupName": "Botwoon E-Tank Left Puyos",
      "enemyName": "Puyo",
      "quantity": 4,
      "homeNodes": [
        1
      ]
    },
    {
      "id": "e2",
      "groupName": "Botwoon E-Tank Right Puyo",
      "enemyName": "Puyo",
      "quantity": 1,
      "homeNodes": [
        3
      ]
    },
    {
      "id": "e3",
      "groupName": "Botwoon E-Tank Zoas",
      "enemyName": "Zoa",
      "quantity": 5,
      "homeNodes": [
        4
      ],
      "farmCycles": [
        {
          "name": "Zoa Power Beam spam",
          "cycleFrames": 150,
          "requires": [
            "Gravity"
          ],
          "note": "Needs Gravity to get into the sand"
        },
        {
          "name": "Zoa Power Beam suitless back and forth",
          "cycleFrames": 300,
          "requires": [
            "canSuitlessMaridia"
          ]
        },
        {
          "name": "Zoa diagonal Grapple",
          "cycleFrames": 150,
          "requires": [
            "Grapple"
          ]
        }
      ]
    }
  ],
  "links": [
    {
      "from": 1,
      "to": [
        {
          "id": 1
        },
        {
          "id": 2,
          "devNote": "There's nothing difficult about getting here suitless, but it does run a heavy risk of leading the player into suitless Maridia situations."
        },
        {
          "id": 3,
          "devNote": "There's nothing difficult about getting here suitless, but it does run a heavy risk of leading the player into suitless Maridia situations."
        },
        {
          "id": 4,
          "devNote": "Direct link passing below. Passage above should go 1 -> 5 -> 4."
        },
        {
          "id": 5
        }
      ]
    },
    {
      "from": 2,
      "to": [
        {
          "id": 2
        }
      ]
    },
    {
      "from": 3,
      "to": [
        {
          "id": 3
        }
      ]
    },
    {
      "from": 4,
      "to": [
        {
          "id": 1,
          "devNote": "Direct link passing below. Passage above should go 4 -> 6 -> 5 -> 1."
        },
        {
          "id": 2
        },
        {
          "id": 3
        },
        {
          "id": 4
        },
        {
          "id": 5
        },
        {
          "id": 6
        }
      ]
    },
    {
      "from": 5,
      "to": [
        {
          "id": 1
        },
        {
          "id": 4
        },
        {
          "id": 6
        }
      ]
    },
    {
      "from": 6,
      "to": [
        {
          "id": 4
        },
        {
          "id": 5
        },
        {
          "id": 6
        }
      ]
    }
  ],
  "strats": [
    {
      "link": [
        1,
        1
      ],
      "name": "Leave with Runway",
      "requires": [],
      "exitCondition": {
        "leaveWithRunway": {
          "length": 3,
          "openEnd": 1
        }
      }
    },
    {
      "link": [
        1,
        1
      ],
      "name": "Puyo Farm",
      "requires": [
        {
          "refill": [
            "Energy",
            "Missile",
            "PowerBomb"
          ]
        }
      ]
    },
    {
      "link": [
        1,
        1
      ],
      "name": "Leave Shinecharged",
      "requires": [
        "Gravity",
        {
          "canShineCharge": {
            "usedTiles": 33,
            "openEnd": 2
          }
        }
      ],
      "exitCondition": {
        "leaveShinecharged": {
          "framesRemaining": 120
        }
      }
    },
    {
      "link": [
        1,
        1
      ],
      "name": "G-Mode Setup - Get Hit By Puyo",
      "notable": false,
      "requires": [],
      "exitCondition": {
        "leaveWithGModeSetup": {}
      }
    },
    {
      "link": [
        1,
        2
      ],
      "name": "Base",
      "requires": []
    },
    {
      "link": [
        1,
        2
      ],
      "name": "G-Mode",
      "notable": false,
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "any",
          "morphed": false
        }
      },
      "requires": [],
      "exitCondition": {
        "leaveWithGMode": {
          "morphed": false
        }
      }
    },
    {
      "link": [
        1,
        2
      ],
      "name": "G-Mode Morph",
      "notable": false,
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "any",
          "morphed": true
        }
      },
      "requires": [
        {
          "or": [
            "h_canArtificialMorphBombs",
            {
              "and": [
                "h_canArtificialMorphPowerBomb",
                "h_additionalBomb",
                {
                  "or": [
                    "canTrickyJump",
                    "h_canArtificialMorphSpringBall",
                    "Gravity",
                    "h_additionalBomb"
                  ]
                }
              ]
            },
            {
              "and": [
                "Gravity",
                {
                  "enemyDamage": {
                    "enemy": "Puyo",
                    "type": "contact",
                    "hits": 1
                  }
                }
              ]
            },
            {
              "and": [
                "h_canArtificialMorphSpringBall",
                {
                  "enemyDamage": {
                    "enemy": "Puyo",
                    "type": "contact",
                    "hits": 3
                  }
                }
              ]
            },
            {
              "enemyDamage": {
                "enemy": "Puyo",
                "type": "contact",
                "hits": 7
              }
            }
          ]
        }
      ],
      "exitCondition": {
        "leaveWithGMode": {
          "morphed": true
        }
      }
    },
    {
      "link": [
        1,
        3
      ],
      "name": "Base",
      "requires": [
        "h_canNavigateUnderwater"
      ]
    },
    {
      "link": [
        1,
        3
      ],
      "name": "G-Mode",
      "notable": false,
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "any",
          "morphed": false
        }
      },
      "requires": [],
      "exitCondition": {
        "leaveWithGMode": {
          "morphed": false
        }
      }
    },
    {
      "link": [
        1,
        3
      ],
      "name": "G-Mode Morph",
      "notable": false,
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "any",
          "morphed": true
        }
      },
      "requires": [
        {
          "or": [
            "h_canArtificialMorphSpringBall",
            {
              "and": [
                "Gravity",
                "h_canArtificialMorphBombHorizontally"
              ]
            }
          ]
        },
        {
          "or": [
            {
              "and": [
                "h_canArtificialMorphBombThings",
                "h_additionalBomb"
              ]
            },
            {
              "and": [
                "Gravity",
                "h_canArtificialMorphSpringBall",
                {
                  "enemyDamage": {
                    "enemy": "Puyo",
                    "type": "contact",
                    "hits": 1
                  }
                }
              ]
            },
            {
              "and": [
                "h_canArtificialMorphSpringBall",
                {
                  "enemyDamage": {
                    "enemy": "Puyo",
                    "type": "contact",
                    "hits": 3
                  }
                }
              ]
            },
            {
              "and": [
                "Gravity",
                "h_canArtificialMorphPowerBomb",
                {
                  "enemyDamage": {
                    "enemy": "Puyo",
                    "type": "contact",
                    "hits": 2
                  }
                }
              ]
            }
          ]
        }
      ],
      "exitCondition": {
        "leaveWithGMode": {
          "morphed": true
        }
      }
    },
    {
      "link": [
        1,
        4
      ],
      "name": "Leave with Runway Through the Speed Blocks",
      "requires": [
        "Gravity",
        {
          "canShineCharge": {
            "usedTiles": 33,
            "openEnd": 2
          }
        },
        {
          "or": [
            {
              "canShineCharge": {
                "usedTiles": 22,
                "gentleDownTiles": 4,
                "openEnd": 1
              }
            },
            "h_canUseSpringBall",
            "SpaceJump",
            "h_canUseMorphBombs",
            "canPlayInSand"
          ]
        }
      ],
      "exitCondition": {
        "leaveWithRunway": {
          "length": 45,
          "openEnd": 1
        }
      },
      "unlocksDoors": [
        {
          "types": [
            "ammo"
          ],
          "requires": []
        }
      ]
    },
    {
      "link": [
        1,
        4
      ],
      "name": "Speed Blocks Already Broken Suitless",
      "requires": [
        "canSuitlessMaridia",
        "HiJump",
        {
          "or": [
            "h_canUseSpringBall",
            "canPlayInSand"
          ]
        },
        {
          "obstaclesCleared": [
            "A"
          ]
        }
      ],
      "devNote": [
        "Gravity can run across the sand with speed again.",
        "FIXME: This is possible without HiJump by breaking spin before landing, then quickly jumping again. Useful in other places as well, like Aqueduct."
      ]
    },
    {
      "link": [
        1,
        4
      ],
      "name": "Base",
      "requires": [
        "Gravity",
        {
          "canShineCharge": {
            "usedTiles": 33,
            "openEnd": 1,
            "gentleDownTiles": 3,
            "steepDownTiles": 1
          }
        }
      ],
      "clearsObstacles": [
        "A"
      ]
    },
    {
      "link": [
        1,
        4
      ],
      "name": "Suitless Shinespark",
      "entranceCondition": {
        "comeInShinecharged": {
          "framesRequired": 60
        }
      },
      "requires": [
        "canSuitlessMaridia",
        "canHorizontalShinespark",
        {
          "shinespark": {
            "frames": 159,
            "excessFrames": 43
          }
        }
      ],
      "clearsObstacles": [
        "A"
      ]
    },
    {
      "link": [
        1,
        4
      ],
      "name": "Speedball",
      "entranceCondition": {
        "comeInShinecharging": {
          "length": 0,
          "openEnd": 1
        }
      },
      "requires": [
        "canWaterShineCharge",
        "canSpeedball",
        "canTrickyJump"
      ],
      "note": [
        "Enter the room with blue speed, and jump into a speedball."
      ]
    },
    {
      "link": [
        1,
        4
      ],
      "name": "G-Mode Overload PLMs",
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "any",
          "morphed": false
        }
      },
      "requires": [
        "canSuitlessMaridia"
      ],
      "note": "Overload PLMs by touching the sand, then move through the speed blocks. Avoiding the sand pits is easier without Gravity or HiJump."
    },
    {
      "link": [
        1,
        4
      ],
      "name": "Grapple Teleport Door Lock Skip",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              108,
              12
            ],
            [
              108,
              13
            ]
          ]
        }
      },
      "requires": [],
      "bypassesDoorShell": true
    },
    {
      "link": [
        1,
        4
      ],
      "name": "Carry Grapple Teleport (Top Position)",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              108,
              12
            ]
          ]
        }
      },
      "requires": [],
      "bypassesDoorShell": true,
      "exitCondition": {
        "leaveWithGrappleTeleport": {
          "blockPositions": [
            [
              108,
              12
            ]
          ]
        }
      }
    },
    {
      "link": [
        1,
        4
      ],
      "name": "Carry Grapple Teleport (Bottom Position)",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              108,
              13
            ]
          ]
        }
      },
      "requires": [],
      "bypassesDoorShell": true,
      "exitCondition": {
        "leaveWithGrappleTeleport": {
          "blockPositions": [
            [
              108,
              13
            ]
          ]
        }
      }
    },
    {
      "link": [
        1,
        5
      ],
      "name": "Base",
      "requires": [
        "Gravity",
        "Morph"
      ]
    },
    {
      "link": [
        1,
        5
      ],
      "name": "Suitless Jump Assist",
      "requires": [
        "canSuitlessMaridia",
        "Morph",
        {
          "or": [
            "canTrickySpringBallJump",
            "HiJump"
          ]
        }
      ]
    },
    {
      "link": [
        1,
        5
      ],
      "name": "Suitless Frozen Puyo",
      "requires": [
        "canSuitlessMaridia",
        "Morph",
        "canTrickyUseFrozenEnemies"
      ]
    },
    {
      "link": [
        1,
        5
      ],
      "name": "Cross Room Jump Shinespark",
      "entranceCondition": {
        "comeInShinechargedJumping": {
          "framesRequired": 22
        }
      },
      "requires": [
        "Morph",
        "canCrossRoomJumpIntoWater",
        "canShinechargeMovement",
        "canMidairShinespark",
        {
          "shinespark": {
            "frames": 55
          }
        }
      ]
    },
    {
      "link": [
        1,
        5
      ],
      "name": "Cross Room Jump with Speedbooster",
      "entranceCondition": {
        "comeInJumping": {
          "speedBooster": true,
          "minTiles": 43
        }
      },
      "requires": [
        "canTrickyJump",
        "canLateralMidAirMorph",
        "canCrossRoomJumpIntoWater"
      ],
      "note": [
        "Needs max horizontal speed coming from 43 runway tiles in the adjacent room.",
        "Jump after the transition."
      ]
    },
    {
      "link": [
        1,
        5
      ],
      "name": "Cross Room Jump with Speedbooster, Spring Ball",
      "entranceCondition": {
        "comeInJumping": {
          "speedBooster": true,
          "minTiles": 6.4375
        }
      },
      "requires": [
        "canLateralMidAirMorph",
        "canDisableEquipment",
        "canCrossRoomJumpIntoWater",
        "canSpringBallBounce",
        {
          "or": [
            {
              "enemyDamage": {
                "enemy": "Puyo",
                "type": "contact",
                "hits": 1
              }
            },
            "canInsaneJump",
            {
              "and": [
                "Plasma",
                "canTrickyJump"
              ]
            }
          ]
        }
      ],
      "note": [
        "Needs a runway of 7 tiles with no open end in the adjacent room, to get enough height. This is a peak of height with speed booster, no hjb, while underwater.",
        "Jump before the transition with SpeedBooster off and then SpeedBooster back on after reaching the ceiling and Morphing."
      ]
    },
    {
      "link": [
        1,
        5
      ],
      "name": "G-Mode Morph Direct",
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "direct",
          "morphed": true
        }
      },
      "requires": [
        {
          "or": [
            {
              "and": [
                "Gravity",
                "h_canArtificialMorphIBJ",
                "canDodgeWhileShooting"
              ]
            },
            {
              "and": [
                "h_canArtificialMorphSpringBall",
                {
                  "or": [
                    "Gravity",
                    "HiJump"
                  ]
                },
                {
                  "or": [
                    "canTrickyJump",
                    "h_canArtificialMorphPowerBomb"
                  ]
                }
              ]
            }
          ]
        }
      ],
      "clearsObstacles": [
        "B"
      ],
      "note": "Be careful not to touch or bomb the sand in order to grab the item before PLMs are overloaded."
    },
    {
      "link": [
        1,
        5
      ],
      "name": "G-Mode Morph",
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "any",
          "morphed": true
        }
      },
      "requires": [
        {
          "or": [
            {
              "and": [
                "Gravity",
                "h_canArtificialMorphIBJ"
              ]
            },
            {
              "and": [
                "h_canArtificialMorphSpringBall",
                {
                  "or": [
                    "Gravity",
                    "HiJump"
                  ]
                },
                {
                  "or": [
                    "canTrickyJump",
                    "h_canArtificialMorphPowerBomb"
                  ]
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "link": [
        1,
        5
      ],
      "name": "Botwoon Energy Tank Room Puyo Bomb-Grapple-Jump",
      "notable": true,
      "requires": [
        "canSuitlessMaridia",
        "canBombGrappleJump",
        "canCrouchJump"
      ],
      "note": [
        "Lure a Puyo close to the sand and use it to Bomb-Grapple-Jump up to the Morph Ball maze.",
        "It helps to predict the jump pattern of the enemy."
      ]
    },
    {
      "link": [
        2,
        2
      ],
      "name": "Leave Normally",
      "exitCondition": {
        "leaveNormally": {}
      },
      "requires": []
    },
    {
      "link": [
        3,
        3
      ],
      "name": "Leave Normally",
      "exitCondition": {
        "leaveNormally": {}
      },
      "requires": []
    },
    {
      "link": [
        4,
        1
      ],
      "name": "Speed Blocks Already Broken With Gravity",
      "requires": [
        "Gravity",
        {
          "or": [
            "canPlayInSand",
            "SpaceJump",
            "h_canUseSpringBall"
          ]
        },
        {
          "obstaclesCleared": [
            "A"
          ]
        }
      ]
    },
    {
      "link": [
        4,
        1
      ],
      "name": "Speed Blocks Already Broken Suitless",
      "requires": [
        "canSuitlessMaridia",
        "HiJump",
        {
          "or": [
            "h_canUseSpringBall",
            "canPlayInSand"
          ]
        },
        {
          "obstaclesCleared": [
            "A"
          ]
        }
      ]
    },
    {
      "link": [
        4,
        1
      ],
      "name": "Shinecharge",
      "requires": [
        "Gravity",
        {
          "canShineCharge": {
            "usedTiles": 22,
            "gentleDownTiles": 4,
            "openEnd": 1
          }
        }
      ],
      "clearsObstacles": [
        "A"
      ]
    },
    {
      "link": [
        4,
        1
      ],
      "name": "Run Through",
      "entranceCondition": {
        "comeInShinecharging": {
          "length": 22,
          "gentleDownTiles": 4,
          "openEnd": 1
        }
      },
      "requires": [
        "Gravity"
      ],
      "clearsObstacles": [
        "A"
      ]
    },
    {
      "link": [
        4,
        1
      ],
      "name": "Shinespark",
      "entranceCondition": {
        "comeInShinecharged": {
          "framesRequired": 80
        }
      },
      "requires": [
        "Gravity",
        "canHorizontalShinespark",
        {
          "shinespark": {
            "frames": 115,
            "excessFrames": 12
          }
        }
      ],
      "clearsObstacles": [
        "A"
      ]
    },
    {
      "link": [
        4,
        1
      ],
      "name": "Suitless Shinespark",
      "entranceCondition": {
        "comeInShinecharged": {
          "framesRequired": 160
        }
      },
      "requires": [
        "canSuitlessMaridia",
        "canHorizontalShinespark",
        {
          "shinespark": {
            "frames": 147,
            "excessFrames": 15
          }
        }
      ],
      "clearsObstacles": [
        "A"
      ],
      "note": "Coming in with zero momentum, all it takes is one non-HiJump full height jump forward, then activate."
    },
    {
      "link": [
        4,
        1
      ],
      "name": "Suitless Water Shinecharge",
      "entranceCondition": {
        "comeInShinecharging": {
          "length": 6,
          "openEnd": 1
        }
      },
      "requires": [
        "canWaterShineCharge"
      ],
      "clearsObstacles": [
        "A"
      ],
      "devNote": [
        "This is just a rough estimate of the minimum number of tiles that this runway can represent.",
        "It is designed for a skill level that won't be able to use canStutterWaterShineCharge."
      ]
    },
    {
      "link": [
        4,
        1
      ],
      "name": "Suitless Stutter Water Shinecharge",
      "entranceCondition": {
        "comeInRunning": {
          "speedBooster": true,
          "minTiles": 2
        }
      },
      "requires": [
        "canStutterWaterShineCharge"
      ],
      "clearsObstacles": [
        "A"
      ]
    },
    {
      "link": [
        4,
        1
      ],
      "name": "G-Mode Overload PLMs",
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "any",
          "morphed": true
        }
      },
      "requires": [
        {
          "or": [
            "canTrickyJump",
            {
              "and": [
                "Gravity",
                "SpaceJump"
              ]
            }
          ]
        }
      ],
      "note": [
        "Overload PLMs by touching the sand, then move through the speed blocks.",
        "Shoot the Puyo while crouching to increase accuracy.",
        "Avoiding the right pit is much easier without Gravity or HiJump.",
        "Standing on the edge and spin jumping to the left is much easier than a running jump.",
        "While on the left side of this platform, the Puyo to the left will start moving; carefully kill it."
      ]
    },
    {
      "link": [
        4,
        1
      ],
      "name": "Grapple Teleport",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              7,
              2
            ]
          ]
        }
      },
      "requires": []
    },
    {
      "link": [
        4,
        1
      ],
      "name": "Grapple Teleport Door Lock Skip",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              3,
              12
            ],
            [
              3,
              13
            ]
          ]
        }
      },
      "requires": [],
      "bypassesDoorShell": true
    },
    {
      "link": [
        4,
        1
      ],
      "name": "Carry Grapple Teleport (Top Position)",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              3,
              12
            ]
          ]
        }
      },
      "requires": [],
      "bypassesDoorShell": true,
      "exitCondition": {
        "leaveWithGrappleTeleport": {
          "blockPositions": [
            [
              3,
              12
            ]
          ]
        }
      }
    },
    {
      "link": [
        4,
        1
      ],
      "name": "Carry Grapple Teleport (Bottom Position)",
      "entranceCondition": {
        "comeInWithGrappleTeleport": {
          "blockPositions": [
            [
              3,
              13
            ]
          ]
        }
      },
      "requires": [],
      "bypassesDoorShell": true,
      "exitCondition": {
        "leaveWithGrappleTeleport": {
          "blockPositions": [
            [
              3,
              13
            ]
          ]
        }
      }
    },
    {
      "link": [
        4,
        2
      ],
      "name": "G-Mode",
      "notable": false,
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "any",
          "morphed": false
        }
      },
      "requires": [
        {
          "or": [
            "canTrickyJump",
            {
              "and": [
                "Gravity",
                "SpaceJump"
              ]
            }
          ]
        }
      ],
      "exitCondition": {
        "leaveWithGMode": {
          "morphed": false
        }
      },
      "note": [
        "Overload PLMs by touching the sand, then move through the speed blocks.",
        "Shoot the Puyo while crouching to increase accuracy.",
        "Avoiding the right pit is much easier without Gravity or HiJump.",
        "Standing on the edge and spin jumping to the left is much easier than a running jump.",
        "While on the left side of this platform, the Puyo to the left will start moving; carefully kill or dodge it."
      ]
    },
    {
      "link": [
        4,
        2
      ],
      "name": "G-Mode Morph",
      "notable": false,
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "any",
          "morphed": true
        }
      },
      "requires": [
        {
          "or": [
            {
              "and": [
                "h_canArtificialMorphSpringBall",
                {
                  "or": [
                    "Gravity",
                    "HiJump"
                  ]
                }
              ]
            },
            {
              "and": [
                "Gravity",
                "h_canArtificialMorphIBJ"
              ]
            },
            {
              "and": [
                "h_canArtificialMorphSpringBall",
                {
                  "or": [
                    "canTrickyJump",
                    "h_canArtificialMorphBombThings"
                  ]
                }
              ]
            }
          ]
        }
      ],
      "exitCondition": {
        "leaveWithGMode": {
          "morphed": true
        }
      },
      "note": [
        "With Gravity, or Spring Ball and HiJump, it is easiest to go through the Morph maze at the top of the room and fall into the the sand.",
        "Otherwise, the overload PLMs by touching the sand, or by bombing the speed blocks, to be able to go through to the left.",
        "Killing the Zoas with Bombs or Power Bombs will prevent them from respawning, although it is possible but tricky to dodge them with just Spring Ball."
      ]
    },
    {
      "link": [
        4,
        3
      ],
      "name": "G-Mode",
      "notable": false,
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "any",
          "morphed": false
        }
      },
      "requires": [],
      "exitCondition": {
        "leaveWithGMode": {
          "morphed": false
        }
      },
      "note": [
        "Overload PLMs by touching the sand, then move through the speed blocks.",
        "Shoot the Puyo while crouching to increase accuracy."
      ]
    },
    {
      "link": [
        4,
        3
      ],
      "name": "G-Mode Morph",
      "notable": false,
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "any",
          "morphed": true
        }
      },
      "requires": [
        {
          "or": [
            {
              "and": [
                "h_canArtificialMorphSpringBall",
                {
                  "or": [
                    "Gravity",
                    "HiJump"
                  ]
                }
              ]
            },
            {
              "and": [
                "Gravity",
                "h_canArtificialMorphIBJ"
              ]
            },
            {
              "and": [
                "h_canArtificialMorphSpringBall",
                {
                  "or": [
                    "canTrickyJump",
                    "h_canArtificialMorphBombThings"
                  ]
                }
              ]
            }
          ]
        }
      ],
      "exitCondition": {
        "leaveWithGMode": {
          "morphed": true
        }
      },
      "note": [
        "With Gravity, or Spring Ball and HiJump, it is easiest to go through the Morph maze at the top of the room and fall into the the sand.",
        "Otherwise, the overload PLMs by touching the sand, or by bombing the speed blocks, to be able to go through to the left.",
        "Killing the Zoas with Bombs or Power Bombs will prevent them from respawning, although it is possible but tricky to dodge them with just Spring Ball."
      ]
    },
    {
      "link": [
        4,
        4
      ],
      "name": "Leave with Runway",
      "requires": [],
      "exitCondition": {
        "leaveWithRunway": {
          "length": 23,
          "gentleUpTiles": 4,
          "openEnd": 1
        }
      }
    },
    {
      "link": [
        4,
        4
      ],
      "name": "Stutter Water Shinecharge, Leave Shinesparking",
      "entranceCondition": {
        "comeInRunning": {
          "speedBooster": true,
          "minTiles": 2
        }
      },
      "requires": [
        "canStutterWaterShineCharge",
        "canShinechargeMovementComplex",
        {
          "or": [
            {
              "shinespark": {
                "frames": 12
              }
            },
            {
              "and": [
                "canShinechargeMovementTricky",
                {
                  "shinespark": {
                    "frames": 3
                  }
                }
              ]
            }
          ]
        }
      ],
      "exitCondition": {
        "leaveWithSpark": {}
      },
      "unlocksDoors": [
        {
          "types": [
            "missiles",
            "super"
          ],
          "requires": []
        },
        {
          "types": [
            "powerbomb"
          ],
          "requires": [
            "never"
          ]
        }
      ]
    },
    {
      "link": [
        4,
        4
      ],
      "name": "Zoa Farm",
      "requires": [
        {
          "refill": [
            "Energy",
            "Missile",
            "Super"
          ]
        }
      ]
    },
    {
      "link": [
        4,
        4
      ],
      "name": "G-Mode Setup - Get Hit By Zoa",
      "notable": false,
      "requires": [],
      "exitCondition": {
        "leaveWithGModeSetup": {}
      },
      "note": [
        "Lure the Zoas. Jump so that they start moving horizontally while higher, use spin jumps to move horizontally faster while keeping them on screen."
      ]
    },
    {
      "link": [
        4,
        5
      ],
      "name": "G-Mode Morph Direct",
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "direct",
          "morphed": true
        }
      },
      "requires": [
        {
          "or": [
            {
              "and": [
                "Gravity",
                "h_canArtificialMorphIBJ"
              ]
            },
            {
              "and": [
                "h_canArtificialMorphSpringBall",
                {
                  "or": [
                    "Gravity",
                    "HiJump"
                  ]
                }
              ]
            }
          ]
        }
      ],
      "clearsObstacles": [
        "B"
      ],
      "note": [
        "Be careful not to touch or bomb the sand in order to grab the item before PLMs are overloaded.",
        "With bombs, kill the Zoas and they will stop spawning."
      ]
    },
    {
      "link": [
        4,
        5
      ],
      "name": "G-Mode Morph",
      "entranceCondition": {
        "comeInWithGMode": {
          "mode": "any",
          "morphed": true
        }
      },
      "requires": [
        {
          "or": [
            {
              "and": [
                "Gravity",
                "h_canArtificialMorphIBJ"
              ]
            },
            {
              "and": [
                "h_canArtificialMorphSpringBall",
                {
                  "or": [
                    "Gravity",
                    "HiJump"
                  ]
                }
              ]
            }
          ]
        }
      ],
      "note": "With bombs, kill the Zoas and they will stop spawning."
    },
    {
      "link": [
        4,
        6
      ],
      "name": "Base",
      "requires": [
        "Gravity"
      ]
    },
    {
      "link": [
        4,
        6
      ],
      "name": "Suitless Jump Assist",
      "requires": [
        "canSuitlessMaridia",
        {
          "or": [
            "canSpringBallJumpMidAir",
            "HiJump"
          ]
        }
      ]
    },
    {
      "link": [
        4,
        6
      ],
      "name": "Suitless Frozen Zoa",
      "requires": [
        "canSuitlessMaridia",
        "canUseFrozenEnemies"
      ]
    },
    {
      "link": [
        4,
        6
      ],
      "name": "Suitless Water Shinecharge",
      "entranceCondition": {
        "comeInShinecharging": {
          "length": 6,
          "openEnd": 1
        }
      },
      "requires": [
        "Morph",
        "canWaterShineCharge",
        {
          "shinespark": {
            "frames": 8
          }
        }
      ],
      "note": "Shinespark diagonally over the zoa pit or run through the speed blocks and shinespark after turning around.",
      "devNote": [
        "This is just a rough estimate of the minimum number of tiles that this runway can represent.",
        "It is designed for a skill level that won't be able to use canStutterWaterShineCharge."
      ]
    },
    {
      "link": [
        4,
        6
      ],
      "name": "Suitless Stutter Water Shinecharge",
      "entranceCondition": {
        "comeInRunning": {
          "speedBooster": true,
          "minTiles": 2
        }
      },
      "requires": [
        "Morph",
        "canStutterWaterShineCharge",
        {
          "shinespark": {
            "frames": 8
          }
        }
      ],
      "note": "Shinespark diagonally over the zoa pit or run through the speed blocks and shinespark after turning around."
    },
    {
      "link": [
        4,
        6
      ],
      "name": "Cross Room Jump Shinespark",
      "entranceCondition": {
        "comeInShinechargedJumping": {
          "framesRequired": 20
        }
      },
      "requires": [
        "Morph",
        "canCrossRoomJumpIntoWater",
        "canShinechargeMovement",
        "canMidairShinespark",
        {
          "shinespark": {
            "frames": 46,
            "excessFrames": 3
          }
        }
      ]
    },
    {
      "link": [
        4,
        6
      ],
      "name": "Cross Room Jump with Speedbooster",
      "entranceCondition": {
        "comeInJumping": {
          "speedBooster": true,
          "minTiles": 6.4375
        }
      },
      "requires": [
        "canDisableEquipment",
        "canCrossRoomJumpIntoWater"
      ],
      "note": [
        "Requires running 7 tiles with no open end in the adjacent room, as this is a peak in jump speed.",
        "Run with Speedbooster off, and turn it on after entering the room."
      ]
    },
    {
      "link": [
        4,
        6
      ],
      "name": "Bomb Grapple Jump",
      "requires": [
        "canSuitlessMaridia",
        "h_canCrouchJumpDownGrab",
        "canBombGrappleJump"
      ],
      "note": "Use the respawning Zoas to double jump up to the Morph Ball maze."
    },
    {
      "link": [
        5,
        1
      ],
      "name": "Base",
      "requires": [
        "Morph"
      ],
      "note": "If the Puyos are alive, lure the first to the right, then roll out of the hole, unmorph and fight them. Crouching while shooting may increase accuracy.",
      "devNote": "FIXME This probably shouldnt be free if the Puyos are still alive."
    },
    {
      "link": [
        5,
        1
      ],
      "name": "G-Mode Morph Exit Tunnel Before Leaving G-Mode",
      "requires": [
        {
          "obstaclesCleared": [
            "B"
          ]
        }
      ],
      "note": "If the Puyos are alive, lure the first to the right, then roll out of the hole, unmorph and fight them. Crouching while shooting may increase accuracy.",
      "devNote": "FIXME This probably shouldnt be free if the Puyos are still alive."
    },
    {
      "link": [
        5,
        4
      ],
      "name": "G-Mode Morph Exit Tunnel Before Leaving G-Mode",
      "requires": [
        {
          "obstaclesCleared": [
            "B"
          ]
        }
      ]
    },
    {
      "link": [
        5,
        6
      ],
      "name": "Base",
      "requires": [
        {
          "or": [
            "h_canUseSpringBall",
            {
              "and": [
                "Gravity",
                "h_canBombThings",
                "h_additionalBomb",
                "h_additionalBomb"
              ]
            }
          ]
        }
      ]
    },
    {
      "link": [
        5,
        6
      ],
      "name": "Suitless Bootless Mid-Air Morph",
      "requires": [
        "canSuitlessMaridia",
        "Morph",
        "canDisableEquipment"
      ],
      "note": "Jump and mid-air morph. This is much easier with Gravity and HiJump turned off."
    },
    {
      "link": [
        6,
        4
      ],
      "name": "Base",
      "requires": []
    },
    {
      "link": [
        6,
        5
      ],
      "name": "Base",
      "requires": [
        {
          "or": [
            "h_canUseSpringBall",
            {
              "and": [
                "Gravity",
                "h_canBombThings",
                "h_additionalBomb",
                "h_additionalBomb"
              ]
            }
          ]
        }
      ]
    },
    {
      "link": [
        6,
        5
      ],
      "name": "Suitless Bootless Mid-Air Morph",
      "requires": [
        "canSuitlessMaridia",
        "Morph",
        "canDisableEquipment"
      ],
      "note": "Jump and mid-air morph. This is much easier with Gravity and HiJump turned off."
    },
    {
      "link": [
        6,
        6
      ],
      "name": "Zoa Farm",
      "requires": [
        {
          "refill": [
            "Energy"
          ]
        }
      ]
    }
  ]
}