Skip to content

Commit 1849e94

Browse files
authored
Merge pull request #2203 from blkerby/amphitheatre
Amphitheatre CF strats and a few other refinements
2 parents 6aa7881 + f522414 commit 1849e94

2 files changed

Lines changed: 104 additions & 17 deletions

File tree

region/lowernorfair/east/Amphitheatre.json

Lines changed: 102 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,7 @@
180180
"from": 3,
181181
"to": [
182182
{"id": 1},
183+
{"id": 3},
183184
{"id": 4},
184185
{"id": 5}
185186
]
@@ -189,7 +190,8 @@
189190
"to": [
190191
{"id": 1},
191192
{"id": 2},
192-
{"id": 3}
193+
{"id": 3},
194+
{"id": 4}
193195
]
194196
},
195197
{
@@ -652,22 +654,17 @@
652654
"canCarefulJump"
653655
]}
654656
]},
655-
{"heatFrames": 140},
656-
{"or": [
657-
"canResetFallSpeed",
658-
"canPreciseWalljump",
659-
{"and": [
660-
{"heatFrames": 60},
661-
{"acidFrames": 60}
662-
]}
663-
]},
664-
{"heatFrames": 330},
665-
{"acidFrames": 330}
657+
{"heatFrames": 320},
658+
{"acidFrames": 195}
666659
],
667660
"note": [
668661
"Dive into the acid to the left of the first floating platform to quickly sink to the bottom of the room.",
669662
"It is possible to jump directly over the pirate at the bottom of the ramp directly to the gap between platforms.",
670-
"Falling in this way will land between platforms at the bottom of the room unless Samus slows or catches herself on the way down."
663+
"Falling in this way will land between the platforms at the bottom of the room."
664+
],
665+
"devNote": [
666+
"It is faster to fall all the way to the bottom and then jump onto the platform to the left,",
667+
"than to morph/unmorph to reset fall speed to reach it directly."
671668
]
672669
},
673670
{
@@ -817,6 +814,31 @@
817814
],
818815
"devNote": ["This strat is only used to avoid walljumping."]
819816
},
817+
{
818+
"link": [3, 3],
819+
"name": "Crystal Flash (In Acid)",
820+
"requires": [
821+
{"obstaclesNotCleared": ["A"]},
822+
{"heatFrames": 170},
823+
{"acidFrames": 170},
824+
"canHeatedCrystalFlash",
825+
"h_heatedAcidCrystalFlashRefill",
826+
{"heatFrames": 20},
827+
{"acidFrames": 20},
828+
{"or": [
829+
"Gravity",
830+
{"and": [
831+
{"heatFrames": 5},
832+
{"acidFrames": 5}
833+
]}
834+
]}
835+
],
836+
"devNote": [
837+
"We list the requirements explicitly rather than using the helper `h_heatedAcidCrystalFlash`",
838+
"to reflect that it's possible to save some heat/acid frames with a soft morph while landing;",
839+
"this makes the difference in being able to make the CF with 3 tanks with Gravity."
840+
]
841+
},
820842
{
821843
"id": 45,
822844
"link": [3, 4],
@@ -897,8 +919,8 @@
897919
{"or": [
898920
{"and": [
899921
"Gravity",
900-
{"heatFrames": 120},
901-
{"acidFrames": 120}
922+
{"heatFrames": 105},
923+
{"acidFrames": 105}
902924
]},
903925
{"and": [
904926
{"heatFrames": 170},
@@ -908,6 +930,50 @@
908930
],
909931
"note": "Avoid the pirate while moving through the acid to get closer to the wall."
910932
},
933+
{
934+
"link": [3, 5],
935+
"name": "Kill Pirate and Crystal Flash",
936+
"requires": [
937+
{"notable": "Reverse Acid Dive"},
938+
{"obstaclesNotCleared": ["A"]},
939+
"canSuitlessLavaDive",
940+
{"or": [
941+
{"and": [
942+
"canTrickyDodgeEnemies",
943+
{"enemyKill": {
944+
"enemies": [["Yellow Space Pirate (standing)"]],
945+
"explicitWeapons": ["Super", "Charge+Plasma"]
946+
}}
947+
]},
948+
{"enemyKill": {
949+
"enemies": [["Yellow Space Pirate (standing)"]],
950+
"explicitWeapons": ["Charge+Ice+Wave+Plasma"]
951+
}},
952+
{"and": [
953+
"Gravity",
954+
{"enemyKill": {
955+
"enemies": [["Yellow Space Pirate (standing)"]],
956+
"explicitWeapons": ["ScrewAttack"]
957+
}}
958+
]}
959+
]},
960+
{"or": [
961+
{"and": [
962+
"Gravity",
963+
{"heatFrames": 80},
964+
{"acidFrames": 80}
965+
]},
966+
{"and": [
967+
{"heatFrames": 130},
968+
{"acidFrames": 130}
969+
]}
970+
]},
971+
"h_heatedAcidCrystalFlash",
972+
{"heatFrames": 35},
973+
{"acidFrames": 35}
974+
],
975+
"note": "Kill the Pirate and perform a Crystal Flash."
976+
},
911977
{
912978
"id": 26,
913979
"link": [4, 1],
@@ -928,7 +994,11 @@
928994
"Land on the fourth platform from the top and build some speed to spacejump across straight to the door.",
929995
"The optimal platform can be hit by simpily holding right when entering the acid."
930996
],
931-
"devNote": "Includes a little bit extra frame count to drop down two platforms first."
997+
"devNote": [
998+
"Includes a little bit extra frame count to drop down two platforms first.",
999+
"FIXME: this lower platform could be modeled more cleanly as a separate junction node;",
1000+
"it would be useful as another place to Crystal Flash when traversing the room left-to-right."
1001+
]
9321002
},
9331003
{
9341004
"id": 27,
@@ -1043,6 +1113,22 @@
10431113
],
10441114
"note": "Jump off the platform to the left with low horizontal speed and hold left to avoid landing on any pirates."
10451115
},
1116+
{
1117+
"link": [4, 4],
1118+
"name": "Crystal Flash (Acidless)",
1119+
"requires": [
1120+
{"obstaclesCleared": ["A"]},
1121+
"h_heatedCrystalFlash"
1122+
],
1123+
"devNote": [
1124+
"This requires acting quickly enough that the acid does not catch Samus,",
1125+
"but this is not difficult to do.",
1126+
"A Crystal Flash could also be performed in acid here, while traversing the room right-to-left,",
1127+
"but it would have no benefit compared to Crystal Flashing on room entry and taking the 2->3 path.",
1128+
"FIXME: add another Crystal Flash strat at a junction two platforms lower,",
1129+
"which has a more significant movement requirement to avoid getting caught by the acid."
1130+
]
1131+
},
10461132
{
10471133
"id": 31,
10481134
"link": [5, 1],

tests/asserts/keywords.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,8 @@ def check_shinecharge_req(req):
332332

333333
def check_heat_req(req):
334334
if isinstance(req, str):
335-
if req in ["h_heatProof", "h_heatedCrystalFlash", "h_heatedLavaCrystalFlash", "h_LowerNorfairElevatorDownwardFrames",
335+
if req in ["h_heatProof", "h_heatedCrystalFlash", "h_heatedLavaCrystalFlash", "h_heatedAcidCrystalFlash",
336+
"h_LowerNorfairElevatorDownwardFrames",
336337
"h_LowerNorfairElevatorUpwardFrames", "h_MainHallElevatorFrames", "h_heatedGreenGateGlitch",
337338
"h_heatedDirectGModeLeaveSameDoor", "h_heatedIndirectGModeOpenSameDoor",
338339
"h_heatedGModeOpenDifferentDoor", "h_heatedGModeOffCameraDoor", "h_heatedGModePauseAbuse"]:

0 commit comments

Comments
 (0)