From a62278750011adc5ef2267ba693a3d7746b56632 Mon Sep 17 00:00:00 2001 From: Sainan <63328889+Sainan@users.noreply.github.com> Date: Fri, 16 May 2025 20:00:44 -0700 Subject: [PATCH] fix: ensure guild advertisments vendor always has its 5 offers (#2078) Because the per-bin limits are not respected right now, it was possible that some clan tiers simply don't have an offer some weeks. Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/2078 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com> --- src/services/serversideVendorsService.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/services/serversideVendorsService.ts b/src/services/serversideVendorsService.ts index af7d0b91..4db66173 100644 --- a/src/services/serversideVendorsService.ts +++ b/src/services/serversideVendorsService.ts @@ -207,7 +207,12 @@ const generateVendorManifest = (vendorInfo: IGeneratableVendorInfo): IVendorMani const rng = new SRng(mixSeeds(vendorSeed, cycleIndex)); const manifest = ExportVendors[vendorInfo.TypeName]; const offersToAdd = []; - if (manifest.numItems && !manifest.isOneBinPerCycle) { + if ( + manifest.numItems && + (manifest.numItems.minValue != manifest.numItems.maxValue || + manifest.items.length != manifest.numItems.minValue) && + !manifest.isOneBinPerCycle + ) { const numItemsTarget = rng.randomInt(manifest.numItems.minValue, manifest.numItems.maxValue); while (processed.ItemManifest.length + offersToAdd.length < numItemsTarget) { // TODO: Consider per-bin item limits