Skip to content

Commit 17da43d

Browse files
authored
Merge branch 'master' into notable-2
2 parents 5540122 + e243088 commit 17da43d

39 files changed

Lines changed: 709 additions & 187 deletions

helpers.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,18 @@
3333
"requires": [ "Gravity" ],
3434
"devNote": "In the original game Gravity provides full immunity, but some randomizers also require Varia."
3535
},
36+
{
37+
"name": "h_fullEnemyDamageReduction",
38+
"requires": [
39+
"Gravity"
40+
],
41+
"note": [
42+
"Suit requirements in order to have 75% damage reduction from enemies."
43+
],
44+
"devNote": [
45+
"In the vanilla game, Gravity alone provides 75% damage reduction, but some randomizer may require both suits."
46+
]
47+
},
3648
{
3749
"name": "h_AllItemsSpawned",
3850
"requires": [ "never" ],

logicalRequirements.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -354,6 +354,23 @@ __Example:__
354354
]}
355355
```
356356

357+
#### resourceMaxCapacity object
358+
A `resourceMaxCapacity` object represents the need for Samus to have a capacity that does not exceed a set amount of a specific resource. It can have the following properties:
359+
* _type:_ The type of resource. Can have the following values:
360+
* Missile
361+
* Super
362+
* PowerBomb
363+
* RegularEnergy
364+
* ReserveEnergy
365+
* _count:_ The amount of capacity that Samus must not exceed.
366+
367+
A `resourceMaxCapacity` requirement generally includes an implicit requirement of `canRiskPermanentLossOfAccess`. In some randomizer contexts, this may be unnecessary, for example if it is known that the player cannot have collected items that would exceed the expected capacity, or if it is possible for the player to disable the extra items.
368+
369+
__Example:__
370+
```json
371+
{"resourceMaxCapacity": [{"type": "RegularEnergy", "count": 299}]}
372+
```
373+
357374
#### resourceAvailable object
358375
A `resourceAvailable` object represents the need for Samus to be holding at least a set amount of a specific resource. It has the following properties:
359376
* _type:_ The type of resource. Can have the following values:

region/brinstar/green/Brinstar Reserve Tank Room.json

Lines changed: 5 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -362,24 +362,17 @@
362362
{
363363
"id": 16,
364364
"link": [3, 4],
365-
"name": "Hole-in-One",
365+
"name": "Screw Attack, Tunnel Crawl",
366366
"requires": [
367-
{"notable": "Hole-in-One"},
368367
"Morph",
369368
"ScrewAttack",
370-
{"or": [
371-
"canTunnelCrawl",
372-
{"and": [
373-
"canTwoTileSqueeze",
374-
"canTrickyJump"
375-
]}
376-
]}
369+
"canTunnelCrawl"
377370
],
378371
"collectsItems": [3],
379372
"flashSuitChecked": true,
380373
"note": [
381-
"A single very precise jump into the bomb blocks can break both sets of blocks with screw attack. Obtaining the item requires morph, so this strat has no soft lock risk.",
382-
"Alternatively, tunnel crawl through to break both blocks with multiple, less precise jumps."
374+
"Tunnel crawl with Screw Attack to break the bomb blocks.",
375+
"With a very precise jump and aim down, it is possible to jump deep enough into where the first block was in order to only require a turnaround jump, but it's not easier."
383376
]
384377
},
385378
{
@@ -392,16 +385,7 @@
392385
"flashSuitChecked": true
393386
}
394387
],
395-
"notables": [
396-
{
397-
"id": 1,
398-
"name": "Hole-in-One",
399-
"note": [
400-
"A single very precise jump into the bomb blocks can break both sets of blocks with screw attack. Obtaining the item requires morph, so this strat has no soft lock risk.",
401-
"Alternatively, tunnel crawl through to break both blocks with multiple, less precise jumps."
402-
]
403-
}
404-
],
388+
"notables": [],
405389
"nextStratId": 19,
406390
"nextNotableId": 2
407391
}

region/brinstar/green/Early Supers Room.json

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -245,12 +245,12 @@
245245
"link": [1, 1],
246246
"name": "Leave With Spark To The Left",
247247
"requires": [
248-
{"notable": "Leave With Spark To The Left"},
249248
{"obstaclesNotCleared": ["A"]},
250249
"h_canCrouchJumpDownGrab",
251250
{"canShineCharge": {"usedTiles": 17, "openEnd": 0}},
252251
"canShinechargeMovementTricky",
253252
"canQuickDrop",
253+
{"shineChargeFrames": 175},
254254
{"shinespark": {"frames": 1}}
255255
],
256256
"exitCondition": {
@@ -830,15 +830,6 @@
830830
}
831831
],
832832
"notables": [
833-
{
834-
"id": 1,
835-
"name": "Leave With Spark To The Left",
836-
"note": [
837-
"Gain a shinecharge on the long, lower platform in the screen above, then carry it left and down.",
838-
"Use crumble quick drops, land on the floor at the bottom, spin jump left into the doorway, and activate the spark.",
839-
"The required movement here is very precise, as the 180 shinecharge frames is only barely enough."
840-
]
841-
},
842833
{
843834
"id": 2,
844835
"name": "Mockball",

region/brinstar/green/Etecoon Energy Tank Room.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1363,7 +1363,7 @@
13631363
"name": "Beetom Tricky Dodge (Right to Left)",
13641364
"requires": [
13651365
{"notable": "Beetom Tricky Dodge"},
1366-
"canTrickyJump"
1366+
"canTrickyDodgeEnemies"
13671367
],
13681368
"clearsObstacles": ["A"],
13691369
"flashSuitChecked": true,
@@ -1555,7 +1555,7 @@
15551555
"name": "Beetom Tricky Dodge (Left to Right)",
15561556
"requires": [
15571557
{"notable": "Beetom Tricky Dodge"},
1558-
"canTrickyJump",
1558+
"canTrickyDodgeEnemies",
15591559
{"obstaclesNotCleared": ["B"]}
15601560
],
15611561
"clearsObstacles": ["A"],

region/brinstar/kraid/Warehouse Kihunter Room.json

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -698,7 +698,6 @@
698698
"link": [5, 2],
699699
"name": "Bottom Spark Out",
700700
"requires": [
701-
{"notable": "Bottom Spark Out"},
702701
"canShinechargeMovementComplex",
703702
{"obstaclesCleared": ["C"]},
704703
{"obstaclesNotCleared": ["D"]},
@@ -856,11 +855,6 @@
856855
}
857856
],
858857
"notables": [
859-
{
860-
"id": 2,
861-
"name": "Bottom Spark Out",
862-
"note": "Charge a spark, then break the shot blocks, drop through, and spark out the bottom right door."
863-
},
864858
{
865859
"id": 4,
866860
"name": "Speedball",

region/brinstar/pink/Big Pink.json

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2766,7 +2766,6 @@
27662766
"link": [13, 7],
27672767
"name": "Crystal Flash Standup - Super Block",
27682768
"requires": [
2769-
{"notable": "Crystal Flash Standup - Super Block"},
27702769
"h_canBombThings",
27712770
"h_canCrystalFlash",
27722771
{"ammo": {"type": "Super", "count": 1}}
@@ -3282,11 +3281,6 @@
32823281
"Requires pixel precision, although there are several pixels that work. The camera must be fully scrolled to the right, which may require going far left and back."
32833282
]
32843283
},
3285-
{
3286-
"id": 12,
3287-
"name": "Crystal Flash Standup - Super Block",
3288-
"note": "Crystal Flash in the morph tunnel to force a standup, making it possible to shoot the super block from the left while it's on-screen."
3289-
},
32903284
{
32913285
"id": 13,
32923286
"name": "Wall Ice Clip X-Ray Climb",

region/brinstar/pink/Pink Brinstar Hopper Room.json

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -839,6 +839,144 @@
839839
"note": "Come in with a spring ball bounce after gaining speed on a remote runway using at least 34 tiles.",
840840
"devNote": "This requires extra run speed of at least $6.0."
841841
},
842+
{
843+
"link": [1, 3],
844+
"name": "Side Platform Cross Room Jump",
845+
"entranceCondition": {
846+
"comeInWithSidePlatform": {
847+
"platforms": [
848+
{
849+
"minHeight": 1,
850+
"maxHeight": 1,
851+
"minTiles": 17,
852+
"speedBooster": true,
853+
"obstructions": [[1, 0]],
854+
"requires": [
855+
"HiJump"
856+
],
857+
"note": ["This applies to Warehouse Entrance."]
858+
},
859+
{
860+
"minHeight": 2,
861+
"maxHeight": 2,
862+
"minTiles": 11.4375,
863+
"speedBooster": true,
864+
"obstructions": [[1, 0]],
865+
"requires": [
866+
"HiJump"
867+
],
868+
"note": ["This applies to Ridley Tank Room, Halfie Climb Room, and Dust Torizo Room."],
869+
"detailNote": [
870+
"This has a 2-frame window for the jump.",
871+
"Getting the jump on the last frame may requiring quickly aiming down (between 1 and 3 frames after the jump)."
872+
]
873+
},
874+
{
875+
"minHeight": 3,
876+
"maxHeight": 3,
877+
"minTiles": 11.4375,
878+
"speedBooster": true,
879+
"obstructions": [[1, 0]],
880+
"requires": [
881+
"HiJump",
882+
"canTrickyJump"
883+
],
884+
"note": ["This applies to Mickey Mouse Room."],
885+
"detailNote": [
886+
"Avoid backing into the corner; press towards it and turn around.",
887+
"It helps to advance 4 pixels by performing 2 arm pumps (press and release of an angle button) while running.",
888+
"This will give a 2-frame window for the jump, while without the arm pumps the jump would be frame perfect.",
889+
"Getting the jump on the last frame requires quickly aiming down (between 1 and 5 frames after the jump)."
890+
]
891+
},
892+
{
893+
"minHeight": 2,
894+
"maxHeight": 2,
895+
"minTiles": 45,
896+
"speedBooster": true,
897+
"obstructions": [[2, 0]],
898+
"requires": [
899+
{"or": [
900+
"canMomentumConservingMorph",
901+
"canInsaneJump"
902+
]}
903+
],
904+
"note": ["This applies to Waterway Energy Tank Room."],
905+
"devNote": [
906+
"This can be done most easily with a ceiling mockball through the transition:",
907+
"this has a 5-frame window for the jump, and between a 1-frame and 5-frame window for the morph,",
908+
"with later jumps giving the larger windows for the morph.",
909+
"Without Morph, it is possible to jump directly through the door with a last-frame jump."
910+
]
911+
},
912+
{
913+
"minHeight": 2,
914+
"maxHeight": 2,
915+
"minTiles": 45,
916+
"speedBooster": true,
917+
"obstructions": [[3, 0]],
918+
"requires": [
919+
{"or": [
920+
"canMomentumConservingMorph",
921+
{"and": [
922+
"canInsaneJump",
923+
"canMomentumConservingTurnaround"
924+
]}
925+
]}
926+
],
927+
"note": ["This applies to Statues Hallway."],
928+
"detailNote": [
929+
"The momentum-conserving turnaround version requires a last-frame jump, with a 3-frame window for the turnaround;",
930+
"the first of the possible frames for the turnaround requires a precise down-grab onto the Grapple block (4-frame window)."
931+
]
932+
},
933+
{
934+
"minHeight": 3,
935+
"maxHeight": 3,
936+
"minTiles": 39.4375,
937+
"speedBooster": true,
938+
"obstructions": [[3, 0]],
939+
"requires": [
940+
"canMomentumConservingMorph"
941+
],
942+
"note": ["This applies to Flyway."]
943+
},
944+
{
945+
"minHeight": 2,
946+
"maxHeight": 2,
947+
"minTiles": 45,
948+
"speedBooster": true,
949+
"obstructions": [[4, 0]],
950+
"requires": [
951+
"canMomentumConservingMorph",
952+
"canInsaneJump",
953+
"canInsaneMidAirMorph"
954+
],
955+
"note": ["This applies to Baby Kraid Room."]
956+
},
957+
{
958+
"minHeight": 3,
959+
"maxHeight": 3,
960+
"minTiles": 39.4375,
961+
"speedBooster": true,
962+
"obstructions": [[3, 2]],
963+
"requires": [
964+
"canTrickyDashJump"
965+
],
966+
"note": ["This applies to Metal Pirates Room."]
967+
}
968+
]
969+
}
970+
},
971+
"requires": [],
972+
"wallJumpAvoid": true,
973+
"flashSuitChecked": true,
974+
"devNote": [
975+
"Variations involving a spring ball jump are not included,",
976+
"since a spring ball jump can be done using a 1-tile runway connected to the door.",
977+
"Likewise, jumping up with HiJump and Speed Booster with a 2-tile runway is already covered."
978+
]
979+
},
842980
{
843981
"id": 34,
844982
"link": [1, 3],
@@ -1308,6 +1446,7 @@
13081446
"requires": [
13091447
{"notable": "Shinespark to Ride the Elevator"},
13101448
"canHorizontalShinespark",
1449+
"canUseSpeedEchoes",
13111450
{"shinespark": {"frames": 1, "excessFrames": 1}}
13121451
],
13131452
"clearsObstacles": ["B"],
@@ -1324,6 +1463,7 @@
13241463
{"shineChargeFrames": 45},
13251464
{"notable": "Shinespark to Ride the Elevator"},
13261465
"canHorizontalShinespark",
1466+
"canUseSpeedEchoes",
13271467
{"shinespark": {"frames": 1, "excessFrames": 1}}
13281468
],
13291469
"clearsObstacles": ["B"],
@@ -1340,6 +1480,7 @@
13401480
"requires": [
13411481
{"notable": "Shinespark to Ride the Elevator"},
13421482
"canHorizontalShinespark",
1483+
"canUseSpeedEchoes",
13431484
{"shinespark": {"frames": 15, "excessFrames": 6}}
13441485
],
13451486
"clearsObstacles": ["B"],
@@ -1352,6 +1493,7 @@
13521493
"requires": [
13531494
{"notable": "Shinespark to Ride the Elevator"},
13541495
"canHorizontalShinespark",
1496+
"canUseSpeedEchoes",
13551497
{"useFlashSuit": {}},
13561498
{"shinespark": {"frames": 1, "excessFrames": 1}}
13571499
],

0 commit comments

Comments
 (0)