From f82cbc189b595d0790636408a79f39c2b9ba3b72 Mon Sep 17 00:00:00 2001 From: Dev Date: Tue, 23 Apr 2024 09:34:01 +0100 Subject: [PATCH] Improved how `drawAmmoTpl()` handles bad static ammo distribution data input --- project/src/helpers/ItemHelper.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/project/src/helpers/ItemHelper.ts b/project/src/helpers/ItemHelper.ts index e39f69a6..074cd195 100644 --- a/project/src/helpers/ItemHelper.ts +++ b/project/src/helpers/ItemHelper.ts @@ -1198,6 +1198,7 @@ export class ItemHelper const cartridgeTpl = this.drawAmmoTpl( chosenCaliber, staticAmmoDist, + weapon?._props.defAmmo, weapon?._props?.Chambers[0]?._props?.filters[0]?.Filter, ); this.fillMagazineWithCartridge(magazine, magTemplate, cartridgeTpl, minSizePercent); @@ -1306,12 +1307,14 @@ export class ItemHelper * Chose a randomly weighted cartridge that fits * @param caliber Desired caliber * @param staticAmmoDist Cartridges and thier weights + * @param fallbackCartridgeTpl If a cartridge cannot be found in the above staticAmmoDist param, use this instead * @param cartridgeWhitelist OPTIONAL whitelist for cartridges * @returns Tpl of cartridge */ protected drawAmmoTpl( caliber: string, staticAmmoDist: Record, + fallbackCartridgeTpl: string, cartridgeWhitelist: string[] = null, ): string { @@ -1319,14 +1322,20 @@ export class ItemHelper const ammos = staticAmmoDist[caliber]; if (!ammos) { - this.logger.error(`Missing caliber data for: ${caliber}`); + this.logger.error( + `Unable to pick a cartridge for caliber: ${caliber} as staticAmmoDist has no data. using fallback value of ${fallbackCartridgeTpl}`, + ); + + return fallbackCartridgeTpl; } if (!Array.isArray(ammos)) { this.logger.error( - `Unable to pick a cartridge for caliber ${caliber}, chosen staticAmmoDist data is not an array: ${ammos}`, + `Unable to pick a cartridge for caliber: ${caliber}, the chosen staticAmmoDist data is not an array. Using fallback value of ${fallbackCartridgeTpl}`, ); + + return fallbackCartridgeTpl; } for (const icd of ammos)