Implement flea required searching

This commit is contained in:
Dev 2024-02-02 19:23:08 +00:00
parent ef958a115d
commit 5136d69050
2 changed files with 25 additions and 0 deletions

View File

@ -184,6 +184,11 @@ export class RagfairController
return this.ragfairOfferHelper.getOffersForBuild(searchRequest, itemsToAdd, traderAssorts, pmcProfile); return this.ragfairOfferHelper.getOffersForBuild(searchRequest, itemsToAdd, traderAssorts, pmcProfile);
} }
if (searchRequest.neededSearchId?.length > 0)
{
return this.ragfairOfferHelper.getOffersThatRequireItem(searchRequest);
}
// Searching for general items // Searching for general items
return this.ragfairOfferHelper.getValidOffers(searchRequest, itemsToAdd, traderAssorts, pmcProfile); return this.ragfairOfferHelper.getValidOffers(searchRequest, itemsToAdd, traderAssorts, pmcProfile);
} }

View File

@ -87,6 +87,13 @@ export class RagfairOfferHelper
); );
} }
public getOffersThatRequireItem(searchRequest: ISearchRequestData): IRagfairOffer[]
{
return this.ragfairOfferService.getOffers().filter((offer) =>
this.isDisplayableOfferThatNeedsItem(searchRequest, offer)
);
}
/** /**
* Get offers from flea/traders specifically when building weapon preset * Get offers from flea/traders specifically when building weapon preset
* @param searchRequest Search request data * @param searchRequest Search request data
@ -673,6 +680,19 @@ export class RagfairOfferHelper
return true; return true;
} }
public isDisplayableOfferThatNeedsItem(
searchRequest: ISearchRequestData,
offer: IRagfairOffer,
): boolean
{
if (offer.requirements.some(requirement => requirement._tpl === searchRequest.neededSearchId))
{
return true;
}
return false;
}
/** /**
* Does the passed in item have a condition property * Does the passed in item have a condition property
* @param item Item to check * @param item Item to check