返回提交历史
Modified
src/services/serversideVendorsService.ts
+15
-3
XFEstudio/SpaceNinjaServer
fix: infinite loop when attempting to generate loid commisions (#2399)
Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/2399 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
e09e5ebe
代码差异
1 个文件
+15
-3
@@ -299,9 +299,12 @@ const generateVendorManifest = (
299
299
? numUncountedOffers + numCountedOffers
300
300
: manifest.numItems
301
301
? numUncountedOffers +
302
(useRng
303
? rng.randomInt(manifest.numItems.minValue, manifest.numItems.maxValue)
304
: manifest.numItems.minValue)
302
Math.min(
303
Object.values(remainingItemCapacity).reduce((a, b) => a + b, 0),
304
useRng
305
? rng.randomInt(manifest.numItems.minValue, manifest.numItems.maxValue)
306
: manifest.numItems.minValue
307
)
305
308
: manifest.items.length;
306
309
let i = 0;
307
310
const rollableOffers = manifest.items.filter(x => x.probability !== undefined) as (Omit<
@@ -495,4 +498,13 @@ if (args.dev) {
495
498
) {
496
499
logger.warn(`self test failed for /Lotus/Types/Game/VendorManifests/Ostron/MaskSalesmanManifest`);
497
500
}
501
502
// strange case where numItems is 5 even tho only 3 offers can possibly be generated
503
const loid = getVendorManifestByTypeName(
504
"/Lotus/Types/Game/VendorManifests/EntratiLabs/EntratiLabsCommisionsManifest",
505
false
506
)!.VendorInfo.ItemManifest;
507
if (loid.length != 3) {
508
logger.warn(`self test failed for /Lotus/Types/Game/VendorManifests/EntratiLabs/EntratiLabsCommisionsManifest`);
509
}
498
510
}