fix: respect rewardTier for rescue missions (#1650)
All checks were successful
Build Docker image / docker (push) Successful in 46s
Build / build (push) Successful in 1m42s

Reviewed-on: #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:
Sainan 2025-04-15 10:47:38 -07:00 committed by Sainan
parent 28d7ca8ca0
commit 3165d9f459
2 changed files with 18 additions and 9 deletions

View File

@ -55,7 +55,22 @@ import { Loadout } from "../models/inventoryModels/loadoutModel";
import { ILoadoutConfigDatabase } from "../types/saveLoadoutTypes";
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];
const rotationPattern =
@ -1062,14 +1077,8 @@ function getRandomMissionDrops(RewardInfo: IRewardInfo, tierOverride: number | u
} else {
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 {
const rotationCount = RewardInfo.rewardQualifications?.length || 0;
rotations = getRotations(rotationCount, tierOverride);
rotations = getRotations(RewardInfo, tierOverride);
}
if (rewardManifests.length != 0) {
logger.debug(`generating random mission rewards`, { rewardManifests, rotations });

View File

@ -130,7 +130,7 @@ export type IMissionInventoryUpdateRequest = {
export interface IRewardInfo {
node: string;
VaultsCracked?: number; // for Spy missions
rewardTier?: number;
rewardTier?: number; // for Rescue missions
nightmareMode?: boolean;
useVaultManifest?: boolean;
EnemyCachesFound?: number;