diff --git a/region/maridia/inner-green/East Pants Room.json b/region/maridia/inner-green/East Pants Room.json index fbff0c7ed..082294c7b 100644 --- a/region/maridia/inner-green/East Pants Room.json +++ b/region/maridia/inner-green/East Pants Room.json @@ -490,6 +490,25 @@ ], "flashSuitChecked": true }, + { + "link": [2, 2], + "name": "Come in Shinecharging, Crystal Spark", + "entranceCondition": { + "comeInShinecharging": { + "length": 4, + "openEnd": 0 + }, + "comesInHeated": "no" + }, + "requires": [ + "Gravity", + "h_CrystalSpark" + ], + "flashSuitChecked": true, + "blueSuitChecked": true, + "note": "Use the first half of the runway in order to avoid the Puyo jumping into Samus.", + "devNote": "It doesn't seem reasonable to use blue speed to kill the Puyo without falling through the crumbles." + }, { "id": 17, "link": [2, 2], diff --git a/region/maridia/inner-green/East Sand Hall.json b/region/maridia/inner-green/East Sand Hall.json index ddb50b87d..d3f5ac2ac 100644 --- a/region/maridia/inner-green/East Sand Hall.json +++ b/region/maridia/inner-green/East Sand Hall.json @@ -200,6 +200,23 @@ ], "flashSuitChecked": true }, + { + "link": [1, 1], + "name": "Come in Shinecharging, Crystal Spark", + "entranceCondition": { + "comeInShinecharging": { + "length": 3, + "openEnd": 0 + }, + "comesInHeated": "no" + }, + "requires": [ + "Gravity", + "h_CrystalSpark" + ], + "flashSuitChecked": true, + "blueSuitChecked": true + }, { "id": 3, "link": [1, 1], @@ -1458,6 +1475,23 @@ ], "flashSuitChecked": true }, + { + "link": [2, 2], + "name": "Come in Shinecharging, Crystal Spark", + "entranceCondition": { + "comeInShinecharging": { + "length": 3, + "openEnd": 0 + }, + "comesInHeated": "no" + }, + "requires": [ + "Gravity", + "h_CrystalSpark" + ], + "flashSuitChecked": true, + "blueSuitChecked": true + }, { "id": 39, "link": [2, 2], diff --git a/region/maridia/inner-green/Lonely Crab Room.json b/region/maridia/inner-green/Lonely Crab Room.json index 817c34cc7..75d1e4ecf 100644 --- a/region/maridia/inner-green/Lonely Crab Room.json +++ b/region/maridia/inner-green/Lonely Crab Room.json @@ -425,6 +425,90 @@ "and Samus should be in the correct position with subpixels $3FFF." ] }, + { + "link": [1, 1], + "name": "Come in Shinecharging, Crystal Spark (Short Runway)", + "entranceCondition": { + "comeInShinecharging": { + "length": 3, + "openEnd": 0 + }, + "comesInHeated": "no" + }, + "requires": [ + "Gravity", + {"or": [ + {"and": [ + "h_enemyDrops", + "h_CrystalSparkWithoutLenience" + ]}, + "h_CrystalSpark" + ]} + ], + "flashSuitChecked": true, + "blueSuitChecked": true, + "note": "Only using a small portion of the runway will ensure that the crab dies before it reaches Samus." + }, + { + "link": [1, 1], + "name": "Come in Shinecharging, Crystal Spark", + "entranceCondition": { + "comeInShinecharging": { + "length": 6, + "openEnd": 0 + }, + "comesInHeated": "no" + }, + "requires": [ + "Gravity", + "canInsaneJump", + {"or": [ + {"and": [ + "h_enemyDrops", + "h_CrystalSparkWithoutLenience" + ]}, + "h_CrystalSpark" + ]} + ], + "flashSuitChecked": true, + "blueSuitChecked": true, + "note": "Samus is only able to use about half of the runway and be able to Crystal Spark before the crab reaches her." + }, + { + "link": [1, 1], + "name": "Crystal Spark (In-Room)", + "requires": [ + "Gravity", + {"or": [ + {"canShineCharge": {"usedTiles": 12, "openEnd": 0}}, + {"and": [ + {"or": [ + {"doorUnlockedAtNode": 1}, + {"doorUnlockedAtNode": 2} + ]}, + {"canShineCharge": {"usedTiles": 13, "openEnd": 0}} + ]}, + {"and": [ + {"doorUnlockedAtNode": 1}, + {"doorUnlockedAtNode": 2}, + {"canShineCharge": {"usedTiles": 14, "openEnd": 0}} + ]} + ]}, + {"or": [ + {"and": [ + "h_enemyDrops", + "h_CrystalSparkWithoutLenience" + ]}, + "h_CrystalSpark" + ]} + ], + "unlocksDoors": [ + {"nodeId": 1, "types": ["ammo"], "requires": []}, + {"nodeId": 2, "types": ["ammo"], "requires": []} + ], + "flashSuitChecked": true, + "blueSuitChecked": true + }, { "id": 5, "link": [1, 1], @@ -1193,6 +1277,29 @@ "and Samus should be in the correct position with subpixels $3FFF." ] }, + { + "link": [2, 2], + "name": "Come in Shinecharging, Crystal Spark", + "entranceCondition": { + "comeInShinecharging": { + "length": 12, + "openEnd": 0 + }, + "comesInHeated": "no" + }, + "requires": [ + "Gravity", + {"or": [ + {"and": [ + "h_enemyDrops", + "h_CrystalSparkWithoutLenience" + ]}, + "h_CrystalSpark" + ]} + ], + "flashSuitChecked": true, + "blueSuitChecked": true + }, { "id": 30, "link": [2, 2], @@ -1581,6 +1688,23 @@ "The `h_getBlueSpeedMaxRunway` requirement is to satisfy the tests,", "since we don't have a way to represent that the temporary blue originates from the startsWithShineCharge." ] + }, + { + "link": [4, 2], + "name": "Crystal Spark", + "startsWithShineCharge": true, + "requires": [ + {"shineChargeFrames": 0}, + {"or": [ + {"and": [ + "h_enemyDrops", + "h_underwaterCrystalSparkWithoutLenience" + ]}, + "h_underwaterCrystalSpark" + ]} + ], + "flashSuitChecked": true, + "blueSuitChecked": true } ], "notables": [], diff --git a/region/maridia/inner-green/Oasis.json b/region/maridia/inner-green/Oasis.json index f2fb538cb..6fcb0ae88 100644 --- a/region/maridia/inner-green/Oasis.json +++ b/region/maridia/inner-green/Oasis.json @@ -3279,6 +3279,35 @@ "clearsObstacles": ["A"], "flashSuitChecked": true }, + { + "link": [5, 5], + "name": "Crystal Spark (In-Room)", + "requires": [ + "Gravity", + {"or": [ + {"canShineCharge": {"usedTiles": 12, "openEnd": 0}}, + {"and": [ + {"or": [ + {"doorUnlockedAtNode": 1}, + {"doorUnlockedAtNode": 2} + ]}, + {"canShineCharge": {"usedTiles": 13, "openEnd": 0}} + ]}, + {"and": [ + {"doorUnlockedAtNode": 1}, + {"doorUnlockedAtNode": 2}, + {"canShineCharge": {"usedTiles": 14, "openEnd": 0}} + ]} + ]}, + "h_CrystalSpark" + ], + "unlocksDoors": [ + {"nodeId": 1, "types": ["ammo"], "requires": []}, + {"nodeId": 2, "types": ["ammo"], "requires": []} + ], + "flashSuitChecked": true, + "blueSuitChecked": true + }, { "id": 61, "link": [5, 6], @@ -3431,6 +3460,24 @@ "since we don't have a way to represent that the temporary blue originates from the startsWithShineCharge." ] }, + { + "link": [7, 1], + "name": "Crystal Spark", + "startsWithShineCharge": true, + "requires": [ + {"shineChargeFrames": 0}, + {"or": [ + {"and": [ + "Gravity", + "h_CrystalSpark" + ]}, + "h_underwaterCrystalSpark" + ]} + ], + "clearsObstacles": ["A"], + "flashSuitChecked": true, + "blueSuitChecked": true + }, { "id": 32, "link": [7, 2], @@ -3618,6 +3665,24 @@ "since we don't have a way to represent that the temporary blue originates from the startsWithShineCharge." ] }, + { + "link": [8, 2], + "name": "Crystal Spark", + "startsWithShineCharge": true, + "requires": [ + {"shineChargeFrames": 0}, + {"or": [ + {"and": [ + "Gravity", + "h_CrystalSpark" + ]}, + "h_underwaterCrystalSpark" + ]} + ], + "clearsObstacles": ["A"], + "flashSuitChecked": true, + "blueSuitChecked": true + }, { "id": 142, "link": [8, 4], diff --git a/region/maridia/inner-green/Shaktool Room.json b/region/maridia/inner-green/Shaktool Room.json index bccc8f63c..299453a85 100644 --- a/region/maridia/inner-green/Shaktool Room.json +++ b/region/maridia/inner-green/Shaktool Room.json @@ -249,6 +249,22 @@ ], "flashSuitChecked": true }, + { + "link": [1, 1], + "name": "Crystal Spark", + "requires": [ + {"obstaclesCleared": ["A", "B"]}, + {"or": [ + "Gravity", + "canWaterShineCharge" + ]}, + "h_shinechargeMaxRunway", + "h_CrystalSpark" + ], + "flashSuitChecked": true, + "blueSuitChecked": true, + "note": "Time the shinecharge for when the water is low." + }, { "id": 6, "link": [1, 1], diff --git a/region/maridia/inner-green/Spring Ball Room.json b/region/maridia/inner-green/Spring Ball Room.json index 803f5df2b..24977ed73 100644 --- a/region/maridia/inner-green/Spring Ball Room.json +++ b/region/maridia/inner-green/Spring Ball Room.json @@ -62,6 +62,22 @@ ], "flashSuitChecked": true }, + { + "link": [1, 1], + "name": "Come in Shinecharging, Crystal Spark", + "entranceCondition": { + "comeInShinecharging": { + "length": 6, + "openEnd": 0 + }, + "comesInHeated": "no" + }, + "requires": [ + "h_CrystalSpark" + ], + "flashSuitChecked": true, + "blueSuitChecked": true + }, { "id": 3, "link": [1, 2], diff --git a/region/maridia/inner-green/West Sand Hall.json b/region/maridia/inner-green/West Sand Hall.json index 7c26689a5..fdcd280ee 100644 --- a/region/maridia/inner-green/West Sand Hall.json +++ b/region/maridia/inner-green/West Sand Hall.json @@ -104,6 +104,23 @@ ], "flashSuitChecked": true }, + { + "link": [1, 1], + "name": "Come in Shinecharging, Crystal Spark", + "entranceCondition": { + "comeInShinecharging": { + "length": 3, + "openEnd": 0 + }, + "comesInHeated": "no" + }, + "requires": [ + "Gravity", + "h_CrystalSpark" + ], + "flashSuitChecked": true, + "blueSuitChecked": true + }, { "id": 3, "link": [1, 2], @@ -858,6 +875,24 @@ ], "flashSuitChecked": true }, + { + "link": [2, 2], + "name": "Come in Shinecharging, Crystal Spark", + "entranceCondition": { + "comeInShinecharging": { + "length": 3, + "openEnd": 0 + }, + "comesInHeated": "no" + }, + "requires": [ + "Gravity", + "canInsaneJump", + "h_CrystalSpark" + ], + "flashSuitChecked": true, + "blueSuitChecked": true + }, { "id": 29, "link": [2, 2],