Block seasonal items when not inside active season (christmas/halloween so far)

This commit is contained in:
Dev 2023-07-22 14:11:47 +01:00
parent c3a4caa38a
commit a04113eaa1
2 changed files with 11 additions and 1 deletions

View File

@ -13,6 +13,7 @@ import { ILogger } from "../models/spt/utils/ILogger";
import { ConfigServer } from "../servers/ConfigServer"; import { ConfigServer } from "../servers/ConfigServer";
import { DatabaseServer } from "../servers/DatabaseServer"; import { DatabaseServer } from "../servers/DatabaseServer";
import { ItemFilterService } from "../services/ItemFilterService"; import { ItemFilterService } from "../services/ItemFilterService";
import { SeasonalEventService } from "../services/SeasonalEventService";
@injectable() @injectable()
export class FenceBaseAssortGenerator export class FenceBaseAssortGenerator
@ -25,6 +26,7 @@ export class FenceBaseAssortGenerator
@inject("HandbookHelper") protected handbookHelper: HandbookHelper, @inject("HandbookHelper") protected handbookHelper: HandbookHelper,
@inject("ItemHelper") protected itemHelper: ItemHelper, @inject("ItemHelper") protected itemHelper: ItemHelper,
@inject("ItemFilterService") protected itemFilterService: ItemFilterService, @inject("ItemFilterService") protected itemFilterService: ItemFilterService,
@inject("SeasonalEventService") protected seasonalEventService: SeasonalEventService,
@inject("ConfigServer") protected configServer: ConfigServer @inject("ConfigServer") protected configServer: ConfigServer
) )
{ {
@ -36,6 +38,8 @@ export class FenceBaseAssortGenerator
*/ */
public generateFenceBaseAssorts(): void public generateFenceBaseAssorts(): void
{ {
const blockedSeasonalItems = this.seasonalEventService.getSeasonalEventItemsToBlock();
const baseFenceAssort = this.databaseServer.getTables().traders[Traders.FENCE].assort; const baseFenceAssort = this.databaseServer.getTables().traders[Traders.FENCE].assort;
const dbItems = Object.values(this.databaseServer.getTables().templates.items); const dbItems = Object.values(this.databaseServer.getTables().templates.items);
@ -68,6 +72,12 @@ export class FenceBaseAssortGenerator
} }
} }
// Skip seasonal event items when not in seasonal event
if (blockedSeasonalItems.includes(item._id))
{
continue;
}
// Create barter scheme object // Create barter scheme object
const barterSchemeToAdd: IBarterScheme = { const barterSchemeToAdd: IBarterScheme = {
count: Math.round(this.handbookHelper.getTemplatePrice(item._id) * this.traderConfig.fence.itemPriceMult), count: Math.round(this.handbookHelper.getTemplatePrice(item._id) * this.traderConfig.fence.itemPriceMult),

View File

@ -118,7 +118,7 @@ export class SeasonalEventService
} }
/** /**
* Get an array of seasonal items that should be blocked as seasonal is not active * Get an array of seasonal items that should be blocked as season is not currently active
* @returns Array of tpl strings * @returns Array of tpl strings
*/ */
public getSeasonalEventItemsToBlock(): string[] public getSeasonalEventItemsToBlock(): string[]