From 9417aa3c8462e43950a0b0c853197ad34ba95e7d Mon Sep 17 00:00:00 2001 From: Sainan <63328889+Sainan@users.noreply.github.com> Date: Mon, 28 Apr 2025 14:01:02 -0700 Subject: [PATCH] fix: only consider market-listed blueprints for login reward (#1900) Closes #1882 Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/1900 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com> --- src/services/loginRewardService.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/services/loginRewardService.ts b/src/services/loginRewardService.ts index 2f42f04b..c897442e 100644 --- a/src/services/loginRewardService.ts +++ b/src/services/loginRewardService.ts @@ -77,7 +77,6 @@ const getRandomLoginReward = (rng: CRng, day: number, inventory: TInventoryDatab const reward = rng.randomReward(randomRewards)!; //const reward = randomRewards.find(x => x.RewardType == "RT_BOOSTER")!; if (reward.RewardType == "RT_RANDOM_RECIPE") { - // Not very faithful implementation but roughly the same idea const masteredItems = new Set(); for (const entry of inventory.XPInfo) { masteredItems.add(entry.ItemType); @@ -95,12 +94,12 @@ const getRandomLoginReward = (rng: CRng, day: number, inventory: TInventoryDatab } const eligibleRecipes: string[] = []; for (const [uniqueName, recipe] of Object.entries(ExportRecipes)) { - if (unmasteredItems.has(recipe.resultType)) { + if (!recipe.excludeFromMarket && unmasteredItems.has(recipe.resultType)) { eligibleRecipes.push(uniqueName); } } if (eligibleRecipes.length == 0) { - // This account has all warframes and weapons already mastered (filthy cheater), need a different reward. + // This account has all applicable warframes and weapons already mastered (filthy cheater), need a different reward. return getRandomLoginReward(rng, day, inventory); } reward.StoreItemType = toStoreItem(rng.randomElement(eligibleRecipes));