fix: infinite loop when attempting to generate loid commisions (#2399)
All checks were successful
Build / build (push) Successful in 1m2s
Build Docker image / docker-amd64 (push) Successful in 1m17s
Build Docker image / docker-arm64 (push) Successful in 1m4s

Reviewed-on: #2399
Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com>
Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
This commit is contained in:
Sainan 2025-07-04 03:26:41 -07:00 committed by Sainan
parent b2de8608c6
commit e09e5ebec2

View File

@ -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`);
}
}