Skip to main content
The Deno 2 Release Candidate is here
Learn more
class TraderAssortHelper
Re-export
import { TraderAssortHelper } from "https://deno.land/x/sptaki@1.2.0/helpers/mod.ts";

Constructors

new
TraderAssortHelper(
logger: ILogger,
jsonUtil: JsonUtil,
mathUtil: MathUtil,
timeUtil: TimeUtil,
databaseServer: DatabaseServer,
profileHelper: ProfileHelper,
assortHelper: AssortHelper,
paymentHelper: PaymentHelper,
ragfairAssortGenerator: RagfairAssortGenerator,
ragfairOfferGenerator: RagfairOfferGenerator,
traderAssortService: TraderAssortService,
localisationService: LocalisationService,
traderPurchasePersisterService: TraderPurchasePersisterService,
traderHelper: TraderHelper,
fenceService: FenceService,
configServer: ConfigServer,
)

Properties

protected
assortHelper: AssortHelper
protected
configServer: ConfigServer
protected
createdMergedQuestAssorts: boolean
protected
databaseServer: DatabaseServer
protected
fenceService: FenceService
protected
jsonUtil: JsonUtil
protected
localisationService: LocalisationService
protected
logger: ILogger
protected
mathUtil: MathUtil
protected
mergedQuestAssorts: Record<string, Record<string, string>>
protected
paymentHelper: PaymentHelper
protected
profileHelper: ProfileHelper
protected
ragfairAssortGenerator: RagfairAssortGenerator
protected
ragfairOfferGenerator: RagfairOfferGenerator
protected
timeUtil: TimeUtil
protected
traderAssortService: TraderAssortService
protected
traderConfig: ITraderConfig
protected
traderHelper: TraderHelper
protected
traderPurchasePersisterService: TraderPurchasePersisterService

Methods

protected
getPristineTraderAssorts(traderId: string): Item[]

Get an array of pristine trader items prior to any alteration by player (as they were on server start)

Returns generated ragfair offers in a trader assort format

protected
hydrateMergedQuestAssorts(): void

Create a dict of all assort id = quest id mappings used to work out what items should be shown to player based on the quests they've started/completed/failed

Iterate over all assorts barter_scheme values, find barters selling for money and multiply by multipler in config

protected
resetBuyRestrictionCurrentValue(assortItems: Item[]): void

Reset every traders root item BuyRestrictionCurrent property to 0

getAssort(
sessionId: string,
traderId: string,
flea?: boolean,
): ITraderAssort

Get a traders assorts Can be used for returning ragfair / fence assorts Filter out assorts not unlocked due to level OR quest completion

Reset a traders assorts and move nextResupply value to future Flag trader as needing a flea offer reset to be picked up by flea update() function

traderAssortsHaveExpired(traderID: string): boolean

Does the supplied trader need its assorts refreshed