From 0ace5eb446194bbb8ad4c8ca34aa48b64fd8b02a Mon Sep 17 00:00:00 2001 From: Sainan Date: Fri, 17 Jan 2025 14:43:09 +0100 Subject: [PATCH] fix: identify correct offer for when teshin has 2 kuva offers up (#797) --- src/services/purchaseService.ts | 15 ++++++++------- src/types/purchaseTypes.ts | 2 ++ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/services/purchaseService.ts b/src/services/purchaseService.ts index 2d2e4beb..d3f7163c 100644 --- a/src/services/purchaseService.ts +++ b/src/services/purchaseService.ts @@ -49,14 +49,15 @@ export const handlePurchase = async ( if (purchaseRequest.PurchaseParams.Source == 7) { const manifest = getVendorManifestByOid(purchaseRequest.PurchaseParams.SourceId!); - if (manifest) { - const offer = manifest.VendorInfo.ItemManifest.find( - x => x.StoreItem == purchaseRequest.PurchaseParams.StoreItem - ); - if (offer) { - purchaseRequest.PurchaseParams.Quantity *= offer.QuantityMultiplier; - } + if (!manifest) { + throw new Error(`unknown vendor id: ${purchaseRequest.PurchaseParams.SourceId!}`); } + const ItemId = (JSON.parse(purchaseRequest.PurchaseParams.ExtraPurchaseInfoJson!) as { ItemId: string }).ItemId; + const offer = manifest.VendorInfo.ItemManifest.find(x => x.Id.$oid == ItemId); + if (!offer) { + throw new Error(`unknown vendor offer: ${ItemId}`); + } + purchaseRequest.PurchaseParams.Quantity *= offer.QuantityMultiplier; } const purchaseResponse = await handleStoreItemAcquisition( diff --git a/src/types/purchaseTypes.ts b/src/types/purchaseTypes.ts index 19e8ff33..2aca5212 100644 --- a/src/types/purchaseTypes.ts +++ b/src/types/purchaseTypes.ts @@ -17,6 +17,8 @@ export interface IPurchaseParams { ExpectedPrice: number; SyndicateTag?: string; // for Source 2 UseFreeFavor?: boolean; // for Source 2 + ExtraPurchaseInfoJson?: string; // for Source 7 + IsWeekly?: boolean; // for Source 7 } export interface ICurrencyChanges {