fix: check if sortie modifier is unique

Closes: #2026
This commit is contained in:
AMelonInsideLemon 2025-05-08 18:59:28 +02:00
parent bdd5ade2eb
commit 2e5d252aee

View File

@ -252,10 +252,12 @@ export const getSortie = (day: number): ISortie => {
const selectedNodes: ISortieMission[] = []; const selectedNodes: ISortieMission[] = [];
const missionTypes = new Set(); const missionTypes = new Set();
const modifierTypes = new Set();
for (let i = 0; i < 3; i++) { for (let i = 0; i < 3; i++) {
const randomIndex = rng.randomInt(0, nodes.length - 1); const randomIndex = rng.randomInt(0, nodes.length - 1);
const node = nodes[randomIndex]; const node = nodes[randomIndex];
let modifierType: string;
const modifiers = [ const modifiers = [
"SORTIE_MODIFIER_LOW_ENERGY", "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; const tileset = sortieTilesets[sortieBossNode[boss] as keyof typeof sortieTilesets] as TSortieTileset;
pushTilesetModifiers(modifiers, tileset); pushTilesetModifiers(modifiers, tileset);
const modifierType = rng.randomElement(modifiers)!; do {
modifierType = rng.randomElement(modifiers)!;
} while (modifierTypes.has(modifierType));
selectedNodes.push({ selectedNodes.push({
missionType: "MT_ASSASSINATION", missionType: "MT_ASSASSINATION",
@ -318,7 +322,9 @@ export const getSortie = (day: number): ISortie => {
modifiers.push("SORTIE_MODIFIER_SHIELDS"); modifiers.push("SORTIE_MODIFIER_SHIELDS");
} }
const modifierType = rng.randomElement(modifiers)!; do {
modifierType = rng.randomElement(modifiers)!;
} while (modifierTypes.has(modifierType));
selectedNodes.push({ selectedNodes.push({
missionType, missionType,
@ -328,6 +334,7 @@ export const getSortie = (day: number): ISortie => {
}); });
nodes.splice(randomIndex, 1); nodes.splice(randomIndex, 1);
missionTypes.add(missionType); missionTypes.add(missionType);
modifierTypes.add(modifierType);
} }
const dayStart = getSortieTime(day); const dayStart = getSortieTime(day);