Fix preset buy searches not filtering items based on search criteria/player level

This commit is contained in:
Dev 2024-02-04 09:31:00 +00:00
parent ff4b1f95be
commit 193161f786

View File

@ -121,21 +121,26 @@ export class RagfairOfferHelper
* @param searchRequest Search request data * @param searchRequest Search request data
* @param itemsToAdd string array of item tpls to search for * @param itemsToAdd string array of item tpls to search for
* @param traderAssorts All trader assorts player can access/buy * @param traderAssorts All trader assorts player can access/buy
* @param pmcProfile Player profile * @param pmcData Player profile
* @returns IRagfairOffer array * @returns IRagfairOffer array
*/ */
public getOffersForBuild( public getOffersForBuild(
searchRequest: ISearchRequestData, searchRequest: ISearchRequestData,
itemsToAdd: string[], itemsToAdd: string[],
traderAssorts: Record<string, ITraderAssort>, traderAssorts: Record<string, ITraderAssort>,
pmcProfile: IPmcData, pmcData: IPmcData,
): IRagfairOffer[] ): IRagfairOffer[]
{ {
const offersMap = new Map<string, IRagfairOffer[]>(); const offersMap = new Map<string, IRagfairOffer[]>();
const offers: IRagfairOffer[] = []; const offers: IRagfairOffer[] = [];
for (const offer of this.ragfairOfferService.getOffers()) for (const offer of this.ragfairOfferService.getOffers())
{ {
if (this.isDisplayableOffer(searchRequest, itemsToAdd, traderAssorts, offer, pmcProfile)) if (!this.passesSearchFilterCriteria(searchRequest, offer, pmcData))
{
continue;
}
if (this.isDisplayableOffer(searchRequest, itemsToAdd, traderAssorts, offer, pmcData))
{ {
const isTraderOffer = offer.user.memberType === MemberCategory.TRADER; const isTraderOffer = offer.user.memberType === MemberCategory.TRADER;
@ -154,7 +159,7 @@ export class RagfairOfferHelper
continue; continue;
} }
if (isTraderOffer && this.traderOfferLockedBehindLoyaltyLevel(offer, pmcProfile)) if (isTraderOffer && this.traderOfferLockedBehindLoyaltyLevel(offer, pmcData))
{ {
continue; continue;
} }
@ -177,7 +182,7 @@ export class RagfairOfferHelper
// multiple offers for item = is greyed out // multiple offers for item = is greyed out
if (possibleOffers.length > 1) if (possibleOffers.length > 1)
{ {
const lockedOffers = this.getLoyaltyLockedOffers(possibleOffers, pmcProfile); const lockedOffers = this.getLoyaltyLockedOffers(possibleOffers, pmcData);
// Exclude locked offers + above loyalty locked offers if at least 1 was found // Exclude locked offers + above loyalty locked offers if at least 1 was found
const availableOffers = possibleOffers.filter((x) => !(x.locked || lockedOffers.includes(x._id))); const availableOffers = possibleOffers.filter((x) => !(x.locked || lockedOffers.includes(x._id)));