From 050edec9f3e3cd7c1ac5f1e353766d645d2d918e Mon Sep 17 00:00:00 2001 From: Chomp Date: Sat, 7 Dec 2024 10:04:12 +0000 Subject: [PATCH] Renamed `getRandomLoot` to `generateRandomisedItemsAndAddToRewardPool` Removed hard-coded money/ammo blacklist from `generateRandomisedItemsAndAddToRewardPool()` and moved into config Updated function to check chosen reward items parentid against item reward blacklist --- project/src/services/CircleOfCultistService.ts | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/project/src/services/CircleOfCultistService.ts b/project/src/services/CircleOfCultistService.ts index 638371cb..08917696 100644 --- a/project/src/services/CircleOfCultistService.ts +++ b/project/src/services/CircleOfCultistService.ts @@ -630,7 +630,7 @@ export class CircleOfCultistService { case CircleRewardType.RANDOM: { // Does reward pass the high value threshold const isHighValueReward = craftingInfo.rewardAmountRoubles >= cultistCircleConfig.highValueThresholdRub; - this.getRandomLoot(rewardPool, itemRewardBlacklist, isHighValueReward); + this.generateRandomisedItemsAndAddToRewardPool(rewardPool, itemRewardBlacklist, isHighValueReward); break; } @@ -641,7 +641,7 @@ export class CircleOfCultistService { // If we have no tasks or hideout stuff left or need more loot to fill it out, default to high value if (rewardPool.size < cultistCircleConfig.maxRewardItemCount + 2) { - this.getRandomLoot(rewardPool, itemRewardBlacklist, true); + this.generateRandomisedItemsAndAddToRewardPool(rewardPool, itemRewardBlacklist, true); } break; } @@ -737,10 +737,14 @@ export class CircleOfCultistService { * Get array of random reward items * @param rewardPool Reward pool to add to * @param itemRewardBlacklist Reward Blacklist - * @param valuable Should these items meet the valuable threshold + * @param itemsShouldBeHighValue Should these items meet the valuable threshold * @returns rewardPool */ - protected getRandomLoot(rewardPool: Set, itemRewardBlacklist: string[], valuable: boolean): Set { + protected generateRandomisedItemsAndAddToRewardPool( + rewardPool: Set, + itemRewardBlacklist: string[], + itemsShouldBeHighValue: boolean, + ): Set { const allItems = this.itemHelper.getItems(); let currentItemCount = 0; let attempts = 0; @@ -753,15 +757,14 @@ export class CircleOfCultistService { const randomItem = this.randomUtil.getArrayValue(allItems); if ( itemRewardBlacklist.includes(randomItem._id) || - BaseClasses.AMMO === randomItem._parent || - BaseClasses.MONEY === randomItem._parent || + itemRewardBlacklist.includes(randomItem._parent) || !this.itemHelper.isValidItem(randomItem._id) ) { continue; } // Valuable check - if (valuable) { + if (itemsShouldBeHighValue) { const itemValue = this.itemHelper.getItemMaxPrice(randomItem._id); if (itemValue < this.hideoutConfig.cultistCircle.highValueThresholdRub) { this.logger.debug(`Ignored due to value: ${this.itemHelper.getItemName(randomItem._id)}`); @@ -772,6 +775,7 @@ export class CircleOfCultistService { rewardPool.add(randomItem._id); currentItemCount++; } + return rewardPool; }