Skip to content
This repository was archived by the owner on Aug 11, 2021. It is now read-only.

Commit db9d37c

Browse files
committed
Add more tricks
1 parent 431a7c6 commit db9d37c

File tree

4 files changed

+55
-15
lines changed

4 files changed

+55
-15
lines changed

src/common/data/settingsDetails.ts

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -140,14 +140,14 @@ export const details: SettingsDetails = {
140140
antechamberWithPowerBombs: {
141141
name: 'Antechamber with Power Bombs',
142142
description: `You can retrieve the item and leave Antechamber without Ice Beam by using a power bomb to open the door, moving to the very back of the room, and then back to the door.
143-
143+
144144
WARNING: If you fail the trick, you will softlock. It is strongly recommended to save at the nearby save station before attempting.`,
145145
difficulty: Difficulty.NORMAL
146146
},
147147
arborChamberWithoutPlasma: {
148148
name: 'Arbor Chamber without Plasma Beam',
149149
description: `Arbor Chamber can be entered through the ceiling from out of bounds.
150-
150+
151151
You can go out of bounds in Root Cave near the Arbor Chamber door, or in Gully.`,
152152
difficulty: Difficulty.OOB
153153
},
@@ -164,13 +164,20 @@ export const details: SettingsDetails = {
164164
difficulty: Difficulty.INSANE
165165
},
166166
chapelOfTheEldersWithPowerBombs: {
167-
name: 'Chapel of the Elders without Power Bombs',
167+
name: 'Chapel of the Elders with Power Bombs',
168168
description: `Similar to Antechamber without Power Bombs, but you open the door, lay a power bomb in the middle of the door frame, and `
169169
+ `then immediately roll into Chapel of the Elders.
170-
170+
171171
WARNING: You will softlock if you fail this trick. You are recommended to save first before attempting.`,
172172
difficulty: Difficulty.NORMAL
173173
},
174+
chozoIceTempleWithoutSpaceJump: {
175+
name: 'Chozo Ice Temple without Space Jump',
176+
description: `Removes Space Jump from being considered for Chozo Ice Temple, Chapel of the Elders, and Phendrana Shorelines (Spider Track).
177+
178+
You can reach these locations by doing a hyper bomb jump in Phendrana Shorelines to reach the temple, and double bomb jumping to climb the temple itself.`,
179+
difficulty: Difficulty.NORMAL
180+
},
174181
chozoIceTempleItemWithIS: {
175182
name: 'Chozo Ice Temple Item with Infinite Speed',
176183
description: `Also called Early Sun IS, you can get this item by performing the infinite speed glitch in Chapel of the Elders inbounds.`,
@@ -273,6 +280,13 @@ export const details: SettingsDetails = {
273280
description: `Elite Research can be entered from the Research Access door with an Infinite Boost clip.`,
274281
difficulty: Difficulty.NORMAL
275282
},
283+
exitPhendranaCanyonNoItems: {
284+
name: 'Exit Phendrana Canyon with No Items',
285+
description: `Normally, the logic expects you to be able to boost or Space Jump to exit Phendrana Canyon as a means of softlock protection. This trick removes those checks.
286+
287+
You can leave Phendrana Canyon without any items by jumping on the crates. However, if you destroy the crates and don't have Boost Ball or Space Jump, you will softlock.`,
288+
difficulty: Difficulty.TRIVIAL
289+
},
276290
exitQuarantineCaveRuinedCourtyardSlopeJump: {
277291
name: 'Exit Quarantine Cave to Ruined Courtyard without Spider Ball',
278292
description: `You can exit Quarantine Cave to Ruined Courtyard by slope jumping next to the Spider Ball track.`,
@@ -348,7 +362,7 @@ export const details: SettingsDetails = {
348362
lifeGroveSpinnerWithoutBoostBall: {
349363
name: 'Life Grove Spinner without Boost Ball',
350364
description: `With a specific camera angle and control stick angle setup, you can open up the spinner item without Boost Ball.
351-
365+
352366
Requires 'Life Grove Tunnel - Half Pipe Bomb Jump' to also be activated for this trick to be considered in logic.`,
353367
difficulty: Difficulty.NORMAL
354368
},
@@ -483,7 +497,7 @@ export const details: SettingsDetails = {
483497
name: 'Sun Tower - Infinite Bomb Jump',
484498
description: `After defeating Flaahgra, you can jump into the left groove, have the Oculus carry you, and then infinite bomb jump `
485499
+ `back to the top door to trigger the Sunchamber Chozo Ghost room layer without needing Spider Ball and Super Missles.
486-
500+
487501
WARNING: If progession is on Sunchamber (Ghosts), you will softlock if you fail this trick. You are advised to save before attempting.`,
488502
difficulty: Difficulty.NORMAL
489503
},
@@ -514,6 +528,11 @@ export const details: SettingsDetails = {
514528
description: `It's possible to return to Elite Control by performing a half pipe bomb jump to reach the Elite Control door.`,
515529
difficulty: Difficulty.HARD
516530
},
531+
warriorShrineMinimumReqs: {
532+
name: 'Warrior Shrine - Minimum Requirements',
533+
description: `You can climb the central structure in Monitor Station without Space Jump or Morph Ball Bombs, then dash across to the Warrior Shrine door.`,
534+
difficulty: Difficulty.NORMAL
535+
},
517536
warriorShrineWithoutBoost: {
518537
name: 'Warrior Shrine without Boost Ball',
519538
description: `You can space jump to the upper ledge in Monitor Station via R jump or dash.`,

src/electron/models/prime/regions/magmoorCaverns.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,12 @@ export function magmoorCaverns(): RegionObject[] {
4141
exits: {
4242
'Shore Tunnel': () => true,
4343
'Warrior Shrine': (items: PrimeItemCollection, settings: PrimeRandomizerSettings) => {
44-
const wsReqs = settings.tricks.warriorShrineWithoutBoost || items.canBoost();
45-
return wsReqs && items.has(PrimeItem.SPACE_JUMP_BOOTS);
44+
if (settings.tricks.warriorShrineMinimumReqs) {
45+
return true;
46+
}
47+
48+
const boostReqs = settings.tricks.warriorShrineWithoutBoost || items.canBoost();
49+
return boostReqs && items.has(PrimeItem.SPACE_JUMP_BOOTS);
4650
},
4751
[Elevator.MAGMOOR_WEST]: (items: PrimeItemCollection, settings: PrimeRandomizerSettings) => {
4852
const canBoost = settings.tricks.boostThroughBombTunnels && items.canBoost();

src/electron/models/prime/regions/phendranaDrifts.ts

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,16 @@ export function phendranaDrifts(): RegionObject[] {
1414
name: 'Phendrana Shorelines',
1515
locations: {
1616
[PrimeLocation.PHENDRANA_SHORELINES_BEHIND_ICE]: (items: PrimeItemCollection) => items.has(PrimeItem.PLASMA_BEAM),
17-
[PrimeLocation.PHENDRANA_SHORELINES_SPIDER_TRACK]: (items: PrimeItemCollection) => items.canFireSuperMissiles() && items.canSpider() && items.has(PrimeItem.SPACE_JUMP_BOOTS) && items.has(PrimeItem.SCAN_VISOR),
17+
[PrimeLocation.PHENDRANA_SHORELINES_SPIDER_TRACK]: (items: PrimeItemCollection, settings: PrimeRandomizerSettings) => {
18+
const sjReqs = items.has(PrimeItem.SPACE_JUMP_BOOTS) || (settings.tricks.chozoIceTempleWithoutSpaceJump && items.canLayBombs());
19+
return sjReqs && items.canFireSuperMissiles() && items.canSpider() && items.has(PrimeItem.SCAN_VISOR);
20+
},
1821
},
1922
exits: {
20-
'Chozo Ice Temple': (items: PrimeItemCollection) => canBreakIce(items) && items.has(PrimeItem.SPACE_JUMP_BOOTS),
23+
'Chozo Ice Temple': (items: PrimeItemCollection, settings: PrimeRandomizerSettings) => {
24+
const sjReqs = items.has(PrimeItem.SPACE_JUMP_BOOTS) || (settings.tricks.chozoIceTempleWithoutSpaceJump && items.canLayBombs());
25+
return sjReqs && canBreakIce(items);
26+
},
2127
'Ice Ruins East': (items: PrimeItemCollection) => ((items.hasMissiles() && canBreakIce(items)) || items.has(PrimeItem.SPACE_JUMP_BOOTS)) && items.has(PrimeItem.SCAN_VISOR),
2228
'Ice Ruins West': (items: PrimeItemCollection) => items.has(PrimeItem.SPACE_JUMP_BOOTS),
2329
[Elevator.PHENDRANA_NORTH]: (items: PrimeItemCollection) => items.hasMissiles() || items.has(PrimeItem.CHARGE_BEAM)
@@ -27,13 +33,17 @@ export function phendranaDrifts(): RegionObject[] {
2733
name: 'Chozo Ice Temple',
2834
locations: {
2935
[PrimeLocation.CHOZO_ICE_TEMPLE]: (items: PrimeItemCollection, settings: PrimeRandomizerSettings) => {
36+
const sjReqs = items.has(PrimeItem.SPACE_JUMP_BOOTS) || (settings.tricks.chozoIceTempleWithoutSpaceJump && items.canLayBombs());
3037
const infiniteSpeedReqs = (settings.tricks.chozoIceTempleItemWithIS && items.canInfiniteSpeed() && items.has(PrimeItem.WAVE_BEAM))
3138
|| (settings.tricks.waveSunOobWallcrawlWithIS && items.hasMissiles() && items.canWallcrawl(settings) && items.canInfiniteSpeed());
32-
return (items.has(PrimeItem.PLASMA_BEAM) && items.has(PrimeItem.MORPH_BALL) && items.has(PrimeItem.SPACE_JUMP_BOOTS)) || infiniteSpeedReqs;
39+
return sjReqs && ((items.has(PrimeItem.PLASMA_BEAM) && items.has(PrimeItem.MORPH_BALL)) || infiniteSpeedReqs);
3340
}
3441
},
3542
exits: {
36-
'Chapel of the Elders': (items: PrimeItemCollection) => items.hasMissiles() && items.canLayBombs() && items.has(PrimeItem.SPACE_JUMP_BOOTS),
43+
'Chapel of the Elders': (items: PrimeItemCollection, settings: PrimeRandomizerSettings) => {
44+
const sjReqs = items.has(PrimeItem.SPACE_JUMP_BOOTS) || settings.tricks.chozoIceTempleWithoutSpaceJump;
45+
return sjReqs && items.hasMissiles() && items.canLayBombs();
46+
},
3747
'Phendrana Shorelines': (items: PrimeItemCollection) => canBreakIce(items)
3848
}
3949
},
@@ -54,15 +64,16 @@ export function phendranaDrifts(): RegionObject[] {
5464
exits: {
5565
'Chozo Ice Temple': (items: PrimeItemCollection, settings: PrimeRandomizerSettings) => {
5666
const waveReqs = items.has(PrimeItem.WAVE_BEAM) || (settings.tricks.chapelOfTheEldersWithPowerBombs && items.canLayPowerBombs());
57-
return waveReqs && items.canLayBombs() && items.has(PrimeItem.SPACE_JUMP_BOOTS);
67+
const sjReqs = items.has(PrimeItem.SPACE_JUMP_BOOTS) || settings.tricks.chozoIceTempleWithoutSpaceJump;
68+
return waveReqs && sjReqs && items.canLayBombs();
5869
}
5970
}
6071
},
6172
{
6273
name: 'Ice Ruins East',
6374
locations: {
6475
[PrimeLocation.ICE_RUINS_EAST_BEHIND_ICE]: (items: PrimeItemCollection) => items.has(PrimeItem.PLASMA_BEAM),
65-
[PrimeLocation.ICE_RUINS_EAST_SPIDER_TRACK]: (items: PrimeItemCollection, settings: PrimeRandomizerSettings) =>
76+
[PrimeLocation.ICE_RUINS_EAST_SPIDER_TRACK]: (items: PrimeItemCollection, settings: PrimeRandomizerSettings) =>
6677
items.canSpider() || (settings.tricks.iceRuinsEastSpiderItemWithoutSpider && items.canLayBombs())
6778
},
6879
exits: {
@@ -89,7 +100,10 @@ export function phendranaDrifts(): RegionObject[] {
89100
},
90101
exits: {
91102
// You'll softlock if you destroy the boxes, and don't have space jump or boost
92-
'Ice Ruins West': (items: PrimeItemCollection) => items.canBoost() || items.has(PrimeItem.SPACE_JUMP_BOOTS)
103+
'Ice Ruins West': (items: PrimeItemCollection, settings: PrimeRandomizerSettings) => {
104+
const baseReqs = items.canBoost() || items.has(PrimeItem.SPACE_JUMP_BOOTS);
105+
return baseReqs || settings.tricks.exitPhendranaCanyonNoItems;
106+
}
93107
}
94108
},
95109
{

src/electron/models/prime/tricks.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ export class Tricks extends SettingsFlags {
99
boostThroughBombTunnels = false;
1010
chapelOfTheEldersWithPowerBombs = false;
1111
chozoIceTempleItemWithIS = false;
12+
chozoIceTempleWithoutSpaceJump = false;
1213
climbFrigateCrashSite = false;
1314
climbFrozenPikeWithoutBombs = false;
1415
climbObservatoryWithoutBoost = false;
@@ -26,6 +27,7 @@ export class Tricks extends SettingsFlags {
2627
crosswayItemFewerReqs = false;
2728
destroyBombCoversWithPowerBombs = false;
2829
eliteResearchInfiniteBoostClip = false;
30+
exitPhendranaCanyonNoItems = false;
2931
exitQuarantineCaveRuinedCourtyardSlopeJump = false;
3032
fieryShoresAccessWithoutMorphGrapple = false;
3133
frigateCrashSiteItemWithoutGravitySuit = false;
@@ -70,6 +72,7 @@ export class Tricks extends SettingsFlags {
7072
trainingChamberAndAccessOobWallcrawl = false;
7173
upperRuinedShrineTowerOfLightFewerAccessReqs = false;
7274
ventShaftHpbj = false;
75+
warriorShrineMinimumReqs = false;
7376
warriorShrineWithoutBoost = false;
7477
wateryHallUnderwaterFlaahgraSkip = false;
7578
wateryHallUnderwaterSlopeJump = false;

0 commit comments

Comments
 (0)