diff --git a/src/services/serversideVendorsService.ts b/src/services/serversideVendorsService.ts index 9a7db1a5..ebdfc882 100644 --- a/src/services/serversideVendorsService.ts +++ b/src/services/serversideVendorsService.ts @@ -299,9 +299,12 @@ const generateVendorManifest = ( ? numUncountedOffers + numCountedOffers : manifest.numItems ? numUncountedOffers + - (useRng - ? rng.randomInt(manifest.numItems.minValue, manifest.numItems.maxValue) - : manifest.numItems.minValue) + Math.min( + Object.values(remainingItemCapacity).reduce((a, b) => a + b, 0), + useRng + ? rng.randomInt(manifest.numItems.minValue, manifest.numItems.maxValue) + : manifest.numItems.minValue + ) : manifest.items.length; let i = 0; const rollableOffers = manifest.items.filter(x => x.probability !== undefined) as (Omit< @@ -495,4 +498,13 @@ if (args.dev) { ) { logger.warn(`self test failed for /Lotus/Types/Game/VendorManifests/Ostron/MaskSalesmanManifest`); } + + // strange case where numItems is 5 even tho only 3 offers can possibly be generated + const loid = getVendorManifestByTypeName( + "/Lotus/Types/Game/VendorManifests/EntratiLabs/EntratiLabsCommisionsManifest", + false + )!.VendorInfo.ItemManifest; + if (loid.length != 3) { + logger.warn(`self test failed for /Lotus/Types/Game/VendorManifests/EntratiLabs/EntratiLabsCommisionsManifest`); + } }