fix: respect rewardTier for rescue missions (#1650)
Reviewed-on: OpenWF/SpaceNinjaServer#1650 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
							
								
									28d7ca8ca0
								
							
						
					
					
						commit
						3165d9f459
					
				@ -55,7 +55,22 @@ import { Loadout } from "../models/inventoryModels/loadoutModel";
 | 
				
			|||||||
import { ILoadoutConfigDatabase } from "../types/saveLoadoutTypes";
 | 
					import { ILoadoutConfigDatabase } from "../types/saveLoadoutTypes";
 | 
				
			||||||
import { getWorldState } from "./worldStateService";
 | 
					import { getWorldState } from "./worldStateService";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const getRotations = (rotationCount: number, tierOverride: number | undefined): number[] => {
 | 
					const getRotations = (rewardInfo: IRewardInfo, tierOverride: number | undefined): number[] => {
 | 
				
			||||||
 | 
					    // For Spy missions, e.g. 3 vaults cracked = A, B, C
 | 
				
			||||||
 | 
					    if (rewardInfo.VaultsCracked) {
 | 
				
			||||||
 | 
					        const rotations: number[] = [];
 | 
				
			||||||
 | 
					        for (let i = 0; i != rewardInfo.VaultsCracked; ++i) {
 | 
				
			||||||
 | 
					            rotations.push(i);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return rotations;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // For Rescue missions
 | 
				
			||||||
 | 
					    if (rewardInfo.rewardTier) {
 | 
				
			||||||
 | 
					        return [rewardInfo.rewardTier];
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const rotationCount = rewardInfo.rewardQualifications?.length || 0;
 | 
				
			||||||
    if (rotationCount === 0) return [0];
 | 
					    if (rotationCount === 0) return [0];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const rotationPattern =
 | 
					    const rotationPattern =
 | 
				
			||||||
@ -1062,14 +1077,8 @@ function getRandomMissionDrops(RewardInfo: IRewardInfo, tierOverride: number | u
 | 
				
			|||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                logger.error(`Unknown syndicate or tier: ${RewardInfo.challengeMissionId}`);
 | 
					                logger.error(`Unknown syndicate or tier: ${RewardInfo.challengeMissionId}`);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        } else if (RewardInfo.VaultsCracked) {
 | 
					 | 
				
			||||||
            // For Spy missions, e.g. 3 vaults cracked = A, B, C
 | 
					 | 
				
			||||||
            for (let i = 0; i != RewardInfo.VaultsCracked; ++i) {
 | 
					 | 
				
			||||||
                rotations.push(i);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            const rotationCount = RewardInfo.rewardQualifications?.length || 0;
 | 
					            rotations = getRotations(RewardInfo, tierOverride);
 | 
				
			||||||
            rotations = getRotations(rotationCount, tierOverride);
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if (rewardManifests.length != 0) {
 | 
					        if (rewardManifests.length != 0) {
 | 
				
			||||||
            logger.debug(`generating random mission rewards`, { rewardManifests, rotations });
 | 
					            logger.debug(`generating random mission rewards`, { rewardManifests, rotations });
 | 
				
			||||||
 | 
				
			|||||||
@ -130,7 +130,7 @@ export type IMissionInventoryUpdateRequest = {
 | 
				
			|||||||
export interface IRewardInfo {
 | 
					export interface IRewardInfo {
 | 
				
			||||||
    node: string;
 | 
					    node: string;
 | 
				
			||||||
    VaultsCracked?: number; // for Spy missions
 | 
					    VaultsCracked?: number; // for Spy missions
 | 
				
			||||||
    rewardTier?: number;
 | 
					    rewardTier?: number; // for Rescue missions
 | 
				
			||||||
    nightmareMode?: boolean;
 | 
					    nightmareMode?: boolean;
 | 
				
			||||||
    useVaultManifest?: boolean;
 | 
					    useVaultManifest?: boolean;
 | 
				
			||||||
    EnemyCachesFound?: number;
 | 
					    EnemyCachesFound?: number;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user