Skip to content

Commit 9233ecc

Browse files
committed
Early Supers side platform and blue space jump speedball
1 parent 7308f2d commit 9233ecc

4 files changed

Lines changed: 127 additions & 5 deletions

File tree

region/brinstar/green/Early Supers Room.json

Lines changed: 78 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -556,11 +556,86 @@
556556
"devNote": [
557557
"Slightly higher run speeds can work but with greater difficulty.",
558558
"FIXME: comeInGettingBlueSpeed is not technically the right entrance condition, since the jump needs to happen in the other room;",
559-
"we ignore this for now since it makes less than a tile of difference to the runway in the other room.",
560-
"At some point we should support entrance conditions for entering spinning with upward momentum (possibly from disconnected runways like in Dust Torizo Room);",
561-
"coming in with a blue Space Jump could also work."
559+
"we ignore this for now since it makes less than a tile of difference to the runway in the other room."
562560
]
563561
},
562+
{
563+
"link": [2, 1],
564+
"name": "Blue Space Jump Speedball, Leave With Temporary Blue",
565+
"entranceCondition": {
566+
"comeInBlueSpaceJumping": {
567+
"minExtraRunSpeed": "$0.E",
568+
"maxExtraRunSpeed": "$2.1"
569+
}
570+
},
571+
"requires": [
572+
"canSpeedball",
573+
"canChainTemporaryBlue",
574+
"canInsaneJump"
575+
],
576+
"exitCondition": {
577+
"leaveWithTemporaryBlue": {}
578+
},
579+
"unlocksDoors": [{"types": ["ammo"], "requires": []}],
580+
"note": "Gain blue speed in the other room, Space Jump through the transition, then speedball under the shutters."
581+
},
582+
{
583+
"link": [2, 1],
584+
"name": "Side Platform Speedball, Leave With Temporary Blue",
585+
"entranceCondition": {
586+
"comeInWithSidePlatform": {
587+
"platforms": [
588+
{
589+
"minHeight": 1,
590+
"maxHeight": 1,
591+
"minTiles": 16,
592+
"speedBooster": true,
593+
"obstructions": [[1, 0]],
594+
"note": ["This applies to Lava Dive."]
595+
},
596+
{
597+
"minHeight": 2,
598+
"maxHeight": 2,
599+
"minTiles": 27.4375,
600+
"speedBooster": true,
601+
"obstructions": [[1, 0]],
602+
"note": ["This applies to Dust Torizo Room and Noob Bridge."]
603+
},
604+
{
605+
"minHeight": 3,
606+
"maxHeight": 3,
607+
"minTiles": 15.4375,
608+
"speedBooster": true,
609+
"obstructions": [[1, 0]],
610+
"requires": [
611+
"HiJump",
612+
{"getBlueSpeed": {"usedTiles": 14, "openEnd": 1}}
613+
],
614+
"note": ["This applies to Botwoon's Room."]
615+
},
616+
{
617+
"minHeight": 3,
618+
"maxHeight": 3,
619+
"minTiles": 28.2472,
620+
"speedBooster": true,
621+
"obstructions": [[1, 0]],
622+
"note": ["This applies to Double Chamber."]
623+
}
624+
]
625+
}
626+
},
627+
"requires": [
628+
{"getBlueSpeed": {"usedTiles": 15, "openEnd": 1}},
629+
"canSpeedball",
630+
"canChainTemporaryBlue",
631+
"canInsaneJump"
632+
],
633+
"exitCondition": {
634+
"leaveWithTemporaryBlue": {}
635+
},
636+
"unlocksDoors": [{"types": ["ammo"], "requires": []}],
637+
"note": "Gain blue speed in the other room, jump through the transition, then speedball under the shutters."
638+
},
564639
{
565640
"id": 22,
566641
"link": [2, 1],

schema/m3-room.schema.json

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,25 @@
189189
}
190190
}
191191
},
192+
"comeInBlueSpaceJumping": {
193+
"type": "object",
194+
"title": "Come In Space Jumping",
195+
"description": "Represents that Samus must come in with blue speed using Space Jump to jump through the bottom of this door.",
196+
"required": [],
197+
"additionalProperties": false,
198+
"properties": {
199+
"minExtraRunSpeed": {
200+
"type": "string",
201+
"pattern": "^\\$[0-9|A-F]\\.[0-9|A-F]+$",
202+
"description": "Minimum extra run speed (in hexadecimal) which will satisfy this condition."
203+
},
204+
"maxExtraRunSpeed": {
205+
"type": "string",
206+
"pattern": "^\\$[0-9|A-F]\\.[0-9|A-F]+$",
207+
"description": "Maximum extra run speed (in hexadecimal) which will satisfy this condition."
208+
}
209+
}
210+
},
192211
"comeInShinecharging": {
193212
"type": "object",
194213
"title": "Come in Shinecharging",
@@ -883,6 +902,7 @@
883902
{"required": ["comeInRunning"]},
884903
{"required": ["comeInJumping"]},
885904
{"required": ["comeInSpaceJumping"]},
905+
{"required": ["comeInBlueSpaceJumping"]},
886906
{"required": ["comeInShinecharging"]},
887907
{"required": ["comeInGettingBlueSpeed"]},
888908
{"required": ["comeInShinecharged"]},

strats.md

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -617,6 +617,7 @@ In all strats with an `entranceCondition`, the `from` node of the strat must be
617617
- _comeInRunning_: This indicates that Samus must run into the room, with speed in a certain range.
618618
- _comeInJumping_: This indicates that Samus must run and jump just before hitting the transition, with speed in a certain range.
619619
- _comeInSpaceJumping_: This indicates that Samus must Space Jump through the bottom of the doorway.
620+
- _comeInBlueSpaceJumping_: This indicates that Samus must Space Jump through the bottom of the doorway while having blue speed.
620621
- _comeInShinecharging_: This indicates that Samus must run into the room with enough space to complete a shinecharge.
621622
- _comeInShinecharged_: This indicates that Samus must enter the room with a shinecharge.
622623
- _comeInShinechargedJumping_: This indicates that Samus must jump into the the room with a shinecharge.
@@ -766,6 +767,30 @@ A `comeInSpaceJumping` entrance condition must match with a `leaveSpaceJumping`
766767
}
767768
```
768769

770+
### Come In Blue Space Jumping
771+
772+
A `comeInBlueSpaceJumping` entrance condition indicates that Samus must come in with a Space Jump through the bottom of the doorway, while having blue speed, applicable to horizontal transitions. It has the following properties:
773+
774+
- _minExtraRunSpeed_: The minimum extra run speed (as a hexadecimal string) needed. This only needs to be specified if something would prevent the strat from working at too low of a speed.
775+
- _maxExtraRunSpeed_: The maximum extra run speed (as a hexadecimal string) needed. This only needs to be specified if something would prevent the strat from working at too high of a speed.
776+
777+
A `comeInBlueSpaceJumping` entrance condition must match with a `leaveSpaceJumping` on the other side of the door, with the following requirements:
778+
- The `blue` property of the matching `leaveSpaceJumping` must be "yes" or "any".
779+
- `SpeedBooster` and `SpaceJump` item requirements.
780+
- There must exist a possible value of extra run speed satisfying any applicable constraints, including any `minExtraRunSpeed` or `maxExtraRunSpeed` properties in the entrance condition and/or exit condition, along with implicit constraints based on shortcharge skill and the effective runway length of the `remoteRunway` in the exit condition (see the [blue run speed table](#blue-run-speed-table)).
781+
782+
```json
783+
{
784+
"name": "Come In Blue Space Jumping",
785+
"entranceCondtion": {
786+
"comeInBlueSpinning": {
787+
"maxExtraRunSpeed": "$2.1"
788+
}
789+
},
790+
"requires": []
791+
}
792+
```
793+
769794
### Come In Shinecharging
770795

771796
A `comeInShinecharging` entrance condition represents the need for Samus to run into the room with enough space to complete a shinecharge. It has the following properties describing the geometry of the runway in the current room which can be used to help complete the shinecharge (see [runway geometry](#runway-geometry) above for details):
@@ -1079,7 +1104,7 @@ A `comeInSpinning` entrance condition must match with a `leaveSpinning` or `leav
10791104

10801105
### Come In Blue Spinning
10811106

1082-
A `comeInBlueSpinning` entrance condition indicates that Samus must come in with a spin jump through the doorway, possibly while having blue speed, applicable to horizontal transitions. It has the following properties:
1107+
A `comeInBlueSpinning` entrance condition indicates that Samus must come in with a spin jump through the doorway, while having blue speed, applicable to horizontal transitions. It has the following properties:
10831108

10841109
- _unusableTiles_: For a runway connected to the door, the number of tiles before the door that are unusable for gaining speed, because of needing to jump.
10851110
- _minExtraRunSpeed_: The minimum extra run speed (as a hexadecimal string) needed. This only needs to be specified if something would prevent the strat from working at too low of a speed.

tests/asserts/keywords.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
("Come In Running", "comeInRunning"),
3535
("Come In Jumping", "comeInJumping"),
3636
("Come In Space Jumping", "comeInSpaceJumping"),
37+
("Come In Blue Space Jumping", "comeInBlueSpaceJumping"),
3738
("Come In Shinecharging", "comeInShinecharging"),
3839
("Come In Shinecharged Jumping", "comeInShinechargedJumping"),
3940
("Come In Shinecharged", "comeInShinecharged"),
@@ -536,7 +537,8 @@ def check_speed_states(strat, err_fn):
536537
states = {"shinecharged"}
537538
elif "comeInWithSpark" in keys:
538539
states = {"preshinespark"}
539-
elif keys.intersection(["comeInWithTemporaryBlue", "comeInGettingBlueSpeed", "comeInSpeedballing", "comeInWithBlueSpringBallBounce", "comeInBlueSpinning"]):
540+
elif keys.intersection(["comeInWithTemporaryBlue", "comeInGettingBlueSpeed", "comeInSpeedballing", "comeInWithBlueSpringBallBounce",
541+
"comeInBlueSpinning", "comeInBlueSpaceJumping"]):
540542
states = {"blue"}
541543
if strat.get("startsWithShineCharge") is True:
542544
err_fn("startsWithShineCharge should not be combined with an entranceCondition")

0 commit comments

Comments
 (0)