From 2f919c795c8bc589f416f020690a8d851eb8332a Mon Sep 17 00:00:00 2001 From: Dev Date: Mon, 22 May 2023 12:25:19 +0100 Subject: [PATCH] Fix issue with scav case rewards failing + made function reward level handling more robust --- .../src/generators/ScavCaseRewardGenerator.ts | 22 +++++++++---------- .../hideout/ScavCaseRewardCountsAndPrices.ts | 6 ++--- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/project/src/generators/ScavCaseRewardGenerator.ts b/project/src/generators/ScavCaseRewardGenerator.ts index 194946ae..5c7ffeb3 100644 --- a/project/src/generators/ScavCaseRewardGenerator.ts +++ b/project/src/generators/ScavCaseRewardGenerator.ts @@ -55,14 +55,14 @@ export class ScavCaseRewardGenerator const dbItems = this.getDbItems(); // Get items that fit the price criteria as set by the scavCase config - const commonPricedItems = this.getFilteredItemsByPrice(dbItems, rewardItemCounts.common); - const rarePricedItems = this.getFilteredItemsByPrice(dbItems, rewardItemCounts.rare); - const superRarePricedItems = this.getFilteredItemsByPrice(dbItems, rewardItemCounts.superrare); + const commonPricedItems = this.getFilteredItemsByPrice(dbItems, rewardItemCounts.Common); + const rarePricedItems = this.getFilteredItemsByPrice(dbItems, rewardItemCounts.Rare); + const superRarePricedItems = this.getFilteredItemsByPrice(dbItems, rewardItemCounts.Superrare); // Get randomly picked items from each item collction, the count range of which is defined in hideout/scavcase.json - const randomlyPickedCommonRewards = this.pickRandomRewards(commonPricedItems, rewardItemCounts.common, "common"); - const randomlyPickedRareRewards = this.pickRandomRewards(rarePricedItems, rewardItemCounts.rare, "rare"); - const randomlyPickedSuperRareRewards = this.pickRandomRewards(superRarePricedItems, rewardItemCounts.superrare, "superrare"); + const randomlyPickedCommonRewards = this.pickRandomRewards(commonPricedItems, rewardItemCounts.Common, "common"); + const randomlyPickedRareRewards = this.pickRandomRewards(rarePricedItems, rewardItemCounts.Rare, "rare"); + const randomlyPickedSuperRareRewards = this.pickRandomRewards(superRarePricedItems, rewardItemCounts.Superrare, "superrare"); // Add randomised stack sizes to ammo and money rewards const commonRewards = this.randomiseContainerItemRewards(randomlyPickedCommonRewards, "common"); @@ -269,14 +269,14 @@ export class ScavCaseRewardGenerator } /** - * Gathers the reward options from config and scavcase.json into a single object + * Gathers the reward min and max count params for each reward quality level from config and scavcase.json into a single object * @param scavCaseDetails scavcase.json values * @returns ScavCaseRewardCountsAndPrices object */ protected getScavCaseRewardCountsAndPrices(scavCaseDetails: IHideoutScavCase): ScavCaseRewardCountsAndPrices { - const rewardTypes: (keyof ScavCaseRewardCountsAndPrices)[] = ["common", "rare", "superrare"]; - const result: Partial = {}; + const rewardTypes = Object.keys(scavCaseDetails.EndProducts) as Array; // Default is ["Common", "Rare", "Superrare"]; + const result: Partial = {}; // Make partial object as we're going to add all the data immediately after // Create reward min/max counts for each type for (const rewardType of rewardTypes) @@ -285,8 +285,8 @@ export class ScavCaseRewardGenerator { minCount: scavCaseDetails.EndProducts[rewardType].min, maxCount: scavCaseDetails.EndProducts[rewardType].max, - minPriceRub: this.scavCaseConfig.rewardItemValueRangeRub[rewardType].min, - maxPriceRub: this.scavCaseConfig.rewardItemValueRangeRub[rewardType].max + minPriceRub: this.scavCaseConfig.rewardItemValueRangeRub[rewardType.toLowerCase()].min, + maxPriceRub: this.scavCaseConfig.rewardItemValueRangeRub[rewardType.toLowerCase()].max }; } diff --git a/project/src/models/spt/hideout/ScavCaseRewardCountsAndPrices.ts b/project/src/models/spt/hideout/ScavCaseRewardCountsAndPrices.ts index 7cbc342b..bf9d1794 100644 --- a/project/src/models/spt/hideout/ScavCaseRewardCountsAndPrices.ts +++ b/project/src/models/spt/hideout/ScavCaseRewardCountsAndPrices.ts @@ -1,8 +1,8 @@ export interface ScavCaseRewardCountsAndPrices { - common: RewardCountAndPriceDetails, - rare: RewardCountAndPriceDetails, - superrare: RewardCountAndPriceDetails + Common: RewardCountAndPriceDetails, + Rare: RewardCountAndPriceDetails, + Superrare: RewardCountAndPriceDetails } export interface RewardCountAndPriceDetails