fix: restrict sortie mission types based on what the tileset supports #2003
@ -212,6 +212,27 @@ const pushSyndicateMissions = (
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type TSortieTileset = keyof typeof sortieTilesetMissions;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const pushTilesetModifiers = (modifiers: string[], tileset: TSortieTileset): void => {
 | 
				
			||||||
 | 
					    switch (tileset) {
 | 
				
			||||||
 | 
					        case "GrineerForestTileset":
 | 
				
			||||||
 | 
					            modifiers.push("SORTIE_MODIFIER_HAZARD_FOG");
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
 | 
					        case "CorpusShipTileset":
 | 
				
			||||||
 | 
					        case "GrineerGalleonTileset":
 | 
				
			||||||
 | 
					        case "InfestedCorpusShipTileset":
 | 
				
			||||||
 | 
					            modifiers.push("SORTIE_MODIFIER_HAZARD_MAGNETIC");
 | 
				
			||||||
 | 
					            modifiers.push("SORTIE_MODIFIER_HAZARD_FIRE");
 | 
				
			||||||
 | 
					            modifiers.push("SORTIE_MODIFIER_HAZARD_ICE");
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
 | 
					        case "CorpusIcePlanetTileset":
 | 
				
			||||||
 | 
					        case "CorpusIcePlanetTilesetCaves":
 | 
				
			||||||
 | 
					            modifiers.push("SORTIE_MODIFIER_HAZARD_COLD");
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const getSortie = (day: number): ISortie => {
 | 
					export const getSortie = (day: number): ISortie => {
 | 
				
			||||||
    const seed = new CRng(day).randomInt(0, 0xffff);
 | 
					    const seed = new CRng(day).randomInt(0, 0xffff);
 | 
				
			||||||
    const rng = new CRng(seed);
 | 
					    const rng = new CRng(seed);
 | 
				
			||||||
@ -257,29 +278,10 @@ export const getSortie = (day: number): ISortie => {
 | 
				
			|||||||
            "SORTIE_MODIFIER_RIFLE_ONLY",
 | 
					            "SORTIE_MODIFIER_RIFLE_ONLY",
 | 
				
			||||||
            "SORTIE_MODIFIER_BOW_ONLY"
 | 
					            "SORTIE_MODIFIER_BOW_ONLY"
 | 
				
			||||||
        ];
 | 
					        ];
 | 
				
			||||||
        type TSortieTileset = keyof typeof sortieTilesetMissions;
 | 
					 | 
				
			||||||
        const pushTilesetModifiers = (tileset: TSortieTileset): void => {
 | 
					 | 
				
			||||||
            switch (tileset) {
 | 
					 | 
				
			||||||
                case "GrineerForestTileset":
 | 
					 | 
				
			||||||
                    modifiers.push("SORTIE_MODIFIER_HAZARD_FOG");
 | 
					 | 
				
			||||||
                    break;
 | 
					 | 
				
			||||||
                case "CorpusShipTileset":
 | 
					 | 
				
			||||||
                case "GrineerGalleonTileset":
 | 
					 | 
				
			||||||
                case "InfestedCorpusShipTileset":
 | 
					 | 
				
			||||||
                    modifiers.push("SORTIE_MODIFIER_HAZARD_MAGNETIC");
 | 
					 | 
				
			||||||
                    modifiers.push("SORTIE_MODIFIER_HAZARD_FIRE");
 | 
					 | 
				
			||||||
                    modifiers.push("SORTIE_MODIFIER_HAZARD_ICE");
 | 
					 | 
				
			||||||
                    break;
 | 
					 | 
				
			||||||
                case "CorpusIcePlanetTileset":
 | 
					 | 
				
			||||||
                case "CorpusIcePlanetTilesetCaves":
 | 
					 | 
				
			||||||
                    modifiers.push("SORTIE_MODIFIER_HAZARD_COLD");
 | 
					 | 
				
			||||||
                    break;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (i == 2 && boss != "SORTIE_BOSS_CORRUPTED_VOR" && rng.randomInt(0, 2) == 2) {
 | 
					        if (i == 2 && boss != "SORTIE_BOSS_CORRUPTED_VOR" && rng.randomInt(0, 2) == 2) {
 | 
				
			||||||
            const tileset = sortieTilesets[sortieBossNode[boss] as keyof typeof sortieTilesets] as TSortieTileset;
 | 
					            const tileset = sortieTilesets[sortieBossNode[boss] as keyof typeof sortieTilesets] as TSortieTileset;
 | 
				
			||||||
            pushTilesetModifiers(tileset);
 | 
					            pushTilesetModifiers(modifiers, tileset);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            const modifierType = rng.randomElement(modifiers)!;
 | 
					            const modifierType = rng.randomElement(modifiers)!;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -293,7 +295,7 @@ export const getSortie = (day: number): ISortie => {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        const tileset = sortieTilesets[node as keyof typeof sortieTilesets] as TSortieTileset;
 | 
					        const tileset = sortieTilesets[node as keyof typeof sortieTilesets] as TSortieTileset;
 | 
				
			||||||
        pushTilesetModifiers(tileset);
 | 
					        pushTilesetModifiers(modifiers, tileset);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        const missionType = rng.randomElement(sortieTilesetMissions[tileset])!;
 | 
					        const missionType = rng.randomElement(sortieTilesetMissions[tileset])!;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user