forked from OpenWF/SpaceNinjaServer
		
	fix: handle tileset-specific sortie modifiers (#1958)
Closes #1956 Reviewed-on: OpenWF/SpaceNinjaServer#1958 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									4926b2f2be
								
							
						
					
					
						commit
						468efed71c
					
				@ -298,26 +298,42 @@ const pushSortieIfRelevant = (worldState: IWorldState, day: number): void => {
 | 
				
			|||||||
            "SORTIE_MODIFIER_TOXIN",
 | 
					            "SORTIE_MODIFIER_TOXIN",
 | 
				
			||||||
            "SORTIE_MODIFIER_POISON",
 | 
					            "SORTIE_MODIFIER_POISON",
 | 
				
			||||||
            "SORTIE_MODIFIER_HAZARD_RADIATION",
 | 
					            "SORTIE_MODIFIER_HAZARD_RADIATION",
 | 
				
			||||||
            "SORTIE_MODIFIER_HAZARD_MAGNETIC",
 | 
					 | 
				
			||||||
            "SORTIE_MODIFIER_HAZARD_FOG", // TODO: push this if the mission tileset is Grineer Forest
 | 
					 | 
				
			||||||
            "SORTIE_MODIFIER_HAZARD_FIRE", // TODO: push this if the mission tileset is Corpus Ship or Grineer Galleon
 | 
					 | 
				
			||||||
            "SORTIE_MODIFIER_HAZARD_ICE",
 | 
					 | 
				
			||||||
            "SORTIE_MODIFIER_HAZARD_COLD",
 | 
					 | 
				
			||||||
            "SORTIE_MODIFIER_SECONDARY_ONLY",
 | 
					            "SORTIE_MODIFIER_SECONDARY_ONLY",
 | 
				
			||||||
            "SORTIE_MODIFIER_SHOTGUN_ONLY",
 | 
					            "SORTIE_MODIFIER_SHOTGUN_ONLY",
 | 
				
			||||||
            "SORTIE_MODIFIER_SNIPER_ONLY",
 | 
					            "SORTIE_MODIFIER_SNIPER_ONLY",
 | 
				
			||||||
            "SORTIE_MODIFIER_RIFLE_ONLY",
 | 
					            "SORTIE_MODIFIER_RIFLE_ONLY",
 | 
				
			||||||
            "SORTIE_MODIFIER_BOW_ONLY"
 | 
					            "SORTIE_MODIFIER_BOW_ONLY"
 | 
				
			||||||
        ];
 | 
					        ];
 | 
				
			||||||
 | 
					        const pushTilesetModifiers = (tileset: string): void => {
 | 
				
			||||||
 | 
					            switch (tileset) {
 | 
				
			||||||
 | 
					                case "SORTIE_MODIFIER_HAZARD_FOG":
 | 
				
			||||||
 | 
					                    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];
 | 
				
			||||||
 | 
					            pushTilesetModifiers(tileset);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            const modifierType = rng.randomElement(modifiers)!;
 | 
					            const modifierType = rng.randomElement(modifiers)!;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            selectedNodes.push({
 | 
					            selectedNodes.push({
 | 
				
			||||||
                missionType: "MT_ASSASSINATION",
 | 
					                missionType: "MT_ASSASSINATION",
 | 
				
			||||||
                modifierType,
 | 
					                modifierType,
 | 
				
			||||||
                node: sortieBossNode[boss],
 | 
					                node: sortieBossNode[boss],
 | 
				
			||||||
                tileset: sortieTilesets[sortieBossNode[boss] as keyof typeof sortieTilesets]
 | 
					                tileset
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
            continue;
 | 
					            continue;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@ -343,13 +359,16 @@ const pushSortieIfRelevant = (worldState: IWorldState, day: number): void => {
 | 
				
			|||||||
            modifiers.push("SORTIE_MODIFIER_SHIELDS");
 | 
					            modifiers.push("SORTIE_MODIFIER_SHIELDS");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        const tileset = sortieTilesets[node as keyof typeof sortieTilesets];
 | 
				
			||||||
 | 
					        pushTilesetModifiers(tileset);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        const modifierType = rng.randomElement(modifiers)!;
 | 
					        const modifierType = rng.randomElement(modifiers)!;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        selectedNodes.push({
 | 
					        selectedNodes.push({
 | 
				
			||||||
            missionType,
 | 
					            missionType,
 | 
				
			||||||
            modifierType,
 | 
					            modifierType,
 | 
				
			||||||
            node,
 | 
					            node,
 | 
				
			||||||
            tileset: sortieTilesets[node as keyof typeof sortieTilesets]
 | 
					            tileset
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        nodes.splice(randomIndex, 1);
 | 
					        nodes.splice(randomIndex, 1);
 | 
				
			||||||
        missionTypes.add(missionType);
 | 
					        missionTypes.add(missionType);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user