forked from OpenWF/SpaceNinjaServer
		
	fix: handle lab conquest keeping RewardInfo from previous missions (#2771)
Closes #2768 Reviewed-on: OpenWF/SpaceNinjaServer#2771 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
							
								
									f099b64ef4
								
							
						
					
					
						commit
						a5be29159f
					
				@ -92,11 +92,6 @@ import { handleGuildGoalProgress } from "./guildService.ts";
 | 
				
			|||||||
import { importLoadOutConfig } from "./importService.ts";
 | 
					import { importLoadOutConfig } from "./importService.ts";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const getRotations = (rewardInfo: IRewardInfo, tierOverride?: number): number[] => {
 | 
					const getRotations = (rewardInfo: IRewardInfo, tierOverride?: number): number[] => {
 | 
				
			||||||
    // Disruption missions just tell us (https://onlyg.it/OpenWF/SpaceNinjaServer/issues/2599)
 | 
					 | 
				
			||||||
    if (rewardInfo.rewardTierOverrides) {
 | 
					 | 
				
			||||||
        return rewardInfo.rewardTierOverrides;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // For Spy missions, e.g. 3 vaults cracked = A, B, C
 | 
					    // For Spy missions, e.g. 3 vaults cracked = A, B, C
 | 
				
			||||||
    if (rewardInfo.VaultsCracked) {
 | 
					    if (rewardInfo.VaultsCracked) {
 | 
				
			||||||
        const rotations: number[] = [];
 | 
					        const rotations: number[] = [];
 | 
				
			||||||
@ -109,16 +104,26 @@ const getRotations = (rewardInfo: IRewardInfo, tierOverride?: number): number[]
 | 
				
			|||||||
    const region = ExportRegions[rewardInfo.node] as IRegion | undefined;
 | 
					    const region = ExportRegions[rewardInfo.node] as IRegion | undefined;
 | 
				
			||||||
    const missionType: TMissionType | undefined = region?.missionType;
 | 
					    const missionType: TMissionType | undefined = region?.missionType;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (missionType == "MT_RESCUE" && rewardInfo.rewardTier) {
 | 
					    // Disruption uses 'rewardTierOverrides' to tell us (https://onlyg.it/OpenWF/SpaceNinjaServer/issues/2599)
 | 
				
			||||||
 | 
					    // Note that this may stick in lab conquest so we need to filter by mission type (https://onlyg.it/OpenWF/SpaceNinjaServer/issues/2768)
 | 
				
			||||||
 | 
					    if (missionType == "MT_ARTIFACT") {
 | 
				
			||||||
 | 
					        return rewardInfo.rewardTierOverrides ?? [];
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (missionType == "MT_RESCUE" && rewardInfo.rewardTier !== undefined) {
 | 
				
			||||||
        return [rewardInfo.rewardTier];
 | 
					        return [rewardInfo.rewardTier];
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // 'rewardQualifications' is unreliable for non-endless railjack missions (https://onlyg.it/OpenWF/SpaceNinjaServer/issues/2586, https://onlyg.it/OpenWF/SpaceNinjaServer/issues/2612)
 | 
					    // 'rewardQualifications' may stick from previous missions for non-endless missions done after them
 | 
				
			||||||
 | 
					    // - via railjack (https://onlyg.it/OpenWF/SpaceNinjaServer/issues/2586, https://onlyg.it/OpenWF/SpaceNinjaServer/issues/2612)
 | 
				
			||||||
 | 
					    // - via lab conquest (https://onlyg.it/OpenWF/SpaceNinjaServer/issues/2768)
 | 
				
			||||||
    switch (region?.missionName) {
 | 
					    switch (region?.missionName) {
 | 
				
			||||||
        case "/Lotus/Language/Missions/MissionName_Railjack":
 | 
					        case "/Lotus/Language/Missions/MissionName_Railjack":
 | 
				
			||||||
        case "/Lotus/Language/Missions/MissionName_RailjackVolatile":
 | 
					        case "/Lotus/Language/Missions/MissionName_RailjackVolatile":
 | 
				
			||||||
        case "/Lotus/Language/Missions/MissionName_RailjackExterminate":
 | 
					        case "/Lotus/Language/Missions/MissionName_RailjackExterminate":
 | 
				
			||||||
        case "/Lotus/Language/Missions/MissionName_RailjackAssassinate":
 | 
					        case "/Lotus/Language/Missions/MissionName_RailjackAssassinate":
 | 
				
			||||||
 | 
					        case "/Lotus/Language/Missions/MissionName_Assassination":
 | 
				
			||||||
 | 
					        case "/Lotus/Language/Missions/MissionName_Exterminate":
 | 
				
			||||||
            return [0];
 | 
					            return [0];
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user