From 673256e5fac0685963d466df8bf7f8001c677936 Mon Sep 17 00:00:00 2001 From: Dev Date: Sun, 26 May 2024 16:32:39 +0100 Subject: [PATCH] Added `disableLootOnBotTypes` property to `bot.json` config to allow disabling loot on bots by their type --- project/assets/configs/bot.json | 3 ++- project/src/generators/BotLootGenerator.ts | 19 ++++++++++++++----- project/src/models/spt/config/IBotConfig.ts | 2 ++ 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/project/assets/configs/bot.json b/project/assets/configs/bot.json index c0669b73..008ca400 100644 --- a/project/assets/configs/bot.json +++ b/project/assets/configs/bot.json @@ -2680,5 +2680,6 @@ } } }, - "lowProfileGasBlockTpls": ["61702f1b67085e45ef140b26", "5dfa3d45dfc58d14537c20b0", "5bb20dcad4351e3bac1212da", "56eabcd4d2720b66698b4574", "6065dc8a132d4d12c81fd8e3", "55d4af3a4bdc2d972f8b456f"] + "lowProfileGasBlockTpls": ["61702f1b67085e45ef140b26", "5dfa3d45dfc58d14537c20b0", "5bb20dcad4351e3bac1212da", "56eabcd4d2720b66698b4574", "6065dc8a132d4d12c81fd8e3", "55d4af3a4bdc2d972f8b456f"], + "disableLootOnBots": ["assault"] } \ No newline at end of file diff --git a/project/src/generators/BotLootGenerator.ts b/project/src/generators/BotLootGenerator.ts index 3cc8cc0c..44fb6c46 100644 --- a/project/src/generators/BotLootGenerator.ts +++ b/project/src/generators/BotLootGenerator.ts @@ -104,13 +104,13 @@ export class BotLootGenerator return; } - const backpackLootCount = Number( + let backpackLootCount = Number( this.weightedRandomHelper.getWeightedValue(itemCounts.backpackLoot.weights), ); - const pocketLootCount = Number( + let pocketLootCount = Number( this.weightedRandomHelper.getWeightedValue(itemCounts.pocketLoot.weights), ); - const vestLootCount = this.weightedRandomHelper.getWeightedValue(itemCounts.vestLoot.weights); + let vestLootCount = this.weightedRandomHelper.getWeightedValue(itemCounts.vestLoot.weights); const specialLootItemCount = Number( this.weightedRandomHelper.getWeightedValue(itemCounts.specialItems.weights), ); @@ -120,14 +120,23 @@ export class BotLootGenerator const foodItemCount = Number(this.weightedRandomHelper.getWeightedValue(itemCounts.food.weights)); const drinkItemCount = Number(this.weightedRandomHelper.getWeightedValue(itemCounts.drink.weights)); - const currencyItemCount = Number( + let currencyItemCount = Number( this.weightedRandomHelper.getWeightedValue(itemCounts.currency.weights), ); const stimItemCount = Number(this.weightedRandomHelper.getWeightedValue(itemCounts.stims.weights)); const grenadeCount = Number(this.weightedRandomHelper.getWeightedValue(itemCounts.grenades.weights)); - // Forced pmc healing loot + // If bot has been flagged as not having loot, set below counts to 0 + if (this.botConfig.disableLootOnBotTypes?.includes(botRole.toLowerCase())) + { + backpackLootCount = 0; + pocketLootCount = 0; + vestLootCount = 0; + currencyItemCount = 0; + } + + // Forced pmc healing loot into secure container if (isPmc && this.pmcConfig.forceHealingItemsIntoSecure) { this.addForcedMedicalItemsToPmcSecure(botInventory, botRole); diff --git a/project/src/models/spt/config/IBotConfig.ts b/project/src/models/spt/config/IBotConfig.ts index 7599944c..7780e685 100644 --- a/project/src/models/spt/config/IBotConfig.ts +++ b/project/src/models/spt/config/IBotConfig.ts @@ -43,6 +43,8 @@ export interface IBotConfig extends IBaseConfig currencyStackSize: Record>> /** Tpls for low profile gas blocks */ lowProfileGasBlockTpls: string[] + /** What bottypes should be excluded from having loot generated on them (backpack/pocket/vest) */ + disableLootOnBotTypes: string[] } /** Number of bots to generate and store in cache on raid start per bot type */