Server/project/src/models/spt/config/ITraderConfig.ts

60 lines
1.8 KiB
TypeScript
Raw Normal View History

import { MinMax } from "@spt-aki/models/common/MinMax";
import { IBaseConfig } from "@spt-aki/models/spt/config/IBaseConfig";
import { LootRequest } from "@spt-aki/models/spt/services/LootRequest";
2023-03-03 16:23:46 +01:00
export interface ITraderConfig extends IBaseConfig
{
kind: "aki-trader"
updateTime: UpdateTime[]
purchasesAreFoundInRaid: boolean;
updateTimeDefault: number
traderPriceMultipler: number
2023-07-18 16:45:57 +02:00
/** Keep track of purchased trader-limited items beyond server restarts to prevent server-restart item scumming */
2023-03-03 16:23:46 +01:00
persistPurchaseDataInProfile: boolean
fence: FenceConfig
}
export interface UpdateTime
{
traderId: string
seconds: number
}
export interface FenceConfig
{
discountOptions: DiscountOptions
partialRefreshTimeSeconds: number
partialRefreshChangePercent: number
assortSize: number
maxPresetsPercent: number
itemPriceMult: number
presetPriceMult: number
armorMaxDurabilityPercentMinMax: MinMax
presetMaxDurabilityPercentMinMax: MinMax
/** Key: item tpl */
itemStackSizeOverrideMinMax: Record<string, MinMax>
2023-03-03 16:23:46 +01:00
itemTypeLimits: Record<string, number>
regenerateAssortsOnRefresh: boolean
/** Max rouble price before item is not listed on flea */
itemCategoryRoublePriceLimit: Record<string, number>
/** Each slotid with % to be removed prior to listing on fence */
presetSlotsToRemoveChancePercent: Record<string, number>
/** Block seasonal items from appearing when season is inactive */
blacklistSeasonalItems: boolean;
blacklist: string[],
coopExtractGift: CoopExtractReward
}
export interface CoopExtractReward extends LootRequest
{
sendGift: boolean
messageLocaleIds: string[]
giftExpiryHours: number
2023-03-03 16:23:46 +01:00
}
export interface DiscountOptions
{
assortSize: number
itemPriceMult: number
presetPriceMult: number
}