fix: respect rewardTier for rescue missions (#1650)
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:
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