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

Commit 46aa92f

Browse files
committed
Logic fixes
Quarantine Cave will no longer be considered for traversal if it is excluded.
1 parent 15a8da4 commit 46aa92f

File tree

5 files changed

+17
-16
lines changed

5 files changed

+17
-16
lines changed

src/common/data/settingsDetails.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ export const details: SettingsDetails = {
247247
},
248248
frigateCrashSiteItemWithoutGravitySuit: {
249249
name: 'Frigate Crash Site Item without Gravity Suit',
250-
description: `You can scan dash, slope jump, or grapple to the underwater ledge where the item is.`,
250+
description: `You can scan dash, slope jump, or grapple to the underwater ledge where the item is. You are expected to have either Space Jump or Grapple Beam.`,
251251
difficulty: Difficulty.EASY
252252
},
253253
furnaceAccessWithoutSpider: {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ export function chozoRuins(): RegionObject[] {
176176
name: 'Magma Pool',
177177
locations: {
178178
[PrimeLocation.MAGMA_POOL]: (items: PrimeItemCollection, settings: PrimeRandomizerSettings) => {
179-
const infiniteSpeedReqs = settings.tricks.magmaPoolItemWithIS && items.canInfiniteSpeed();
179+
const infiniteSpeedReqs = !settings.tricks.crossMagmaPoolSuitless && settings.tricks.magmaPoolItemWithIS && items.canInfiniteSpeed(); // need to have the suit requirement
180180
const grappleReqs = ((settings.tricks.crossMagmaPoolWithoutGrapple || settings.tricks.crossMagmaPoolSuitless) && items.has(PrimeItem.SPACE_JUMP_BOOTS)) || items.has(PrimeItem.GRAPPLE_BEAM);
181181
return (grappleReqs && items.canLayPowerBombs()) || infiniteSpeedReqs;
182182
}

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,8 @@ export function phazonMines(): RegionObject[] {
8989
&& items.has(PrimeItem.ICE_BEAM)
9090
},
9191
'Elite Research': (items: PrimeItemCollection, settings: PrimeRandomizerSettings) => {
92-
const spiderReqs = settings.tricks.spiderlessShafts || items.canSpider();
93-
return spiderReqs && (settings.tricks.eliteResearchInfiniteBoostClip && items.canBoost()) && items.has(PrimeItem.ICE_BEAM);
92+
const spiderReqs = (settings.tricks.spiderlessShafts && items.has(PrimeItem.SPACE_JUMP_BOOTS)) || items.canSpider();
93+
return spiderReqs && settings.tricks.eliteResearchInfiniteBoostClip && items.canBoost() && items.has(PrimeItem.ICE_BEAM);
9494
},
9595
'Elite Control Access': (items: PrimeItemCollection, settings: PrimeRandomizerSettings) => {
9696
const spiderReqs = (items.canLayBombs() && items.canSpider()) || settings.tricks.climbOreProcessingWithoutGrappleSpider;
@@ -106,7 +106,7 @@ export function phazonMines(): RegionObject[] {
106106
exits: {
107107
'Elite Control': (items: PrimeItemCollection) => items.has(PrimeItem.WAVE_BEAM),
108108
'Ore Processing': (items: PrimeItemCollection, settings: PrimeRandomizerSettings) => {
109-
const spiderReqs = settings.tricks.spiderlessShafts || items.canSpider();
109+
const spiderReqs = (settings.tricks.spiderlessShafts && items.canLayBombs()) || items.canSpider();
110110
return spiderReqs && items.has(PrimeItem.ICE_BEAM) && items.has(PrimeItem.SPACE_JUMP_BOOTS);
111111
}
112112
}

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

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export function phendranaDrifts(): RegionObject[] {
2828
locations: {
2929
[PrimeLocation.CHOZO_ICE_TEMPLE]: (items: PrimeItemCollection, settings: PrimeRandomizerSettings) => {
3030
const infiniteSpeedReqs = (settings.tricks.chozoIceTempleItemWithIS && items.canInfiniteSpeed() && items.has(PrimeItem.WAVE_BEAM))
31-
|| (settings.tricks.chozoIceTempleItemWithIS && items.canWallcrawl(settings) && items.canInfiniteSpeed());
31+
|| (settings.tricks.waveSunOobWallcrawlWithIS && items.hasMissiles() && items.canWallcrawl(settings) && items.canInfiniteSpeed());
3232
return (items.has(PrimeItem.PLASMA_BEAM) && items.has(PrimeItem.MORPH_BALL) && items.has(PrimeItem.SPACE_JUMP_BOOTS)) || infiniteSpeedReqs;
3333
}
3434
},
@@ -92,8 +92,8 @@ export function phendranaDrifts(): RegionObject[] {
9292
name: 'Ruined Courtyard',
9393
locations: {
9494
[PrimeLocation.RUINED_COURTYARD]: (items: PrimeItemCollection, settings: PrimeRandomizerSettings) => {
95-
const boostReqs = items.canBoost() || settings.tricks.climbRuinedCourtyardWithoutBoostSpider;
96-
return boostReqs && items.canLayBombs() && items.has(PrimeItem.SPACE_JUMP_BOOTS);
95+
const boostSpiderReqs = items.canBoost() || items.canSpider() || settings.tricks.climbRuinedCourtyardWithoutBoostSpider;
96+
return boostSpiderReqs && items.canLayBombs() && items.has(PrimeItem.SPACE_JUMP_BOOTS);
9797
}
9898
},
9999
exits: {
@@ -105,7 +105,8 @@ export function phendranaDrifts(): RegionObject[] {
105105
'Quarantine Cave': (items: PrimeItemCollection, settings: PrimeRandomizerSettings) => {
106106
const thermalReqs = settings.tricks.removeThermalReqs || items.has(PrimeItem.THERMAL_VISOR);
107107
const boostSpiderReqs = ((items.canBoost() && items.canLayBombs()) || items.has(PrimeItem.SPIDER_BALL)) || settings.tricks.climbRuinedCourtyardWithoutBoostSpider;
108-
const baseReqs = boostSpiderReqs && thermalReqs && items.canFireSuperMissiles() && items.has(PrimeItem.WAVE_BEAM) && items.has(PrimeItem.SPACE_JUMP_BOOTS);
108+
const baseReqs = !settings.excludeLocations['Quarantine Cave'] && boostSpiderReqs && thermalReqs && items.canFireSuperMissiles()
109+
&& items.has(PrimeItem.WAVE_BEAM) && items.has(PrimeItem.SPACE_JUMP_BOOTS);
109110

110111
if (settings.pointOfNoReturnItems === PointOfNoReturnItems.ALLOW_ALL) {
111112
return baseReqs;
@@ -129,7 +130,7 @@ export function phendranaDrifts(): RegionObject[] {
129130
|| (items.has(PrimeItem.SPACE_JUMP_BOOTS) && items.has(PrimeItem.GRAPPLE_BEAM)),
130131
'Ruined Courtyard': (items: PrimeItemCollection, settings: PrimeRandomizerSettings) => {
131132
const spiderReqs = items.canSpider() || settings.tricks.exitQuarantineCaveRuinedCourtyardSlopeJump;
132-
return spiderReqs && items.canFireSuperMissiles() && items.has(PrimeItem.WAVE_BEAM);
133+
return spiderReqs && items.canFireSuperMissiles() && items.has(PrimeItem.WAVE_BEAM); // in case we need to re-enter
133134
}
134135
}
135136
},
@@ -290,7 +291,7 @@ export function phendranaDrifts(): RegionObject[] {
290291

291292
return items.has(PrimeItem.GRAVITY_SUIT) && baseReqs;
292293
},
293-
'Frost Cave': (items: PrimeItemCollection, settings: PrimeRandomizerSettings) => {
294+
'Frozen Pike': (items: PrimeItemCollection, settings: PrimeRandomizerSettings) => {
294295
const grappleReqs = settings.tricks.removePhendranaDepthsGrappleReqs || items.has(PrimeItem.GRAPPLE_BEAM);
295296
return items.hasMissiles() && items.has(PrimeItem.WAVE_BEAM) && grappleReqs
296297
&& items.has(PrimeItem.SPACE_JUMP_BOOTS);
@@ -308,8 +309,8 @@ export function phendranaDrifts(): RegionObject[] {
308309
}
309310
},
310311
exits: {
311-
'Hunter Cave': (items: PrimeItemCollection) => items.has(PrimeItem.GRAVITY_SUIT) && items.has(PrimeItem.SPACE_JUMP_BOOTS),
312-
'Frost Cave': (items: PrimeItemCollection) => items.has(PrimeItem.GRAVITY_SUIT) && items.has(PrimeItem.SPACE_JUMP_BOOTS)
312+
'Hunter Cave': (items: PrimeItemCollection) => items.has(PrimeItem.GRAVITY_SUIT) && items.has(PrimeItem.SPACE_JUMP_BOOTS) && items.has(PrimeItem.WAVE_BEAM),
313+
'Frozen Pike': (items: PrimeItemCollection) => items.has(PrimeItem.GRAVITY_SUIT) && items.has(PrimeItem.SPACE_JUMP_BOOTS) && items.has(PrimeItem.WAVE_BEAM)
313314
}
314315
},
315316
{
@@ -323,7 +324,7 @@ export function phendranaDrifts(): RegionObject[] {
323324
name: Elevator.PHENDRANA_SOUTH,
324325
exits: {
325326
[Elevator.MAGMOOR_SOUTH_PHENDRANA]: () => true,
326-
'Quarantine Cave': (items: PrimeItemCollection) => items.has(PrimeItem.MORPH_BALL) && items.has(PrimeItem.WAVE_BEAM) && items.has(PrimeItem.SPACE_JUMP_BOOTS),
327+
'Quarantine Cave': (items: PrimeItemCollection, settings: PrimeRandomizerSettings) => !settings.excludeLocations['Quarantine Cave'] && items.has(PrimeItem.MORPH_BALL) && items.has(PrimeItem.WAVE_BEAM) && items.has(PrimeItem.SPACE_JUMP_BOOTS),
327328
'Transport Access (Phendrana)': (items: PrimeItemCollection, settings: PrimeRandomizerSettings) => {
328329
const spiderReqs = (settings.tricks.phendranaTransportSouthToTransportAccessWithoutSpider && items.has(PrimeItem.MORPH_BALL) && items.has(PrimeItem.SPACE_JUMP_BOOTS)) || items.canSpider();
329330
return spiderReqs && items.has(PrimeItem.ICE_BEAM);

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ export function tallonOverworld(): RegionObject[] {
130130
exits: {
131131
'Hydro Access Tunnel': (items: PrimeItemCollection, settings: PrimeRandomizerSettings) => {
132132
const thermalReqs = settings.tricks.removeThermalReqs || items.has(PrimeItem.THERMAL_VISOR);
133-
return thermalReqs && items.has(PrimeItem.WAVE_BEAM);
133+
return thermalReqs && items.has(PrimeItem.WAVE_BEAM) && items.has(PrimeItem.SPACE_JUMP_BOOTS);
134134
},
135135
'Cargo Freight Lift to Deck Gamma': (items: PrimeItemCollection) => items.has(PrimeItem.GRAVITY_SUIT)
136136
}
@@ -142,7 +142,7 @@ export function tallonOverworld(): RegionObject[] {
142142
},
143143
exits: {
144144
'Great Tree Hall (Lower)': (items: PrimeItemCollection) => items.canLayBombs() && items.has(PrimeItem.ICE_BEAM),
145-
'Biohazard Containment': (items: PrimeItemCollection) => items.canLayBombs()
145+
'Biohazard Containment': (items: PrimeItemCollection) => items.canLayBombs() && items.has(PrimeItem.SPACE_JUMP_BOOTS)
146146
}
147147
},
148148
{

0 commit comments

Comments
 (0)