返回提交历史
Modified
src/services/loginRewardService.ts
+15
-3
XFEstudio/XFESpaceNinjaServer
fix: resolve random relic booster pack for login reward (#2101)
Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/2101 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
84916bf6
代码差异
1 个文件
+15
-3
@@ -5,7 +5,13 @@ import { mixSeeds, SRng } from "./rngService";
5
5
import { TInventoryDatabaseDocument } from "../models/inventoryModels/inventoryModel";
6
6
import { addBooster, updateCurrency } from "./inventoryService";
7
7
import { handleStoreItemAcquisition } from "./purchaseService";
8
import { ExportBoosters, ExportRecipes, ExportWarframes, ExportWeapons } from "warframe-public-export-plus";
8
import {
9
ExportBoosterPacks,
10
ExportBoosters,
11
ExportRecipes,
12
ExportWarframes,
13
ExportWeapons
14
} from "warframe-public-export-plus";
9
15
import { toStoreItem } from "./itemDataService";
10
16
11
17
export interface ILoginRewardsReponse {
@@ -76,6 +82,7 @@ export const getRandomLoginRewards = (
76
82
const getRandomLoginReward = (rng: SRng, day: number, inventory: TInventoryDatabaseDocument): ILoginReward => {
77
83
const reward = rng.randomReward(randomRewards)!;
78
84
//const reward = randomRewards.find(x => x.RewardType == "RT_BOOSTER")!;
85
let storeItemType: string = reward.StoreItemType;
79
86
if (reward.RewardType == "RT_RANDOM_RECIPE") {
80
87
const masteredItems = new Set();
81
88
for (const entry of inventory.XPInfo) {
@@ -102,7 +109,12 @@ const getRandomLoginReward = (rng: SRng, day: number, inventory: TInventoryDatab
102
109
// This account has all applicable warframes and weapons already mastered (filthy cheater), need a different reward.
103
110
return getRandomLoginReward(rng, day, inventory);
104
111
}
105
reward.StoreItemType = toStoreItem(rng.randomElement(eligibleRecipes)!);
112
storeItemType = toStoreItem(rng.randomElement(eligibleRecipes)!);
113
} else if (reward.StoreItemType == "/Lotus/StoreItems/Types/BoosterPacks/LoginRewardRandomProjection") {
114
storeItemType = toStoreItem(
115
rng.randomElement(ExportBoosterPacks["/Lotus/Types/BoosterPacks/LoginRewardRandomProjection"].components)!
116
.Item
117
);
106
118
}
107
119
return {
108
120
//_id: toOid(new Types.ObjectId()),
@@ -110,7 +122,7 @@ const getRandomLoginReward = (rng: SRng, day: number, inventory: TInventoryDatab
110
122
//CouponType: "CPT_PLATINUM",
111
123
Icon: reward.Icon ?? "",
112
124
//ItemType: "",
113
StoreItemType: reward.StoreItemType,
125
StoreItemType: storeItemType,
114
126
//ProductCategory: "Pistols",
115
127
Amount: reward.Duration ? 1 : Math.round(scaleAmount(day, reward.Amount, reward.ScalingMultiplier)),
116
128
ScalingMultiplier: reward.ScalingMultiplier,