fix: check if sortie modifier is unique #2027
@ -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);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user