diff --git a/src/services/worldStateService.ts b/src/services/worldStateService.ts index cb592ba8..374a946d 100644 --- a/src/services/worldStateService.ts +++ b/src/services/worldStateService.ts @@ -252,10 +252,12 @@ export const getSortie = (day: number): ISortie => { const selectedNodes: ISortieMission[] = []; const missionTypes = new Set(); + const modifierTypes = new Set(); for (let i = 0; i < 3; i++) { const randomIndex = rng.randomInt(0, nodes.length - 1); const node = nodes[randomIndex]; + let modifierType: string; const modifiers = [ "SORTIE_MODIFIER_LOW_ENERGY", @@ -283,7 +285,9 @@ export const getSortie = (day: number): ISortie => { const tileset = sortieTilesets[sortieBossNode[boss] as keyof typeof sortieTilesets] as TSortieTileset; pushTilesetModifiers(modifiers, tileset); - const modifierType = rng.randomElement(modifiers)!; + do { + modifierType = rng.randomElement(modifiers)!; + } while (modifierTypes.has(modifierType)); selectedNodes.push({ missionType: "MT_ASSASSINATION", @@ -318,7 +322,9 @@ export const getSortie = (day: number): ISortie => { modifiers.push("SORTIE_MODIFIER_SHIELDS"); } - const modifierType = rng.randomElement(modifiers)!; + do { + modifierType = rng.randomElement(modifiers)!; + } while (modifierTypes.has(modifierType)); selectedNodes.push({ missionType, @@ -328,6 +334,7 @@ export const getSortie = (day: number): ISortie => { }); nodes.splice(randomIndex, 1); missionTypes.add(missionType); + modifierTypes.add(modifierType); } const dayStart = getSortieTime(day);