返回提交历史
Modified
src/services/missionInventoryUpdateService.ts
+17
-8
Modified
src/types/requestTypes.ts
+1
-1
XFEstudio/XFESpaceNinjaServer
fix: respect rewardTier for rescue missions (#1650)
Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/1650 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
3165d9f4
代码差异
2 个文件
+18
-9
@@ -55,7 +55,22 @@ import { Loadout } from "../models/inventoryModels/loadoutModel";
55
55
import { ILoadoutConfigDatabase } from "../types/saveLoadoutTypes";
56
56
import { getWorldState } from "./worldStateService";
57
57
58
const getRotations = (rotationCount: number, tierOverride: number | undefined): number[] => {
58
const getRotations = (rewardInfo: IRewardInfo, tierOverride: number | undefined): number[] => {
59
// For Spy missions, e.g. 3 vaults cracked = A, B, C
60
if (rewardInfo.VaultsCracked) {
61
const rotations: number[] = [];
62
for (let i = 0; i != rewardInfo.VaultsCracked; ++i) {
63
rotations.push(i);
64
}
65
return rotations;
66
}
67
68
// For Rescue missions
69
if (rewardInfo.rewardTier) {
70
return [rewardInfo.rewardTier];
71
}
72
73
const rotationCount = rewardInfo.rewardQualifications?.length || 0;
59
74
if (rotationCount === 0) return [0];
60
75
61
76
const rotationPattern =
@@ -1062,14 +1077,8 @@ function getRandomMissionDrops(RewardInfo: IRewardInfo, tierOverride: number | u
1062
1077
} else {
1063
1078
logger.error(`Unknown syndicate or tier: ${RewardInfo.challengeMissionId}`);
1064
1079
}
1065
} else if (RewardInfo.VaultsCracked) {
1066
// For Spy missions, e.g. 3 vaults cracked = A, B, C
1067
for (let i = 0; i != RewardInfo.VaultsCracked; ++i) {
1068
rotations.push(i);
1069
}
1070
1080
} else {
1071
const rotationCount = RewardInfo.rewardQualifications?.length || 0;
1072
rotations = getRotations(rotationCount, tierOverride);
1081
rotations = getRotations(RewardInfo, tierOverride);
1073
1082
}
1074
1083
if (rewardManifests.length != 0) {
1075
1084
logger.debug(`generating random mission rewards`, { rewardManifests, rotations });
@@ -130,7 +130,7 @@ export type IMissionInventoryUpdateRequest = {
130
130
export interface IRewardInfo {
131
131
node: string;
132
132
VaultsCracked?: number; // for Spy missions
133
rewardTier?: number;
133
rewardTier?: number; // for Rescue missions
134
134
nightmareMode?: boolean;
135
135
useVaultManifest?: boolean;
136
136
EnemyCachesFound?: number;