XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFESpaceNinjaServer

A simple server for a small space ninja game

公开
关注 0 Fork 0 Star 0
返回提交历史

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
Sainan <63328889+Sainan@users.noreply.github.com>
提交于

代码差异

1 个文件 +15 -3
Modified src/services/loginRewardService.ts +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,