Skip to content

Commit 1552233

Browse files
committed
Ridley G-mode and ridleyKill requirement
1 parent ef635da commit 1552233

3 files changed

Lines changed: 177 additions & 7 deletions

File tree

logicalRequirements.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -651,6 +651,32 @@ __Example:__
651651
{"noFlashSuit": {}}
652652
```
653653

654+
### Boss requirements
655+
656+
#### Ridley kill
657+
658+
A `ridleyKill` requirement represents the need to kill Ridley, including ammo and energy requirements depending on the player's assumed skill level and available items. The expected duration of the fight can be estimated based on the following:
659+
- Supers can be used once every 0.5 seconds.
660+
- Missiles can be used once every 0.34 seconds.
661+
- Power Bombs can be used once every 3 seconds.
662+
- A charged beam shot can be used once every 1.4 seconds.
663+
664+
Patience requirements `canBePatient`, `canBeVeryPatient`, and `canBeExtremelyPatient` should be applied based on the expected duration of the fight.
665+
666+
A leniency multiplier should normally be applied to the time taken between shots, as well as to the accuracy rate of shots hitting Ridley successfully.
667+
668+
Heat frame requirements should be included for the period before the fight begins, as well as after the fight until drops occurs, which can be estimated (slightly generously) at 16 seconds, or 960 heat frames.
669+
670+
If neither Morph nor Screw Attack are available, then at the highest skill level it can be assumed that the player takes unavoidable enemy damage at a rate of 10 energy per second. If Morph or Screw Attack is available, then it is possible to avoid all enemy damage, but for leniency normally some damage should still be assumed.
671+
672+
A `ridleyKill` requirement has the following optional properties which modify the assumptions of the fight:
673+
* _gMode_: A boolean indicating if the fight happens in G-mode. If true, then Samus will be protected from heat damage, but Ridley's fireballs become invisible and immobile while still being dangerous to Samus.
674+
- _stuck_: A boolean indicating that the fight happens with Ridley stuck in a corner, where Samus can freely avoid damage from Ridley while inflicting damage to Ridley at a higher rate:
675+
- Supers can be used once every 0.34 seconds.
676+
- Missiles can be used once every 0.17 seconds.
677+
- Power Bombs can be used once every 2.65 seconds.
678+
- A charged beam shot can be used once every 1.1 seconds.
679+
654680
### Other requirements
655681

656682
#### tech object

region/lowernorfair/east/Ridley's Room.json

Lines changed: 134 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -395,6 +395,65 @@
395395
{"heatFrames": 50}
396396
]
397397
},
398+
{
399+
"link": [1, 3],
400+
"name": "G-Mode Crystal Flash Stuck Ridley",
401+
"entranceCondition": {
402+
"comeInWithGMode": {
403+
"mode": "any",
404+
"morphed": false
405+
}
406+
},
407+
"requires": [
408+
{"notable": "G-Mode Crystal Flash Stuck Ridley"},
409+
"h_CrystalFlash",
410+
{"or": [
411+
"canArtificialMorph",
412+
"canWalljump"
413+
]},
414+
"h_usePowerBomb",
415+
{"ridleyKill": {"gMode": true, "stuck": true}},
416+
{"autoReserveTrigger": {}},
417+
{"heatFrames": 600},
418+
{"partialRefill": {"type": "Energy", "limit": 100}}
419+
],
420+
"setsFlags": ["f_DefeatedRidley"],
421+
"note": [
422+
"Enter the room in G-mode, perform a Crystal Flash, then lay a Power Bomb in the top-right.",
423+
"The Power Bomb will not explode but will continually force Ridley into the lower-left of the room.",
424+
"After reducing Ridley's health to zero, take damage from Ridley to trigger auto-reserves and exit G-mode.",
425+
"Then get grabbed by Ridley to finish the fight."
426+
]
427+
},
428+
{
429+
"link": [1, 3],
430+
"name": "G-Mode Ridley with 30 Supers",
431+
"entranceCondition": {
432+
"comeInWithGMode": {
433+
"mode": "any",
434+
"morphed": false
435+
}
436+
},
437+
"requires": [
438+
{"notable": "G-Mode Ridley with 30 Supers"},
439+
{"heatFrames": 0},
440+
{"ammo": {"type": "Super", "count": 30}},
441+
{"partialRefill": {"type": "Energy", "limit": 100}}
442+
],
443+
"setsFlags": ["f_DefeatedRidley"],
444+
"note": [
445+
"Enter the room in G-mode and quickly kill Ridley with 30 Supers.",
446+
"G-mode protects against heat damage but also causes Ridley's fireballs to be invisible and not move.",
447+
"As long as Ridley is swooping, not many fireballs will be placed, so delaying Ridley from pogoing can be helpful.",
448+
"Once Ridley begins pogoing, it generally becomes unsafe for Samus to jump high because of the risk of touching a fireball.",
449+
"By the end of the fight, projectiles will probably be overloaded, causing Ridley's drops not to spawn;",
450+
"to solve this, exit G-mode just before drops spawn, and pause abuse in order to collect them."
451+
],
452+
"devNote": [
453+
"Leaving back through the open door while still in G-Mode can also be possible,",
454+
"but the risk of hitting a fireball is probably too high for that to be reasonable."
455+
]
456+
},
398457
{
399458
"id": 4,
400459
"link": [2, 2],
@@ -577,6 +636,62 @@
577636
],
578637
"flashSuitChecked": true
579638
},
639+
{
640+
"link": [2, 3],
641+
"name": "G-Mode Crystal Flash Stuck Ridley",
642+
"entranceCondition": {
643+
"comeInWithGMode": {
644+
"mode": "any",
645+
"morphed": false
646+
}
647+
},
648+
"requires": [
649+
{"notable": "G-Mode Crystal Flash Stuck Ridley"},
650+
"h_CrystalFlash",
651+
{"or": [
652+
"canArtificialMorph",
653+
"canWalljump"
654+
]},
655+
"h_usePowerBomb",
656+
{"ridleyKill": {"gMode": true, "stuck": true}},
657+
{"autoReserveTrigger": {}},
658+
{"heatFrames": 600},
659+
{"partialRefill": {"type": "Energy", "limit": 100}}
660+
],
661+
"setsFlags": ["f_DefeatedRidley"],
662+
"note": [
663+
"Enter the room in G-mode, perform a Crystal Flash, then lay a Power Bomb in the top-right.",
664+
"The Power Bomb will not explode but will continually force Ridley into the lower-left of the room.",
665+
"After reducing Ridley's health to zero, take damage from Ridley to trigger auto-reserves and exit G-mode.",
666+
"Then get grabbed by Ridley to finish the fight."
667+
]
668+
},
669+
{
670+
"link": [2, 3],
671+
"name": "G-Mode Ridley with 30 Supers",
672+
"entranceCondition": {
673+
"comeInWithGMode": {
674+
"mode": "any",
675+
"morphed": false
676+
}
677+
},
678+
"requires": [
679+
{"notable": "G-Mode Ridley with 30 Supers"},
680+
{"heatFrames": 0},
681+
{"ammo": {"type": "Super", "count": 30}},
682+
{"partialRefill": {"type": "Energy", "limit": 100}}
683+
],
684+
"setsFlags": ["f_DefeatedRidley"],
685+
"note": [
686+
"Enter the room in G-mode and quickly kill Ridley with 30 Supers.",
687+
"G-mode protects against heat damage but also causes Ridley's fireballs to be invisible and not move.",
688+
"As long as Ridley is swooping, not many fireballs will be placed, so delaying Ridley from pogoing can be helpful.",
689+
"Once Ridley begins pogoing, it generally becomes unsafe for Samus to jump high because of the risk of touching a fireball.",
690+
"By the end of the fight, projectiles will probably be overloaded, causing Ridley's drops not to spawn;",
691+
"to solve this, exit G-mode just before drops spawn, and pause abuse in order to collect them.",
692+
"Leaving back through the open door while still in G-mode is also possible."
693+
]
694+
},
580695
{
581696
"id": 9,
582697
"link": [3, 1],
@@ -662,9 +777,7 @@
662777
"name": "Heat Proof Ridley",
663778
"requires": [
664779
"h_heatProof",
665-
{"enemyKill": {
666-
"enemies": [["Ridley"]]
667-
}}
780+
{"ridleyKill": {}}
668781
],
669782
"setsFlags": ["f_DefeatedRidley"]
670783
},
@@ -675,9 +788,7 @@
675788
"requires": [
676789
{"notable": "Ridley without Heat Protection"},
677790
{"heatFrames": 0},
678-
{"enemyKill": {
679-
"enemies": [["Ridley"]]
680-
}}
791+
{"ridleyKill": {}}
681792
],
682793
"setsFlags": ["f_DefeatedRidley"],
683794
"note": "Fight Ridley without immunity to heat damage.",
@@ -698,8 +809,24 @@
698809
"id": 1,
699810
"name": "Ridley without Heat Protection",
700811
"note": "Fight Ridley without immunity to heat damage."
812+
},
813+
{
814+
"id": 2,
815+
"name": "G-Mode Crystal Flash Stuck Ridley",
816+
"note": [
817+
"In G-mode, use a Crystal Flash and additional Power Bomb to get Ridley stuck at the bottom-left of the room.",
818+
"To end the fight, exit G-mode by using damage from Ridley to trigger auto-reserves."
819+
]
820+
},
821+
{
822+
"id": 3,
823+
"name": "G-Mode Ridley with 30 Supers",
824+
"note": [
825+
"In G-Mode, use 30 Supers to end the fight quickly, carefully avoiding the invisible fireballs that Ridley spawns.",
826+
"Use X-Ray to exit G-Mode precisely at the end of the fight just before drops spawn."
827+
]
701828
}
702829
],
703830
"nextStratId": 27,
704-
"nextNotableId": 2
831+
"nextNotableId": 4
705832
}

schema/m3-requirements.schema.json

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -844,6 +844,23 @@
844844
"type": "string",
845845
"title": "Disable Equipment",
846846
"description": "A requirement to disable a specific item."
847+
},
848+
"ridleyKill": {
849+
"type": "object",
850+
"description": "Fulfilled by killing Ridley, including ammo, energy, and skill requirements.",
851+
"additionalProperties": false,
852+
"properties": {
853+
"gMode": {
854+
"type": "boolean",
855+
"default": false,
856+
"description": "Whether the Ridley kill happens while in G-mode, preventing heat damage while making Ridley's fireballs immobile."
857+
},
858+
"stuck": {
859+
"type": "boolean",
860+
"default": false,
861+
"description": "Whether the Ridley kill happens with Ridley stuck in a corner, preventing body damage."
862+
}
863+
}
847864
}
848865
}
849866
}

0 commit comments

Comments
 (0)