Improved how drawAmmoTpl()
handles bad static ammo distribution data input
This commit is contained in:
parent
be841fbe3f
commit
f82cbc189b
@ -1198,6 +1198,7 @@ export class ItemHelper
|
|||||||
const cartridgeTpl = this.drawAmmoTpl(
|
const cartridgeTpl = this.drawAmmoTpl(
|
||||||
chosenCaliber,
|
chosenCaliber,
|
||||||
staticAmmoDist,
|
staticAmmoDist,
|
||||||
|
weapon?._props.defAmmo,
|
||||||
weapon?._props?.Chambers[0]?._props?.filters[0]?.Filter,
|
weapon?._props?.Chambers[0]?._props?.filters[0]?.Filter,
|
||||||
);
|
);
|
||||||
this.fillMagazineWithCartridge(magazine, magTemplate, cartridgeTpl, minSizePercent);
|
this.fillMagazineWithCartridge(magazine, magTemplate, cartridgeTpl, minSizePercent);
|
||||||
@ -1306,12 +1307,14 @@ export class ItemHelper
|
|||||||
* Chose a randomly weighted cartridge that fits
|
* Chose a randomly weighted cartridge that fits
|
||||||
* @param caliber Desired caliber
|
* @param caliber Desired caliber
|
||||||
* @param staticAmmoDist Cartridges and thier weights
|
* @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
|
* @param cartridgeWhitelist OPTIONAL whitelist for cartridges
|
||||||
* @returns Tpl of cartridge
|
* @returns Tpl of cartridge
|
||||||
*/
|
*/
|
||||||
protected drawAmmoTpl(
|
protected drawAmmoTpl(
|
||||||
caliber: string,
|
caliber: string,
|
||||||
staticAmmoDist: Record<string, IStaticAmmoDetails[]>,
|
staticAmmoDist: Record<string, IStaticAmmoDetails[]>,
|
||||||
|
fallbackCartridgeTpl: string,
|
||||||
cartridgeWhitelist: string[] = null,
|
cartridgeWhitelist: string[] = null,
|
||||||
): string
|
): string
|
||||||
{
|
{
|
||||||
@ -1319,14 +1322,20 @@ export class ItemHelper
|
|||||||
const ammos = staticAmmoDist[caliber];
|
const ammos = staticAmmoDist[caliber];
|
||||||
if (!ammos)
|
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))
|
if (!Array.isArray(ammos))
|
||||||
{
|
{
|
||||||
this.logger.error(
|
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)
|
for (const icd of ammos)
|
||||||
|
Loading…
Reference in New Issue
Block a user