mirror of
https://github.com/sp-tarkov/server.git
synced 2025-02-13 03:10:44 -05:00
Replaced uses of DatabaseServer
with DatabaseService
This commit is contained in:
parent
b9148514ce
commit
7d515ad680
@ -24,7 +24,7 @@ export class DataCallbacks
|
|||||||
{
|
{
|
||||||
constructor(
|
constructor(
|
||||||
@inject("HttpResponseUtil") protected httpResponse: HttpResponseUtil,
|
@inject("HttpResponseUtil") protected httpResponse: HttpResponseUtil,
|
||||||
@inject("DatabaseService") protected databaseServer: DatabaseService,
|
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||||
@inject("RagfairController") protected ragfairController: RagfairController,
|
@inject("RagfairController") protected ragfairController: RagfairController,
|
||||||
@inject("HideoutController") protected hideoutController: HideoutController,
|
@inject("HideoutController") protected hideoutController: HideoutController,
|
||||||
)
|
)
|
||||||
@ -36,7 +36,7 @@ export class DataCallbacks
|
|||||||
*/
|
*/
|
||||||
public getSettings(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<ISettingsBase>
|
public getSettings(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<ISettingsBase>
|
||||||
{
|
{
|
||||||
return this.httpResponse.getBody(this.databaseServer.getSettings());
|
return this.httpResponse.getBody(this.databaseService.getSettings());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -45,10 +45,10 @@ export class DataCallbacks
|
|||||||
*/
|
*/
|
||||||
public getGlobals(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<IGlobals>
|
public getGlobals(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<IGlobals>
|
||||||
{
|
{
|
||||||
const globals = this.databaseServer.getGlobals();
|
const globals = this.databaseService.getGlobals();
|
||||||
globals.time = Date.now() / 1000;
|
globals.time = Date.now() / 1000;
|
||||||
|
|
||||||
return this.httpResponse.getBody(this.databaseServer.getGlobals());
|
return this.httpResponse.getBody(this.databaseService.getGlobals());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -57,7 +57,7 @@ export class DataCallbacks
|
|||||||
*/
|
*/
|
||||||
public getTemplateItems(url: string, info: IEmptyRequestData, sessionID: string): string
|
public getTemplateItems(url: string, info: IEmptyRequestData, sessionID: string): string
|
||||||
{
|
{
|
||||||
return this.httpResponse.getUnclearedBody(this.databaseServer.getItems());
|
return this.httpResponse.getUnclearedBody(this.databaseService.getItems());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -70,7 +70,7 @@ export class DataCallbacks
|
|||||||
sessionID: string,
|
sessionID: string,
|
||||||
): IGetBodyResponseData<IHandbookBase>
|
): IGetBodyResponseData<IHandbookBase>
|
||||||
{
|
{
|
||||||
return this.httpResponse.getBody(this.databaseServer.getHandbook());
|
return this.httpResponse.getBody(this.databaseService.getHandbook());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -83,7 +83,7 @@ export class DataCallbacks
|
|||||||
sessionID: string,
|
sessionID: string,
|
||||||
): IGetBodyResponseData<Record<string, ICustomizationItem>>
|
): IGetBodyResponseData<Record<string, ICustomizationItem>>
|
||||||
{
|
{
|
||||||
return this.httpResponse.getBody(this.databaseServer.getTemplates().customization);
|
return this.httpResponse.getBody(this.databaseService.getTemplates().customization);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -96,7 +96,7 @@ export class DataCallbacks
|
|||||||
sessionID: string,
|
sessionID: string,
|
||||||
): IGetBodyResponseData<string[]>
|
): IGetBodyResponseData<string[]>
|
||||||
{
|
{
|
||||||
return this.httpResponse.getBody(this.databaseServer.getTemplates().character);
|
return this.httpResponse.getBody(this.databaseService.getTemplates().character);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -109,7 +109,7 @@ export class DataCallbacks
|
|||||||
sessionID: string,
|
sessionID: string,
|
||||||
): IGetBodyResponseData<IHideoutSettingsBase>
|
): IGetBodyResponseData<IHideoutSettingsBase>
|
||||||
{
|
{
|
||||||
return this.httpResponse.getBody(this.databaseServer.getHideout().settings);
|
return this.httpResponse.getBody(this.databaseService.getHideout().settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
public getHideoutAreas(
|
public getHideoutAreas(
|
||||||
@ -118,7 +118,7 @@ export class DataCallbacks
|
|||||||
sessionID: string,
|
sessionID: string,
|
||||||
): IGetBodyResponseData<IHideoutArea[]>
|
): IGetBodyResponseData<IHideoutArea[]>
|
||||||
{
|
{
|
||||||
return this.httpResponse.getBody(this.databaseServer.getHideout().areas);
|
return this.httpResponse.getBody(this.databaseService.getHideout().areas);
|
||||||
}
|
}
|
||||||
|
|
||||||
public gethideoutProduction(
|
public gethideoutProduction(
|
||||||
@ -127,7 +127,7 @@ export class DataCallbacks
|
|||||||
sessionID: string,
|
sessionID: string,
|
||||||
): IGetBodyResponseData<IHideoutProduction[]>
|
): IGetBodyResponseData<IHideoutProduction[]>
|
||||||
{
|
{
|
||||||
return this.httpResponse.getBody(this.databaseServer.getHideout().production);
|
return this.httpResponse.getBody(this.databaseService.getHideout().production);
|
||||||
}
|
}
|
||||||
|
|
||||||
public getHideoutScavcase(
|
public getHideoutScavcase(
|
||||||
@ -136,7 +136,7 @@ export class DataCallbacks
|
|||||||
sessionID: string,
|
sessionID: string,
|
||||||
): IGetBodyResponseData<IHideoutScavCase[]>
|
): IGetBodyResponseData<IHideoutScavCase[]>
|
||||||
{
|
{
|
||||||
return this.httpResponse.getBody(this.databaseServer.getHideout().scavcase);
|
return this.httpResponse.getBody(this.databaseService.getHideout().scavcase);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -148,7 +148,7 @@ export class DataCallbacks
|
|||||||
sessionID: string,
|
sessionID: string,
|
||||||
): IGetBodyResponseData<Record<string, string>>
|
): IGetBodyResponseData<Record<string, string>>
|
||||||
{
|
{
|
||||||
return this.httpResponse.getBody(this.databaseServer.getLocales().languages);
|
return this.httpResponse.getBody(this.databaseService.getLocales().languages);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -157,7 +157,7 @@ export class DataCallbacks
|
|||||||
public getLocalesMenu(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<string>
|
public getLocalesMenu(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<string>
|
||||||
{
|
{
|
||||||
const localeId = url.replace("/client/menu/locale/", "");
|
const localeId = url.replace("/client/menu/locale/", "");
|
||||||
const locales = this.databaseServer.getLocales();
|
const locales = this.databaseService.getLocales();
|
||||||
let result = locales.menu[localeId];
|
let result = locales.menu[localeId];
|
||||||
|
|
||||||
if (result === undefined)
|
if (result === undefined)
|
||||||
@ -177,7 +177,7 @@ export class DataCallbacks
|
|||||||
public getLocalesGlobal(url: string, info: IEmptyRequestData, sessionID: string): string
|
public getLocalesGlobal(url: string, info: IEmptyRequestData, sessionID: string): string
|
||||||
{
|
{
|
||||||
const localeId = url.replace("/client/locale/", "");
|
const localeId = url.replace("/client/locale/", "");
|
||||||
const locales = this.databaseServer.getLocales();
|
const locales = this.databaseService.getLocales();
|
||||||
let result = locales.global[localeId];
|
let result = locales.global[localeId];
|
||||||
|
|
||||||
if (result === undefined)
|
if (result === undefined)
|
||||||
|
@ -17,7 +17,7 @@ import { IProfileStatusResponse } from "@spt/models/eft/match/IProfileStatusResp
|
|||||||
import { IPutMetricsRequestData } from "@spt/models/eft/match/IPutMetricsRequestData";
|
import { IPutMetricsRequestData } from "@spt/models/eft/match/IPutMetricsRequestData";
|
||||||
import { IRequestIdRequest } from "@spt/models/eft/match/IRequestIdRequest";
|
import { IRequestIdRequest } from "@spt/models/eft/match/IRequestIdRequest";
|
||||||
import { IUpdatePingRequestData } from "@spt/models/eft/match/IUpdatePingRequestData";
|
import { IUpdatePingRequestData } from "@spt/models/eft/match/IUpdatePingRequestData";
|
||||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||||
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
|
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
|
||||||
import { JsonUtil } from "@spt/utils/JsonUtil";
|
import { JsonUtil } from "@spt/utils/JsonUtil";
|
||||||
|
|
||||||
@ -28,7 +28,7 @@ export class MatchCallbacks
|
|||||||
@inject("HttpResponseUtil") protected httpResponse: HttpResponseUtil,
|
@inject("HttpResponseUtil") protected httpResponse: HttpResponseUtil,
|
||||||
@inject("JsonUtil") protected jsonUtil: JsonUtil,
|
@inject("JsonUtil") protected jsonUtil: JsonUtil,
|
||||||
@inject("MatchController") protected matchController: MatchController,
|
@inject("MatchController") protected matchController: MatchController,
|
||||||
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
|
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||||
)
|
)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
@ -166,7 +166,7 @@ export class MatchCallbacks
|
|||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||||
public getMetrics(url: string, info: any, sessionID: string): IGetBodyResponseData<string>
|
public getMetrics(url: string, info: any, sessionID: string): IGetBodyResponseData<string>
|
||||||
{
|
{
|
||||||
return this.httpResponse.getBody(this.jsonUtil.serialize(this.databaseServer.getTables().match!.metrics));
|
return this.httpResponse.getBody(this.jsonUtil.serialize(this.databaseService.getMatch().metrics));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -45,7 +45,7 @@ export class InsuranceController
|
|||||||
@inject("EventOutputHolder") protected eventOutputHolder: EventOutputHolder,
|
@inject("EventOutputHolder") protected eventOutputHolder: EventOutputHolder,
|
||||||
@inject("TimeUtil") protected timeUtil: TimeUtil,
|
@inject("TimeUtil") protected timeUtil: TimeUtil,
|
||||||
@inject("SaveServer") protected saveServer: SaveServer,
|
@inject("SaveServer") protected saveServer: SaveServer,
|
||||||
@inject("DatabaseService") protected databaseServer: DatabaseService,
|
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||||
@inject("ItemHelper") protected itemHelper: ItemHelper,
|
@inject("ItemHelper") protected itemHelper: ItemHelper,
|
||||||
@inject("ProfileHelper") protected profileHelper: ProfileHelper,
|
@inject("ProfileHelper") protected profileHelper: ProfileHelper,
|
||||||
@inject("DialogueHelper") protected dialogueHelper: DialogueHelper,
|
@inject("DialogueHelper") protected dialogueHelper: DialogueHelper,
|
||||||
@ -586,12 +586,12 @@ export class InsuranceController
|
|||||||
const labsId = "laboratory";
|
const labsId = "laboratory";
|
||||||
// After all of the item filtering that we've done, if there are no items remaining, the insurance has
|
// After all of the item filtering that we've done, if there are no items remaining, the insurance has
|
||||||
// successfully "failed" to return anything and an appropriate message should be sent to the player.
|
// successfully "failed" to return anything and an appropriate message should be sent to the player.
|
||||||
const traderDialogMessages = this.databaseServer.getTrader(insurance.traderId).dialogue;
|
const traderDialogMessages = this.databaseService.getTrader(insurance.traderId).dialogue;
|
||||||
|
|
||||||
// Map is labs + insurance is disabled in base.json
|
// Map is labs + insurance is disabled in base.json
|
||||||
if (
|
if (
|
||||||
insurance.systemData?.location?.toLowerCase() === labsId
|
insurance.systemData?.location?.toLowerCase() === labsId
|
||||||
&& !(this.databaseServer.getLocation(labsId).base.Insurance)
|
&& !(this.databaseService.getLocation(labsId).base.Insurance)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
// Trader has labs-specific messages
|
// Trader has labs-specific messages
|
||||||
|
@ -32,7 +32,7 @@ export class LauncherController
|
|||||||
@inject("SaveServer") protected saveServer: SaveServer,
|
@inject("SaveServer") protected saveServer: SaveServer,
|
||||||
@inject("HttpServerHelper") protected httpServerHelper: HttpServerHelper,
|
@inject("HttpServerHelper") protected httpServerHelper: HttpServerHelper,
|
||||||
@inject("ProfileHelper") protected profileHelper: ProfileHelper,
|
@inject("ProfileHelper") protected profileHelper: ProfileHelper,
|
||||||
@inject("DatabaseService") protected databaseServer: DatabaseService,
|
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||||
@inject("LocalisationService") protected localisationService: LocalisationService,
|
@inject("LocalisationService") protected localisationService: LocalisationService,
|
||||||
@inject("PreSptModLoader") protected preSptModLoader: PreSptModLoader,
|
@inject("PreSptModLoader") protected preSptModLoader: PreSptModLoader,
|
||||||
@inject("ConfigServer") protected configServer: ConfigServer,
|
@inject("ConfigServer") protected configServer: ConfigServer,
|
||||||
@ -46,7 +46,7 @@ export class LauncherController
|
|||||||
return {
|
return {
|
||||||
backendUrl: this.httpServerHelper.getBackendUrl(),
|
backendUrl: this.httpServerHelper.getBackendUrl(),
|
||||||
name: this.coreConfig.serverName,
|
name: this.coreConfig.serverName,
|
||||||
editions: Object.keys(this.databaseServer.getProfiles()),
|
editions: Object.keys(this.databaseService.getProfiles()),
|
||||||
profileDescriptions: this.getProfileDescriptions(),
|
profileDescriptions: this.getProfileDescriptions(),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@ -58,7 +58,7 @@ export class LauncherController
|
|||||||
protected getProfileDescriptions(): Record<string, string>
|
protected getProfileDescriptions(): Record<string, string>
|
||||||
{
|
{
|
||||||
const result = {};
|
const result = {};
|
||||||
const dbProfiles = this.databaseServer.getProfiles();
|
const dbProfiles = this.databaseService.getProfiles();
|
||||||
for (const profileKey in dbProfiles)
|
for (const profileKey in dbProfiles)
|
||||||
{
|
{
|
||||||
const localeKey = dbProfiles[profileKey]?.descriptionLocaleKey;
|
const localeKey = dbProfiles[profileKey]?.descriptionLocaleKey;
|
||||||
|
@ -5,7 +5,7 @@ import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
|
|||||||
import { ConfigTypes } from "@spt/models/enums/ConfigTypes";
|
import { ConfigTypes } from "@spt/models/enums/ConfigTypes";
|
||||||
import { IPmcConfig } from "@spt/models/spt/config/IPmcConfig";
|
import { IPmcConfig } from "@spt/models/spt/config/IPmcConfig";
|
||||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||||
import { ItemFilterService } from "@spt/services/ItemFilterService";
|
import { ItemFilterService } from "@spt/services/ItemFilterService";
|
||||||
import { RagfairPriceService } from "@spt/services/RagfairPriceService";
|
import { RagfairPriceService } from "@spt/services/RagfairPriceService";
|
||||||
import { SeasonalEventService } from "@spt/services/SeasonalEventService";
|
import { SeasonalEventService } from "@spt/services/SeasonalEventService";
|
||||||
@ -26,7 +26,7 @@ export class PMCLootGenerator
|
|||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
@inject("ItemHelper") protected itemHelper: ItemHelper,
|
@inject("ItemHelper") protected itemHelper: ItemHelper,
|
||||||
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
|
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||||
@inject("ConfigServer") protected configServer: ConfigServer,
|
@inject("ConfigServer") protected configServer: ConfigServer,
|
||||||
@inject("ItemFilterService") protected itemFilterService: ItemFilterService,
|
@inject("ItemFilterService") protected itemFilterService: ItemFilterService,
|
||||||
@inject("RagfairPriceService") protected ragfairPriceService: RagfairPriceService,
|
@inject("RagfairPriceService") protected ragfairPriceService: RagfairPriceService,
|
||||||
@ -46,9 +46,9 @@ export class PMCLootGenerator
|
|||||||
// Hydrate loot dictionary if empty
|
// Hydrate loot dictionary if empty
|
||||||
if (Object.keys(this.pocketLootPool).length === 0)
|
if (Object.keys(this.pocketLootPool).length === 0)
|
||||||
{
|
{
|
||||||
const items = this.databaseServer.getTables().templates.items;
|
const items = this.databaseService.getItems();
|
||||||
const pmcPriceOverrides
|
const pmcPriceOverrides
|
||||||
= this.databaseServer.getTables().bots.types[botRole === "sptBear" ? "bear" : "usec"].inventory.items
|
= this.databaseService.getBots()[botRole === "sptBear" ? "bear" : "usec"].inventory.items
|
||||||
.Pockets;
|
.Pockets;
|
||||||
|
|
||||||
const allowedItemTypes = this.pmcConfig.pocketLoot.whitelist;
|
const allowedItemTypes = this.pmcConfig.pocketLoot.whitelist;
|
||||||
@ -106,9 +106,9 @@ export class PMCLootGenerator
|
|||||||
// Hydrate loot dictionary if empty
|
// Hydrate loot dictionary if empty
|
||||||
if (Object.keys(this.vestLootPool).length === 0)
|
if (Object.keys(this.vestLootPool).length === 0)
|
||||||
{
|
{
|
||||||
const items = this.databaseServer.getTables().templates.items;
|
const items = this.databaseService.getItems();
|
||||||
const pmcPriceOverrides
|
const pmcPriceOverrides
|
||||||
= this.databaseServer.getTables().bots.types[botRole === "sptBear" ? "bear" : "usec"].inventory.items
|
= this.databaseService.getBots().types[botRole === "sptBear" ? "bear" : "usec"].inventory.items
|
||||||
.TacticalVest;
|
.TacticalVest;
|
||||||
|
|
||||||
const allowedItemTypes = this.pmcConfig.vestLoot.whitelist;
|
const allowedItemTypes = this.pmcConfig.vestLoot.whitelist;
|
||||||
@ -176,9 +176,9 @@ export class PMCLootGenerator
|
|||||||
// Hydrate loot dictionary if empty
|
// Hydrate loot dictionary if empty
|
||||||
if (Object.keys(this.backpackLootPool).length === 0)
|
if (Object.keys(this.backpackLootPool).length === 0)
|
||||||
{
|
{
|
||||||
const items = this.databaseServer.getTables().templates.items;
|
const items = this.databaseService.getItems();
|
||||||
const pmcPriceOverrides
|
const pmcPriceOverrides
|
||||||
= this.databaseServer.getTables().bots.types[botRole === "sptBear" ? "bear" : "usec"].inventory.items
|
= this.databaseService.getBots().types[botRole === "sptBear" ? "bear" : "usec"].inventory.items
|
||||||
.Backpack;
|
.Backpack;
|
||||||
|
|
||||||
const allowedItemTypes = this.pmcConfig.backpackLoot.whitelist;
|
const allowedItemTypes = this.pmcConfig.backpackLoot.whitelist;
|
||||||
|
@ -17,9 +17,9 @@ import { Traders } from "@spt/models/enums/Traders";
|
|||||||
import { IPlayerScavConfig, KarmaLevel } from "@spt/models/spt/config/IPlayerScavConfig";
|
import { IPlayerScavConfig, KarmaLevel } from "@spt/models/spt/config/IPlayerScavConfig";
|
||||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
|
||||||
import { SaveServer } from "@spt/servers/SaveServer";
|
import { SaveServer } from "@spt/servers/SaveServer";
|
||||||
import { BotLootCacheService } from "@spt/services/BotLootCacheService";
|
import { BotLootCacheService } from "@spt/services/BotLootCacheService";
|
||||||
|
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||||
import { FenceService } from "@spt/services/FenceService";
|
import { FenceService } from "@spt/services/FenceService";
|
||||||
import { LocalisationService } from "@spt/services/LocalisationService";
|
import { LocalisationService } from "@spt/services/LocalisationService";
|
||||||
import { ICloner } from "@spt/utils/cloners/ICloner";
|
import { ICloner } from "@spt/utils/cloners/ICloner";
|
||||||
@ -34,7 +34,7 @@ export class PlayerScavGenerator
|
|||||||
constructor(
|
constructor(
|
||||||
@inject("PrimaryLogger") protected logger: ILogger,
|
@inject("PrimaryLogger") protected logger: ILogger,
|
||||||
@inject("RandomUtil") protected randomUtil: RandomUtil,
|
@inject("RandomUtil") protected randomUtil: RandomUtil,
|
||||||
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
|
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||||
@inject("HashUtil") protected hashUtil: HashUtil,
|
@inject("HashUtil") protected hashUtil: HashUtil,
|
||||||
@inject("ItemHelper") protected itemHelper: ItemHelper,
|
@inject("ItemHelper") protected itemHelper: ItemHelper,
|
||||||
@inject("BotGeneratorHelper") protected botGeneratorHelper: BotGeneratorHelper,
|
@inject("BotGeneratorHelper") protected botGeneratorHelper: BotGeneratorHelper,
|
||||||
@ -342,7 +342,7 @@ export class PlayerScavGenerator
|
|||||||
{
|
{
|
||||||
// Set cooldown time.
|
// Set cooldown time.
|
||||||
// Make sure to apply ScavCooldownTimer bonus from Hideout if the player has it.
|
// Make sure to apply ScavCooldownTimer bonus from Hideout if the player has it.
|
||||||
let scavLockDuration = this.databaseServer.getTables().globals.config.SavagePlayCooldown;
|
let scavLockDuration = this.databaseService.getGlobals().config.SavagePlayCooldown;
|
||||||
let modifier = 1;
|
let modifier = 1;
|
||||||
|
|
||||||
for (const bonus of pmcData.Bonuses)
|
for (const bonus of pmcData.Bonuses)
|
||||||
|
@ -23,8 +23,8 @@ import {
|
|||||||
} from "@spt/models/spt/config/IRagfairConfig";
|
} from "@spt/models/spt/config/IRagfairConfig";
|
||||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
|
||||||
import { SaveServer } from "@spt/servers/SaveServer";
|
import { SaveServer } from "@spt/servers/SaveServer";
|
||||||
|
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||||
import { FenceService } from "@spt/services/FenceService";
|
import { FenceService } from "@spt/services/FenceService";
|
||||||
import { LocalisationService } from "@spt/services/LocalisationService";
|
import { LocalisationService } from "@spt/services/LocalisationService";
|
||||||
import { RagfairOfferService } from "@spt/services/RagfairOfferService";
|
import { RagfairOfferService } from "@spt/services/RagfairOfferService";
|
||||||
@ -48,7 +48,7 @@ export class RagfairOfferGenerator
|
|||||||
@inject("HashUtil") protected hashUtil: HashUtil,
|
@inject("HashUtil") protected hashUtil: HashUtil,
|
||||||
@inject("RandomUtil") protected randomUtil: RandomUtil,
|
@inject("RandomUtil") protected randomUtil: RandomUtil,
|
||||||
@inject("TimeUtil") protected timeUtil: TimeUtil,
|
@inject("TimeUtil") protected timeUtil: TimeUtil,
|
||||||
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
|
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||||
@inject("RagfairServerHelper") protected ragfairServerHelper: RagfairServerHelper,
|
@inject("RagfairServerHelper") protected ragfairServerHelper: RagfairServerHelper,
|
||||||
@inject("ProfileHelper") protected profileHelper: ProfileHelper,
|
@inject("ProfileHelper") protected profileHelper: ProfileHelper,
|
||||||
@inject("HandbookHelper") protected handbookHelper: HandbookHelper,
|
@inject("HandbookHelper") protected handbookHelper: HandbookHelper,
|
||||||
@ -242,7 +242,7 @@ export class RagfairOfferGenerator
|
|||||||
{
|
{
|
||||||
if (isTrader)
|
if (isTrader)
|
||||||
{
|
{
|
||||||
return this.databaseServer.getTables().traders[userId].base.avatar;
|
return this.databaseService.getTrader(userId).base.avatar;
|
||||||
}
|
}
|
||||||
|
|
||||||
return "/files/trader/avatar/unknown.jpg";
|
return "/files/trader/avatar/unknown.jpg";
|
||||||
@ -338,14 +338,14 @@ export class RagfairOfferGenerator
|
|||||||
{
|
{
|
||||||
// Player offer = current time + offerDurationTimeInHour;
|
// Player offer = current time + offerDurationTimeInHour;
|
||||||
const offerDurationTimeHours
|
const offerDurationTimeHours
|
||||||
= this.databaseServer.getTables().globals!.config.RagFair.offerDurationTimeInHour;
|
= this.databaseService.getGlobals().config.RagFair.offerDurationTimeInHour;
|
||||||
return this.timeUtil.getTimestamp() + Math.round(offerDurationTimeHours * TimeUtil.ONE_HOUR_AS_SECONDS);
|
return this.timeUtil.getTimestamp() + Math.round(offerDurationTimeHours * TimeUtil.ONE_HOUR_AS_SECONDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.ragfairServerHelper.isTrader(userID))
|
if (this.ragfairServerHelper.isTrader(userID))
|
||||||
{
|
{
|
||||||
// Trader offer
|
// Trader offer
|
||||||
return this.databaseServer.getTables().traders![userID].base.nextResupply;
|
return this.databaseService.getTrader(userID).base.nextResupply;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Generated fake-player offer
|
// Generated fake-player offer
|
||||||
@ -577,7 +577,7 @@ export class RagfairOfferGenerator
|
|||||||
|
|
||||||
// Add trader offers
|
// Add trader offers
|
||||||
const time = this.timeUtil.getTimestamp();
|
const time = this.timeUtil.getTimestamp();
|
||||||
const trader = this.databaseServer.getTables().traders[traderID];
|
const trader = this.databaseService.getTrader(traderID);
|
||||||
const assorts = trader.assort;
|
const assorts = trader.assort;
|
||||||
|
|
||||||
// Trader assorts / assort items are missing
|
// Trader assorts / assort items are missing
|
||||||
@ -957,7 +957,7 @@ export class RagfairOfferGenerator
|
|||||||
// Generate if needed
|
// Generate if needed
|
||||||
if (!this.allowedFleaPriceItemsForBarter)
|
if (!this.allowedFleaPriceItemsForBarter)
|
||||||
{
|
{
|
||||||
const fleaPrices = this.databaseServer.getTables().templates.prices;
|
const fleaPrices = this.databaseService.getPrices();
|
||||||
const fleaArray = Object.entries(fleaPrices).map(([tpl, price]) => ({ tpl: tpl, price: price }));
|
const fleaArray = Object.entries(fleaPrices).map(([tpl, price]) => ({ tpl: tpl, price: price }));
|
||||||
|
|
||||||
// Only get item prices for items that also exist in items.json
|
// Only get item prices for items that also exist in items.json
|
||||||
|
@ -18,7 +18,7 @@ import {
|
|||||||
import { IQuestTypePool } from "@spt/models/spt/repeatable/IQuestTypePool";
|
import { IQuestTypePool } from "@spt/models/spt/repeatable/IQuestTypePool";
|
||||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||||
import { LocalisationService } from "@spt/services/LocalisationService";
|
import { LocalisationService } from "@spt/services/LocalisationService";
|
||||||
import { ICloner } from "@spt/utils/cloners/ICloner";
|
import { ICloner } from "@spt/utils/cloners/ICloner";
|
||||||
import { MathUtil } from "@spt/utils/MathUtil";
|
import { MathUtil } from "@spt/utils/MathUtil";
|
||||||
@ -34,7 +34,7 @@ export class RepeatableQuestGenerator
|
|||||||
@inject("PrimaryLogger") protected logger: ILogger,
|
@inject("PrimaryLogger") protected logger: ILogger,
|
||||||
@inject("RandomUtil") protected randomUtil: RandomUtil,
|
@inject("RandomUtil") protected randomUtil: RandomUtil,
|
||||||
@inject("MathUtil") protected mathUtil: MathUtil,
|
@inject("MathUtil") protected mathUtil: MathUtil,
|
||||||
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
|
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||||
@inject("ItemHelper") protected itemHelper: ItemHelper,
|
@inject("ItemHelper") protected itemHelper: ItemHelper,
|
||||||
@inject("LocalisationService") protected localisationService: LocalisationService,
|
@inject("LocalisationService") protected localisationService: LocalisationService,
|
||||||
@inject("ObjectId") protected objectId: ObjectId,
|
@inject("ObjectId") protected objectId: ObjectId,
|
||||||
@ -238,7 +238,7 @@ export class RepeatableQuestGenerator
|
|||||||
if (targetsConfig.data(targetKey).isBoss)
|
if (targetsConfig.data(targetKey).isBoss)
|
||||||
{
|
{
|
||||||
// Get all boss spawn information
|
// Get all boss spawn information
|
||||||
const bossSpawns = Object.values(this.databaseServer.getTables().locations)
|
const bossSpawns = Object.values(this.databaseService.getLocations())
|
||||||
.filter((x) => "base" in x && "Id" in x.base)
|
.filter((x) => "base" in x && "Id" in x.base)
|
||||||
.map((x) => ({ Id: x.base.Id, BossSpawn: x.base.BossLocationSpawn }));
|
.map((x) => ({ Id: x.base.Id, BossSpawn: x.base.BossLocationSpawn }));
|
||||||
// filter for the current boss to spawn on map
|
// filter for the current boss to spawn on map
|
||||||
@ -509,7 +509,7 @@ export class RepeatableQuestGenerator
|
|||||||
if (repeatableConfig.questConfig.Completion.useWhitelist)
|
if (repeatableConfig.questConfig.Completion.useWhitelist)
|
||||||
{
|
{
|
||||||
const itemWhitelist
|
const itemWhitelist
|
||||||
= this.databaseServer.getTables().templates.repeatableQuests.data.Completion.itemsWhitelist;
|
= this.databaseService.getTemplates().repeatableQuests.data.Completion.itemsWhitelist;
|
||||||
|
|
||||||
// Filter and concatenate the arrays according to current player level
|
// Filter and concatenate the arrays according to current player level
|
||||||
const itemIdsWhitelisted = itemWhitelist
|
const itemIdsWhitelisted = itemWhitelist
|
||||||
@ -531,7 +531,7 @@ export class RepeatableQuestGenerator
|
|||||||
if (repeatableConfig.questConfig.Completion.useBlacklist)
|
if (repeatableConfig.questConfig.Completion.useBlacklist)
|
||||||
{
|
{
|
||||||
const itemBlacklist
|
const itemBlacklist
|
||||||
= this.databaseServer.getTables().templates.repeatableQuests.data.Completion.itemsBlacklist;
|
= this.databaseService.getTemplates().repeatableQuests.data.Completion.itemsBlacklist;
|
||||||
|
|
||||||
// we filter and concatenate the arrays according to current player level
|
// we filter and concatenate the arrays according to current player level
|
||||||
const itemIdsBlacklisted = itemBlacklist
|
const itemIdsBlacklisted = itemBlacklist
|
||||||
@ -792,8 +792,9 @@ export class RepeatableQuestGenerator
|
|||||||
*/
|
*/
|
||||||
protected getLocationExitsForSide(locationKey: string, playerSide: string): Exit[]
|
protected getLocationExitsForSide(locationKey: string, playerSide: string): Exit[]
|
||||||
{
|
{
|
||||||
const mapExtracts = this.databaseServer.getTables().locations[locationKey.toLocaleLowerCase()]
|
const mapExtracts = this.databaseService
|
||||||
.allExtracts as Exit[];
|
.getLocation(locationKey.toLocaleLowerCase())
|
||||||
|
.allExtracts;
|
||||||
|
|
||||||
return mapExtracts.filter((exit) => exit.Side === playerSide);
|
return mapExtracts.filter((exit) => exit.Side === playerSide);
|
||||||
}
|
}
|
||||||
@ -881,7 +882,7 @@ export class RepeatableQuestGenerator
|
|||||||
protected generateRepeatableTemplate(type: string, traderId: string, side: string): IRepeatableQuest
|
protected generateRepeatableTemplate(type: string, traderId: string, side: string): IRepeatableQuest
|
||||||
{
|
{
|
||||||
const questClone = this.cloner.clone<IRepeatableQuest>(
|
const questClone = this.cloner.clone<IRepeatableQuest>(
|
||||||
this.databaseServer.getTables().templates.repeatableQuests.templates[type],
|
this.databaseService.getTemplates().repeatableQuests.templates[type],
|
||||||
);
|
);
|
||||||
questClone._id = this.objectId.generate();
|
questClone._id = this.objectId.generate();
|
||||||
questClone.traderId = traderId;
|
questClone.traderId = traderId;
|
||||||
|
@ -15,7 +15,7 @@ import { IBaseQuestConfig, IQuestConfig, IRepeatableQuestConfig } from "@spt/mod
|
|||||||
import { ExhaustableArray } from "@spt/models/spt/server/ExhaustableArray";
|
import { ExhaustableArray } from "@spt/models/spt/server/ExhaustableArray";
|
||||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||||
import { ItemFilterService } from "@spt/services/ItemFilterService";
|
import { ItemFilterService } from "@spt/services/ItemFilterService";
|
||||||
import { LocalisationService } from "@spt/services/LocalisationService";
|
import { LocalisationService } from "@spt/services/LocalisationService";
|
||||||
import { SeasonalEventService } from "@spt/services/SeasonalEventService";
|
import { SeasonalEventService } from "@spt/services/SeasonalEventService";
|
||||||
@ -33,7 +33,7 @@ export class RepeatableQuestRewardGenerator
|
|||||||
@inject("PrimaryLogger") protected logger: ILogger,
|
@inject("PrimaryLogger") protected logger: ILogger,
|
||||||
@inject("RandomUtil") protected randomUtil: RandomUtil,
|
@inject("RandomUtil") protected randomUtil: RandomUtil,
|
||||||
@inject("MathUtil") protected mathUtil: MathUtil,
|
@inject("MathUtil") protected mathUtil: MathUtil,
|
||||||
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
|
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||||
@inject("ItemHelper") protected itemHelper: ItemHelper,
|
@inject("ItemHelper") protected itemHelper: ItemHelper,
|
||||||
@inject("PresetHelper") protected presetHelper: PresetHelper,
|
@inject("PresetHelper") protected presetHelper: PresetHelper,
|
||||||
@inject("HandbookHelper") protected handbookHelper: HandbookHelper,
|
@inject("HandbookHelper") protected handbookHelper: HandbookHelper,
|
||||||
@ -426,7 +426,7 @@ export class RepeatableQuestRewardGenerator
|
|||||||
// check for specific baseclasses which don't make sense as reward item
|
// check for specific baseclasses which don't make sense as reward item
|
||||||
// also check if the price is greater than 0; there are some items whose price can not be found
|
// also check if the price is greater than 0; there are some items whose price can not be found
|
||||||
// those are not in the game yet (e.g. AGS grenade launcher)
|
// those are not in the game yet (e.g. AGS grenade launcher)
|
||||||
return Object.entries(this.databaseServer.getTables().templates.items).filter(
|
return Object.entries(this.databaseService.getItems()).filter(
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||||
([tpl, itemTemplate]) =>
|
([tpl, itemTemplate]) =>
|
||||||
{
|
{
|
||||||
|
@ -14,7 +14,7 @@ import {
|
|||||||
} from "@spt/models/spt/hideout/ScavCaseRewardCountsAndPrices";
|
} from "@spt/models/spt/hideout/ScavCaseRewardCountsAndPrices";
|
||||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||||
import { ItemFilterService } from "@spt/services/ItemFilterService";
|
import { ItemFilterService } from "@spt/services/ItemFilterService";
|
||||||
import { RagfairPriceService } from "@spt/services/RagfairPriceService";
|
import { RagfairPriceService } from "@spt/services/RagfairPriceService";
|
||||||
import { SeasonalEventService } from "@spt/services/SeasonalEventService";
|
import { SeasonalEventService } from "@spt/services/SeasonalEventService";
|
||||||
@ -37,7 +37,7 @@ export class ScavCaseRewardGenerator
|
|||||||
@inject("HashUtil") protected hashUtil: HashUtil,
|
@inject("HashUtil") protected hashUtil: HashUtil,
|
||||||
@inject("ItemHelper") protected itemHelper: ItemHelper,
|
@inject("ItemHelper") protected itemHelper: ItemHelper,
|
||||||
@inject("PresetHelper") protected presetHelper: PresetHelper,
|
@inject("PresetHelper") protected presetHelper: PresetHelper,
|
||||||
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
|
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||||
@inject("RagfairPriceService") protected ragfairPriceService: RagfairPriceService,
|
@inject("RagfairPriceService") protected ragfairPriceService: RagfairPriceService,
|
||||||
@inject("SeasonalEventService") protected seasonalEventService: SeasonalEventService,
|
@inject("SeasonalEventService") protected seasonalEventService: SeasonalEventService,
|
||||||
@inject("ItemFilterService") protected itemFilterService: ItemFilterService,
|
@inject("ItemFilterService") protected itemFilterService: ItemFilterService,
|
||||||
@ -57,7 +57,7 @@ export class ScavCaseRewardGenerator
|
|||||||
this.cacheDbItems();
|
this.cacheDbItems();
|
||||||
|
|
||||||
// Get scavcase details from hideout/scavcase.json
|
// Get scavcase details from hideout/scavcase.json
|
||||||
const scavCaseDetails = this.databaseServer.getTables().hideout.scavcase.find((r) => r._id === recipeId);
|
const scavCaseDetails = this.databaseService.getHideout().scavcase.find((r) => r._id === recipeId);
|
||||||
const rewardItemCounts = this.getScavCaseRewardCountsAndPrices(scavCaseDetails);
|
const rewardItemCounts = this.getScavCaseRewardCountsAndPrices(scavCaseDetails);
|
||||||
|
|
||||||
// Get items that fit the price criteria as set by the scavCase config
|
// Get items that fit the price criteria as set by the scavCase config
|
||||||
@ -98,7 +98,7 @@ export class ScavCaseRewardGenerator
|
|||||||
const inactiveSeasonalItems = this.seasonalEventService.getInactiveSeasonalEventItems();
|
const inactiveSeasonalItems = this.seasonalEventService.getInactiveSeasonalEventItems();
|
||||||
if (!this.dbItemsCache)
|
if (!this.dbItemsCache)
|
||||||
{
|
{
|
||||||
this.dbItemsCache = Object.values(this.databaseServer.getTables().templates.items).filter((item) =>
|
this.dbItemsCache = Object.values(this.databaseService.getItems()).filter((item) =>
|
||||||
{
|
{
|
||||||
// Base "Item" item has no parent, ignore it
|
// Base "Item" item has no parent, ignore it
|
||||||
if (item._parent === "")
|
if (item._parent === "")
|
||||||
@ -154,7 +154,7 @@ export class ScavCaseRewardGenerator
|
|||||||
|
|
||||||
if (!this.dbAmmoItemsCache)
|
if (!this.dbAmmoItemsCache)
|
||||||
{
|
{
|
||||||
this.dbAmmoItemsCache = Object.values(this.databaseServer.getTables().templates.items).filter((item) =>
|
this.dbAmmoItemsCache = Object.values(this.databaseService.getItems()).filter((item) =>
|
||||||
{
|
{
|
||||||
// Base "Item" item has no parent, ignore it
|
// Base "Item" item has no parent, ignore it
|
||||||
if (item._parent === "")
|
if (item._parent === "")
|
||||||
@ -280,9 +280,10 @@ export class ScavCaseRewardGenerator
|
|||||||
protected getRandomMoney(): ITemplateItem
|
protected getRandomMoney(): ITemplateItem
|
||||||
{
|
{
|
||||||
const money: ITemplateItem[] = [];
|
const money: ITemplateItem[] = [];
|
||||||
money.push(this.databaseServer.getTables().templates.items["5449016a4bdc2d6f028b456f"]); // rub
|
const items = this.databaseService.getItems();
|
||||||
money.push(this.databaseServer.getTables().templates.items["569668774bdc2da2298b4568"]); // euro
|
money.push(items["5449016a4bdc2d6f028b456f"]); // rub
|
||||||
money.push(this.databaseServer.getTables().templates.items["5696686a4bdc2da3298b456a"]); // dollar
|
money.push(items["569668774bdc2da2298b4568"]); // euro
|
||||||
|
money.push(items["5696686a4bdc2da3298b456a"]); // dollar
|
||||||
|
|
||||||
return this.randomUtil.getArrayValue(money);
|
return this.randomUtil.getArrayValue(money);
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@ import { ConfigTypes } from "@spt/models/enums/ConfigTypes";
|
|||||||
import { IPmcConfig } from "@spt/models/spt/config/IPmcConfig";
|
import { IPmcConfig } from "@spt/models/spt/config/IPmcConfig";
|
||||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||||
import { LocalisationService } from "@spt/services/LocalisationService";
|
import { LocalisationService } from "@spt/services/LocalisationService";
|
||||||
import { ICloner } from "@spt/utils/cloners/ICloner";
|
import { ICloner } from "@spt/utils/cloners/ICloner";
|
||||||
import { RandomUtil } from "@spt/utils/RandomUtil";
|
import { RandomUtil } from "@spt/utils/RandomUtil";
|
||||||
@ -17,7 +17,7 @@ export class BotDifficultyHelper
|
|||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
@inject("PrimaryLogger") protected logger: ILogger,
|
@inject("PrimaryLogger") protected logger: ILogger,
|
||||||
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
|
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||||
@inject("RandomUtil") protected randomUtil: RandomUtil,
|
@inject("RandomUtil") protected randomUtil: RandomUtil,
|
||||||
@inject("LocalisationService") protected localisationService: LocalisationService,
|
@inject("LocalisationService") protected localisationService: LocalisationService,
|
||||||
@inject("BotHelper") protected botHelper: BotHelper,
|
@inject("BotHelper") protected botHelper: BotHelper,
|
||||||
@ -121,7 +121,7 @@ export class BotDifficultyHelper
|
|||||||
*/
|
*/
|
||||||
public getBotDifficultySettings(type: string, difficulty: string): Difficulty
|
public getBotDifficultySettings(type: string, difficulty: string): Difficulty
|
||||||
{
|
{
|
||||||
const botDb = this.databaseServer.getTables().bots;
|
const botDb = this.databaseService.getBots();
|
||||||
|
|
||||||
const desiredType = type.toLowerCase();
|
const desiredType = type.toLowerCase();
|
||||||
const bot = botDb.types[desiredType];
|
const bot = botDb.types[desiredType];
|
||||||
@ -165,7 +165,7 @@ export class BotDifficultyHelper
|
|||||||
|
|
||||||
difficultySetting = this.convertBotDifficultyDropdownToBotDifficulty(difficultySetting);
|
difficultySetting = this.convertBotDifficultyDropdownToBotDifficulty(difficultySetting);
|
||||||
|
|
||||||
return this.cloner.clone(this.databaseServer.getTables().bots.types[type].difficulty[difficultySetting]);
|
return this.cloner.clone(this.databaseService.getBots().types[type].difficulty[difficultySetting]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -17,7 +17,7 @@ import { EquipmentFilters, IBotConfig, IRandomisedResourceValues } from "@spt/mo
|
|||||||
import { IPmcConfig } from "@spt/models/spt/config/IPmcConfig";
|
import { IPmcConfig } from "@spt/models/spt/config/IPmcConfig";
|
||||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||||
import { LocalisationService } from "@spt/services/LocalisationService";
|
import { LocalisationService } from "@spt/services/LocalisationService";
|
||||||
import { RandomUtil } from "@spt/utils/RandomUtil";
|
import { RandomUtil } from "@spt/utils/RandomUtil";
|
||||||
|
|
||||||
@ -30,7 +30,7 @@ export class BotGeneratorHelper
|
|||||||
constructor(
|
constructor(
|
||||||
@inject("PrimaryLogger") protected logger: ILogger,
|
@inject("PrimaryLogger") protected logger: ILogger,
|
||||||
@inject("RandomUtil") protected randomUtil: RandomUtil,
|
@inject("RandomUtil") protected randomUtil: RandomUtil,
|
||||||
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
|
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||||
@inject("DurabilityLimitsHelper") protected durabilityLimitsHelper: DurabilityLimitsHelper,
|
@inject("DurabilityLimitsHelper") protected durabilityLimitsHelper: DurabilityLimitsHelper,
|
||||||
@inject("ItemHelper") protected itemHelper: ItemHelper,
|
@inject("ItemHelper") protected itemHelper: ItemHelper,
|
||||||
@inject("InventoryHelper") protected inventoryHelper: InventoryHelper,
|
@inject("InventoryHelper") protected inventoryHelper: InventoryHelper,
|
||||||
@ -289,7 +289,7 @@ export class BotGeneratorHelper
|
|||||||
): IChooseRandomCompatibleModResult
|
): IChooseRandomCompatibleModResult
|
||||||
{
|
{
|
||||||
// TODO: Can probably be optimized to cache itemTemplates as items are added to inventory
|
// TODO: Can probably be optimized to cache itemTemplates as items are added to inventory
|
||||||
const equippedItemsDb = itemsEquipped.map((item) => this.databaseServer.getTables().templates.items[item._tpl]);
|
const equippedItemsDb = itemsEquipped.map((item) => this.itemHelper.getItem(item._tpl)[1]);
|
||||||
const itemToEquipDb = this.itemHelper.getItem(tplToCheck);
|
const itemToEquipDb = this.itemHelper.getItem(tplToCheck);
|
||||||
const itemToEquip = itemToEquipDb[1];
|
const itemToEquip = itemToEquipDb[1];
|
||||||
|
|
||||||
@ -365,7 +365,7 @@ export class BotGeneratorHelper
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Can probably be optimized to cache itemTemplates as items are added to inventory
|
// TODO: Can probably be optimized to cache itemTemplates as items are added to inventory
|
||||||
const equippedItemsDb = itemsEquipped.map((i) => this.databaseServer.getTables().templates.items[i._tpl]);
|
const equippedItemsDb = itemsEquipped.map((equippedItem) => this.itemHelper.getItem(equippedItem._tpl)[1]);
|
||||||
const itemToEquipDb = this.itemHelper.getItem(tplToCheck);
|
const itemToEquipDb = this.itemHelper.getItem(tplToCheck);
|
||||||
const itemToEquip = itemToEquipDb[1];
|
const itemToEquip = itemToEquipDb[1];
|
||||||
|
|
||||||
@ -395,7 +395,7 @@ export class BotGeneratorHelper
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Does an equipped item have a property that blocks the desired item - check for prop "BlocksX" .e.g BlocksEarpiece / BlocksFaceCover
|
// Does an equipped item have a property that blocks the desired item - check for prop "BlocksX" .e.g BlocksEarpiece / BlocksFaceCover
|
||||||
let blockingItem = equippedItemsDb.find((x) => x._props[`Blocks${equipmentSlot}`]);
|
let blockingItem = equippedItemsDb.find((item) => item._props[`Blocks${equipmentSlot}`]);
|
||||||
if (blockingItem)
|
if (blockingItem)
|
||||||
{
|
{
|
||||||
// this.logger.warning(`1 incompatibility found between - ${itemToEquip[1]._name} and ${blockingItem._name} - ${equipmentSlot}`);
|
// this.logger.warning(`1 incompatibility found between - ${itemToEquip[1]._name} and ${blockingItem._name} - ${equipmentSlot}`);
|
||||||
|
@ -6,7 +6,7 @@ import { EquipmentFilters, IBotConfig, RandomisationDetails } from "@spt/models/
|
|||||||
import { IPmcConfig } from "@spt/models/spt/config/IPmcConfig";
|
import { IPmcConfig } from "@spt/models/spt/config/IPmcConfig";
|
||||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||||
import { RandomUtil } from "@spt/utils/RandomUtil";
|
import { RandomUtil } from "@spt/utils/RandomUtil";
|
||||||
|
|
||||||
@injectable()
|
@injectable()
|
||||||
@ -17,7 +17,7 @@ export class BotHelper
|
|||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
@inject("PrimaryLogger") protected logger: ILogger,
|
@inject("PrimaryLogger") protected logger: ILogger,
|
||||||
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
|
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||||
@inject("RandomUtil") protected randomUtil: RandomUtil,
|
@inject("RandomUtil") protected randomUtil: RandomUtil,
|
||||||
@inject("ConfigServer") protected configServer: ConfigServer,
|
@inject("ConfigServer") protected configServer: ConfigServer,
|
||||||
)
|
)
|
||||||
@ -33,7 +33,7 @@ export class BotHelper
|
|||||||
*/
|
*/
|
||||||
public getBotTemplate(role: string): IBotType
|
public getBotTemplate(role: string): IBotType
|
||||||
{
|
{
|
||||||
return this.databaseServer.getTables().bots.types[role.toLowerCase()];
|
return this.databaseService.getBots().types[role.toLowerCase()];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -207,7 +207,7 @@ export class BotHelper
|
|||||||
// recurivse if name is longer than max characters allowed (15 characters)
|
// recurivse if name is longer than max characters allowed (15 characters)
|
||||||
const randomType = this.randomUtil.getInt(0, 1) === 0 ? "usec" : "bear";
|
const randomType = this.randomUtil.getInt(0, 1) === 0 ? "usec" : "bear";
|
||||||
const name
|
const name
|
||||||
= this.randomUtil.getStringArrayValue(this.databaseServer.getTables().bots.types[randomType].firstName);
|
= this.randomUtil.getStringArrayValue(this.databaseService.getBots().types[randomType].firstName);
|
||||||
return name.length > maxLength
|
return name.length > maxLength
|
||||||
? this.getPmcNicknameOfMaxLength(userId, maxLength)
|
? this.getPmcNicknameOfMaxLength(userId, maxLength)
|
||||||
: name;
|
: name;
|
||||||
|
@ -7,7 +7,7 @@ import { ISendMessageRequest } from "@spt/models/eft/dialog/ISendMessageRequest"
|
|||||||
import { IUserDialogInfo } from "@spt/models/eft/profile/ISptProfile";
|
import { IUserDialogInfo } from "@spt/models/eft/profile/ISptProfile";
|
||||||
import { IProfileChangeEvent, ProfileChangeEventType } from "@spt/models/spt/dialog/ISendMessageDetails";
|
import { IProfileChangeEvent, ProfileChangeEventType } from "@spt/models/spt/dialog/ISendMessageDetails";
|
||||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||||
import { LocaleService } from "@spt/services/LocaleService";
|
import { LocaleService } from "@spt/services/LocaleService";
|
||||||
import { MailSendService } from "@spt/services/MailSendService";
|
import { MailSendService } from "@spt/services/MailSendService";
|
||||||
import { HashUtil } from "@spt/utils/HashUtil";
|
import { HashUtil } from "@spt/utils/HashUtil";
|
||||||
@ -31,7 +31,7 @@ export class TraderSptCommand implements ISptCommand
|
|||||||
@inject("PresetHelper") protected presetHelper: PresetHelper,
|
@inject("PresetHelper") protected presetHelper: PresetHelper,
|
||||||
@inject("MailSendService") protected mailSendService: MailSendService,
|
@inject("MailSendService") protected mailSendService: MailSendService,
|
||||||
@inject("LocaleService") protected localeService: LocaleService,
|
@inject("LocaleService") protected localeService: LocaleService,
|
||||||
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
|
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||||
)
|
)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
@ -63,7 +63,7 @@ export class TraderSptCommand implements ISptCommand
|
|||||||
const command: string = result.groups.command;
|
const command: string = result.groups.command;
|
||||||
const quantity: number = +result.groups.quantity;
|
const quantity: number = +result.groups.quantity;
|
||||||
|
|
||||||
const dbTrader = Object.values(this.databaseServer.getTables().traders!).find(
|
const dbTrader = Object.values(this.databaseService.getTraders()).find(
|
||||||
(t) => t.base.nickname.toLocaleLowerCase() === trader.toLocaleLowerCase(),
|
(t) => t.base.nickname.toLocaleLowerCase() === trader.toLocaleLowerCase(),
|
||||||
);
|
);
|
||||||
if (dbTrader === undefined)
|
if (dbTrader === undefined)
|
||||||
|
@ -5,7 +5,7 @@ import { ConfigTypes } from "@spt/models/enums/ConfigTypes";
|
|||||||
import { Money } from "@spt/models/enums/Money";
|
import { Money } from "@spt/models/enums/Money";
|
||||||
import { IItemConfig } from "@spt/models/spt/config/IItemConfig";
|
import { IItemConfig } from "@spt/models/spt/config/IItemConfig";
|
||||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||||
import { ICloner } from "@spt/utils/cloners/ICloner";
|
import { ICloner } from "@spt/utils/cloners/ICloner";
|
||||||
|
|
||||||
class LookupItem<T, I>
|
class LookupItem<T, I>
|
||||||
@ -40,7 +40,7 @@ export class HandbookHelper
|
|||||||
protected handbookPriceCache = new LookupCollection();
|
protected handbookPriceCache = new LookupCollection();
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
|
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||||
@inject("ConfigServer") protected configServer: ConfigServer,
|
@inject("ConfigServer") protected configServer: ConfigServer,
|
||||||
@inject("PrimaryCloner") protected cloner: ICloner,
|
@inject("PrimaryCloner") protected cloner: ICloner,
|
||||||
)
|
)
|
||||||
@ -53,31 +53,26 @@ export class HandbookHelper
|
|||||||
*/
|
*/
|
||||||
public hydrateLookup(): void
|
public hydrateLookup(): void
|
||||||
{
|
{
|
||||||
|
const handbook = this.databaseService.getHandbook();
|
||||||
// Add handbook overrides found in items.json config into db
|
// Add handbook overrides found in items.json config into db
|
||||||
for (const itemTpl in this.itemConfig.handbookPriceOverride)
|
for (const itemTpl in this.itemConfig.handbookPriceOverride)
|
||||||
{
|
{
|
||||||
let itemToUpdate = this.databaseServer.getTables()
|
let itemToUpdate = handbook.Items.find((item) => item.Id === itemTpl);
|
||||||
.templates!
|
|
||||||
.handbook
|
|
||||||
.Items.find((item) => item.Id === itemTpl);
|
|
||||||
if (!itemToUpdate)
|
if (!itemToUpdate)
|
||||||
{
|
{
|
||||||
this.databaseServer.getTables().templates!.handbook.Items.push({
|
handbook.Items.push({
|
||||||
Id: itemTpl,
|
Id: itemTpl,
|
||||||
ParentId: this.databaseServer.getTables().templates!.items[itemTpl]._parent,
|
ParentId: this.databaseService.getItems()[itemTpl]._parent,
|
||||||
Price: this.itemConfig.handbookPriceOverride[itemTpl],
|
Price: this.itemConfig.handbookPriceOverride[itemTpl],
|
||||||
});
|
});
|
||||||
itemToUpdate = this.databaseServer
|
itemToUpdate = handbook
|
||||||
.getTables()
|
|
||||||
.templates!
|
|
||||||
.handbook
|
|
||||||
.Items.find((item) => item.Id === itemTpl);
|
.Items.find((item) => item.Id === itemTpl);
|
||||||
}
|
}
|
||||||
|
|
||||||
itemToUpdate.Price = this.itemConfig.handbookPriceOverride[itemTpl];
|
itemToUpdate.Price = this.itemConfig.handbookPriceOverride[itemTpl];
|
||||||
}
|
}
|
||||||
|
|
||||||
const handbookDbClone = this.cloner.clone(this.databaseServer.getTables().templates!.handbook);
|
const handbookDbClone = this.cloner.clone(handbook);
|
||||||
for (const handbookItem of handbookDbClone.Items)
|
for (const handbookItem of handbookDbClone.Items)
|
||||||
{
|
{
|
||||||
this.handbookPriceCache.items.byId.set(handbookItem.Id, handbookItem.Price);
|
this.handbookPriceCache.items.byId.set(handbookItem.Id, handbookItem.Price);
|
||||||
@ -105,7 +100,7 @@ export class HandbookHelper
|
|||||||
/**
|
/**
|
||||||
* Get price from internal cache, if cache empty look up price directly in handbook (expensive)
|
* Get price from internal cache, if cache empty look up price directly in handbook (expensive)
|
||||||
* If no values found, return 0
|
* If no values found, return 0
|
||||||
* @param tpl item tpl to look up price for
|
* @param tpl Item tpl to look up price for
|
||||||
* @returns price in roubles
|
* @returns price in roubles
|
||||||
*/
|
*/
|
||||||
public getTemplatePrice(tpl: string): number
|
public getTemplatePrice(tpl: string): number
|
||||||
@ -121,7 +116,7 @@ export class HandbookHelper
|
|||||||
return this.handbookPriceCache.items.byId.get(tpl);
|
return this.handbookPriceCache.items.byId.get(tpl);
|
||||||
}
|
}
|
||||||
|
|
||||||
const handbookItem = this.databaseServer.getTables().templates!.handbook.Items.find((x) => x.Id === tpl);
|
const handbookItem = this.databaseService.getHandbook().Items.find((item) => item.Id === tpl);
|
||||||
if (!handbookItem)
|
if (!handbookItem)
|
||||||
{
|
{
|
||||||
const newValue = 0;
|
const newValue = 0;
|
||||||
@ -211,6 +206,6 @@ export class HandbookHelper
|
|||||||
|
|
||||||
public getCategoryById(handbookId: string): Category
|
public getCategoryById(handbookId: string): Category
|
||||||
{
|
{
|
||||||
return this.databaseServer.getTables().templates.handbook.Categories.find((x) => x.Id === handbookId);
|
return this.databaseService.getHandbook().Categories.find((category) => category.Id === handbookId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,7 @@ import { IHideoutConfig } from "@spt/models/spt/config/IHideoutConfig";
|
|||||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||||
import { EventOutputHolder } from "@spt/routers/EventOutputHolder";
|
import { EventOutputHolder } from "@spt/routers/EventOutputHolder";
|
||||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||||
import { LocalisationService } from "@spt/services/LocalisationService";
|
import { LocalisationService } from "@spt/services/LocalisationService";
|
||||||
import { PlayerService } from "@spt/services/PlayerService";
|
import { PlayerService } from "@spt/services/PlayerService";
|
||||||
import { ICloner } from "@spt/utils/cloners/ICloner";
|
import { ICloner } from "@spt/utils/cloners/ICloner";
|
||||||
@ -44,7 +44,7 @@ export class HideoutHelper
|
|||||||
@inject("PrimaryLogger") protected logger: ILogger,
|
@inject("PrimaryLogger") protected logger: ILogger,
|
||||||
@inject("HashUtil") protected hashUtil: HashUtil,
|
@inject("HashUtil") protected hashUtil: HashUtil,
|
||||||
@inject("TimeUtil") protected timeUtil: TimeUtil,
|
@inject("TimeUtil") protected timeUtil: TimeUtil,
|
||||||
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
|
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||||
@inject("EventOutputHolder") protected eventOutputHolder: EventOutputHolder,
|
@inject("EventOutputHolder") protected eventOutputHolder: EventOutputHolder,
|
||||||
@inject("HttpResponseUtil") protected httpResponse: HttpResponseUtil,
|
@inject("HttpResponseUtil") protected httpResponse: HttpResponseUtil,
|
||||||
@inject("ProfileHelper") protected profileHelper: ProfileHelper,
|
@inject("ProfileHelper") protected profileHelper: ProfileHelper,
|
||||||
@ -72,9 +72,8 @@ export class HideoutHelper
|
|||||||
sessionID: string,
|
sessionID: string,
|
||||||
): IItemEventRouterResponse
|
): IItemEventRouterResponse
|
||||||
{
|
{
|
||||||
const recipe = this.databaseServer
|
const recipe = this.databaseService.getHideout().production
|
||||||
.getTables()
|
.find((production) => production._id === body.recipeId);
|
||||||
.hideout.production.find((production) => production._id === body.recipeId);
|
|
||||||
if (!recipe)
|
if (!recipe)
|
||||||
{
|
{
|
||||||
this.logger.error(this.localisationService.getText("hideout-missing_recipe_in_db", body.recipeId));
|
this.logger.error(this.localisationService.getText("hideout-missing_recipe_in_db", body.recipeId));
|
||||||
@ -258,7 +257,7 @@ export class HideoutHelper
|
|||||||
hideoutProperties: { btcFarmCGs: number, isGeneratorOn: boolean, waterCollectorHasFilter: boolean },
|
hideoutProperties: { btcFarmCGs: number, isGeneratorOn: boolean, waterCollectorHasFilter: boolean },
|
||||||
): void
|
): void
|
||||||
{
|
{
|
||||||
const recipes = this.databaseServer.getTables().hideout.production;
|
const recipes = this.databaseService.getHideout().production;
|
||||||
|
|
||||||
// Check each production
|
// Check each production
|
||||||
for (const prodId in pmcData.Hideout.Production)
|
for (const prodId in pmcData.Hideout.Production)
|
||||||
@ -449,7 +448,7 @@ export class HideoutHelper
|
|||||||
// 1 resource last 14 min 27 sec, 1/14.45/60 = 0.00115
|
// 1 resource last 14 min 27 sec, 1/14.45/60 = 0.00115
|
||||||
// 10-10-2021 From wiki, 1 resource last 12 minutes 38 seconds, 1/12.63333/60 = 0.00131
|
// 10-10-2021 From wiki, 1 resource last 12 minutes 38 seconds, 1/12.63333/60 = 0.00131
|
||||||
let fuelUsedSinceLastTick
|
let fuelUsedSinceLastTick
|
||||||
= this.databaseServer.getTables().hideout.settings.generatorFuelFlowRate
|
= this.databaseService.getHideout().settings.generatorFuelFlowRate
|
||||||
* this.getTimeElapsedSinceLastServerTick(pmcData, isGeneratorOn);
|
* this.getTimeElapsedSinceLastServerTick(pmcData, isGeneratorOn);
|
||||||
|
|
||||||
const profileFuelConsumptionBonus = pmcData.Bonuses.find((bonus) => bonus.type === BonusType.FUEL_CONSUMPTION);
|
const profileFuelConsumptionBonus = pmcData.Bonuses.find((bonus) => bonus.type === BonusType.FUEL_CONSUMPTION);
|
||||||
@ -603,11 +602,10 @@ export class HideoutHelper
|
|||||||
applyHideoutManagementBonus = false,
|
applyHideoutManagementBonus = false,
|
||||||
): number
|
): number
|
||||||
{
|
{
|
||||||
const globalSkillsDb = this.databaseServer.getTables().globals.config.SkillsSettings;
|
const globalSkillsDb = this.databaseService.getGlobals().config.SkillsSettings;
|
||||||
|
|
||||||
const recipe = this.databaseServer
|
const recipe = this.databaseService.getHideout().production
|
||||||
.getTables()
|
.find((production) => production._id === recipeId);
|
||||||
.hideout.production.find((production) => production._id === recipeId);
|
|
||||||
if (!recipe)
|
if (!recipe)
|
||||||
{
|
{
|
||||||
this.logger.error(this.localisationService.getText("hideout-missing_recipe_in_db", recipeId));
|
this.logger.error(this.localisationService.getText("hideout-missing_recipe_in_db", recipeId));
|
||||||
@ -773,7 +771,7 @@ export class HideoutHelper
|
|||||||
*/
|
*/
|
||||||
protected getWaterFilterDrainRate(pmcData: IPmcData): number
|
protected getWaterFilterDrainRate(pmcData: IPmcData): number
|
||||||
{
|
{
|
||||||
const globalSkillsDb = this.databaseServer.getTables().globals.config.SkillsSettings;
|
const globalSkillsDb = this.databaseService.getGlobals().config.SkillsSettings;
|
||||||
|
|
||||||
// 100 resources last 8 hrs 20 min, 100/8.33/60/60 = 0.00333
|
// 100 resources last 8 hrs 20 min, 100/8.33/60/60 = 0.00333
|
||||||
const filterDrainRate = 0.00333;
|
const filterDrainRate = 0.00333;
|
||||||
@ -805,7 +803,7 @@ export class HideoutHelper
|
|||||||
*/
|
*/
|
||||||
protected getTotalProductionTimeSeconds(prodId: string): number
|
protected getTotalProductionTimeSeconds(prodId: string): number
|
||||||
{
|
{
|
||||||
const recipe = this.databaseServer.getTables().hideout.production.find((prod) => prod._id === prodId);
|
const recipe = this.databaseService.getHideout().production.find((prod) => prod._id === prodId);
|
||||||
|
|
||||||
return recipe.productionTime || 0;
|
return recipe.productionTime || 0;
|
||||||
}
|
}
|
||||||
@ -839,7 +837,7 @@ export class HideoutHelper
|
|||||||
300/17.64694/60/60 = 0.004722
|
300/17.64694/60/60 = 0.004722
|
||||||
*/
|
*/
|
||||||
let filterDrainRate
|
let filterDrainRate
|
||||||
= this.databaseServer.getTables().hideout.settings.airFilterUnitFlowRate
|
= this.databaseService.getHideout().settings.airFilterUnitFlowRate
|
||||||
* this.getTimeElapsedSinceLastServerTick(pmcData, isGeneratorOn);
|
* this.getTimeElapsedSinceLastServerTick(pmcData, isGeneratorOn);
|
||||||
|
|
||||||
// Hideout management resource consumption bonus:
|
// Hideout management resource consumption bonus:
|
||||||
@ -894,10 +892,8 @@ export class HideoutHelper
|
|||||||
protected updateBitcoinFarm(pmcData: IPmcData, btcFarmCGs: number, isGeneratorOn: boolean): Production | undefined
|
protected updateBitcoinFarm(pmcData: IPmcData, btcFarmCGs: number, isGeneratorOn: boolean): Production | undefined
|
||||||
{
|
{
|
||||||
const btcProd = pmcData.Hideout.Production[HideoutHelper.bitcoinFarm];
|
const btcProd = pmcData.Hideout.Production[HideoutHelper.bitcoinFarm];
|
||||||
const bitcoinProdData = this.databaseServer
|
const bitcoinProdData = this.databaseService.getHideout().production
|
||||||
.getTables()
|
.find((production) => production._id === HideoutHelper.bitcoinProductionId);
|
||||||
.hideout!
|
|
||||||
.production.find((production) => production._id === HideoutHelper.bitcoinProductionId);
|
|
||||||
const coinSlotCount = this.getBTCSlots(pmcData);
|
const coinSlotCount = this.getBTCSlots(pmcData);
|
||||||
|
|
||||||
// Full on bitcoins, halt progress
|
// Full on bitcoins, halt progress
|
||||||
@ -948,7 +944,7 @@ export class HideoutHelper
|
|||||||
// BSG finally fixed their settings, they now get loaded from the settings and used in the client
|
// BSG finally fixed their settings, they now get loaded from the settings and used in the client
|
||||||
const adjustedCraftTime
|
const adjustedCraftTime
|
||||||
= (this.profileHelper.isDeveloperAccount(pmcData.sessionId) ? 40 : bitcoinProdData.productionTime)
|
= (this.profileHelper.isDeveloperAccount(pmcData.sessionId) ? 40 : bitcoinProdData.productionTime)
|
||||||
/ (1 + (btcFarmCGs - 1) * this.databaseServer.getTables().hideout.settings.gpuBoostRate);
|
/ (1 + (btcFarmCGs - 1) * this.databaseService.getHideout().settings.gpuBoostRate);
|
||||||
|
|
||||||
// The progress should be adjusted based on the GPU boost rate, but the target is still the base productionTime
|
// The progress should be adjusted based on the GPU boost rate, but the target is still the base productionTime
|
||||||
const timeMultiplier = bitcoinProdData.productionTime / adjustedCraftTime;
|
const timeMultiplier = bitcoinProdData.productionTime / adjustedCraftTime;
|
||||||
@ -1018,7 +1014,7 @@ export class HideoutHelper
|
|||||||
|
|
||||||
if (!isGeneratorOn)
|
if (!isGeneratorOn)
|
||||||
{
|
{
|
||||||
timeElapsed *= this.databaseServer.getTables().hideout!.settings.generatorSpeedWithoutFuel;
|
timeElapsed *= this.databaseService.getHideout().settings.generatorSpeedWithoutFuel;
|
||||||
}
|
}
|
||||||
|
|
||||||
return timeElapsed;
|
return timeElapsed;
|
||||||
@ -1031,9 +1027,8 @@ export class HideoutHelper
|
|||||||
*/
|
*/
|
||||||
protected getBTCSlots(pmcData: IPmcData): number
|
protected getBTCSlots(pmcData: IPmcData): number
|
||||||
{
|
{
|
||||||
const bitcoinProductions = this.databaseServer
|
const bitcoinProductions = this.databaseService.getHideout().production
|
||||||
.getTables()
|
.find((production) => production._id === HideoutHelper.bitcoinFarm);
|
||||||
.hideout.production.find((production) => production._id === HideoutHelper.bitcoinFarm);
|
|
||||||
const productionSlots = bitcoinProductions?.productionLimitCount || 3; // Default to 3 if none found
|
const productionSlots = bitcoinProductions?.productionLimitCount || 3; // Default to 3 if none found
|
||||||
const hasManagementSkillSlots = this.profileHelper.hasEliteSkillLevel(SkillTypes.HIDEOUT_MANAGEMENT, pmcData);
|
const hasManagementSkillSlots = this.profileHelper.hasEliteSkillLevel(SkillTypes.HIDEOUT_MANAGEMENT, pmcData);
|
||||||
const managementSlotsCount = this.getEliteSkillAdditionalBitcoinSlotCount() || 2;
|
const managementSlotsCount = this.getEliteSkillAdditionalBitcoinSlotCount() || 2;
|
||||||
@ -1046,7 +1041,7 @@ export class HideoutHelper
|
|||||||
*/
|
*/
|
||||||
protected getEliteSkillAdditionalBitcoinSlotCount(): number
|
protected getEliteSkillAdditionalBitcoinSlotCount(): number
|
||||||
{
|
{
|
||||||
return this.databaseServer.getTables().globals.config.SkillsSettings.HideoutManagement.EliteSlots.BitcoinFarm
|
return this.databaseService.getGlobals().config.SkillsSettings.HideoutManagement.EliteSlots.BitcoinFarm
|
||||||
.Container;
|
.Container;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1072,7 +1067,7 @@ export class HideoutHelper
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
(roundedLevel
|
(roundedLevel
|
||||||
* this.databaseServer.getTables().globals.config.SkillsSettings.HideoutManagement
|
* this.databaseService.getGlobals().config.SkillsSettings.HideoutManagement
|
||||||
.ConsumptionReductionPerLevel)
|
.ConsumptionReductionPerLevel)
|
||||||
/ 100
|
/ 100
|
||||||
);
|
);
|
||||||
@ -1254,9 +1249,8 @@ export class HideoutHelper
|
|||||||
const fameAreaProfile = pmcData.Hideout.Areas.find((area) => area.type === HideoutAreas.PLACE_OF_FAME);
|
const fameAreaProfile = pmcData.Hideout.Areas.find((area) => area.type === HideoutAreas.PLACE_OF_FAME);
|
||||||
|
|
||||||
// Get hideout area 16 bonus array
|
// Get hideout area 16 bonus array
|
||||||
const fameAreaDb = this.databaseServer
|
const fameAreaDb = this.databaseService.getHideout().areas
|
||||||
.getTables()
|
.find((area) => area.type === HideoutAreas.PLACE_OF_FAME);
|
||||||
.hideout.areas.find((area) => area.type === HideoutAreas.PLACE_OF_FAME);
|
|
||||||
|
|
||||||
// Get SkillGroupLevelingBoost object
|
// Get SkillGroupLevelingBoost object
|
||||||
const combatBoostBonusDb = fameAreaDb.stages[fameAreaProfile.level].bonuses.find(
|
const combatBoostBonusDb = fameAreaDb.stages[fameAreaProfile.level].bonuses.find(
|
||||||
|
@ -15,8 +15,8 @@ import { IInRaidConfig } from "@spt/models/spt/config/IInRaidConfig";
|
|||||||
import { ILostOnDeathConfig } from "@spt/models/spt/config/ILostOnDeathConfig";
|
import { ILostOnDeathConfig } from "@spt/models/spt/config/ILostOnDeathConfig";
|
||||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
|
||||||
import { SaveServer } from "@spt/servers/SaveServer";
|
import { SaveServer } from "@spt/servers/SaveServer";
|
||||||
|
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||||
import { LocalisationService } from "@spt/services/LocalisationService";
|
import { LocalisationService } from "@spt/services/LocalisationService";
|
||||||
import { ProfileFixerService } from "@spt/services/ProfileFixerService";
|
import { ProfileFixerService } from "@spt/services/ProfileFixerService";
|
||||||
import { ICloner } from "@spt/utils/cloners/ICloner";
|
import { ICloner } from "@spt/utils/cloners/ICloner";
|
||||||
@ -35,7 +35,7 @@ export class InRaidHelper
|
|||||||
@inject("TimeUtil") protected timeUtil: TimeUtil,
|
@inject("TimeUtil") protected timeUtil: TimeUtil,
|
||||||
@inject("SaveServer") protected saveServer: SaveServer,
|
@inject("SaveServer") protected saveServer: SaveServer,
|
||||||
@inject("ItemHelper") protected itemHelper: ItemHelper,
|
@inject("ItemHelper") protected itemHelper: ItemHelper,
|
||||||
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
|
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||||
@inject("InventoryHelper") protected inventoryHelper: InventoryHelper,
|
@inject("InventoryHelper") protected inventoryHelper: InventoryHelper,
|
||||||
@inject("ProfileHelper") protected profileHelper: ProfileHelper,
|
@inject("ProfileHelper") protected profileHelper: ProfileHelper,
|
||||||
@inject("QuestHelper") protected questHelper: QuestHelper,
|
@inject("QuestHelper") protected questHelper: QuestHelper,
|
||||||
@ -453,17 +453,17 @@ export class InRaidHelper
|
|||||||
*/
|
*/
|
||||||
public removeSpawnedInSessionPropertyFromItems(postRaidProfile: IPostRaidPmcData): IPostRaidPmcData
|
public removeSpawnedInSessionPropertyFromItems(postRaidProfile: IPostRaidPmcData): IPostRaidPmcData
|
||||||
{
|
{
|
||||||
const dbItems = this.databaseServer.getTables().templates!.items;
|
const dbItems = this.databaseService.getItems();
|
||||||
const itemsToRemovePropertyFrom = postRaidProfile.Inventory.items.filter((x) =>
|
const itemsToRemovePropertyFrom = postRaidProfile.Inventory.items.filter((item) =>
|
||||||
{
|
{
|
||||||
// Has upd object + upd.SpawnedInSession property + not a quest item
|
// Has upd object + upd.SpawnedInSession property + not a quest item
|
||||||
return (
|
return (
|
||||||
"upd" in x
|
"upd" in item
|
||||||
&& "SpawnedInSession" in x.upd
|
&& "SpawnedInSession" in item.upd
|
||||||
&& !dbItems[x._tpl]._props.QuestItem
|
&& !dbItems[item._tpl]._props.QuestItem
|
||||||
&& !(
|
&& !(
|
||||||
this.inRaidConfig.keepFiRSecureContainerOnDeath
|
this.inRaidConfig.keepFiRSecureContainerOnDeath
|
||||||
&& this.itemHelper.itemIsInsideContainer(x, "SecuredContainer", postRaidProfile.Inventory.items)
|
&& this.itemHelper.itemIsInsideContainer(item, "SecuredContainer", postRaidProfile.Inventory.items)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
@ -8,7 +8,7 @@ import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
|
|||||||
import { BaseClasses } from "@spt/models/enums/BaseClasses";
|
import { BaseClasses } from "@spt/models/enums/BaseClasses";
|
||||||
import { EquipmentSlots } from "@spt/models/enums/EquipmentSlots";
|
import { EquipmentSlots } from "@spt/models/enums/EquipmentSlots";
|
||||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||||
import { ItemBaseClassService } from "@spt/services/ItemBaseClassService";
|
import { ItemBaseClassService } from "@spt/services/ItemBaseClassService";
|
||||||
import { ItemFilterService } from "@spt/services/ItemFilterService";
|
import { ItemFilterService } from "@spt/services/ItemFilterService";
|
||||||
import { LocaleService } from "@spt/services/LocaleService";
|
import { LocaleService } from "@spt/services/LocaleService";
|
||||||
@ -41,7 +41,7 @@ export class ItemHelper
|
|||||||
@inject("RandomUtil") protected randomUtil: RandomUtil,
|
@inject("RandomUtil") protected randomUtil: RandomUtil,
|
||||||
@inject("ObjectId") protected objectId: ObjectId,
|
@inject("ObjectId") protected objectId: ObjectId,
|
||||||
@inject("MathUtil") protected mathUtil: MathUtil,
|
@inject("MathUtil") protected mathUtil: MathUtil,
|
||||||
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
|
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||||
@inject("HandbookHelper") protected handbookHelper: HandbookHelper,
|
@inject("HandbookHelper") protected handbookHelper: HandbookHelper,
|
||||||
@inject("ItemBaseClassService") protected itemBaseClassService: ItemBaseClassService,
|
@inject("ItemBaseClassService") protected itemBaseClassService: ItemBaseClassService,
|
||||||
@inject("ItemFilterService") protected itemFilterService: ItemFilterService,
|
@inject("ItemFilterService") protected itemFilterService: ItemFilterService,
|
||||||
@ -398,7 +398,7 @@ export class ItemHelper
|
|||||||
*/
|
*/
|
||||||
public getDynamicItemPrice(tpl: string): number
|
public getDynamicItemPrice(tpl: string): number
|
||||||
{
|
{
|
||||||
const dynamicPrice = this.databaseServer.getTables().templates!.prices[tpl];
|
const dynamicPrice = this.databaseService.getPrices()[tpl];
|
||||||
if (dynamicPrice)
|
if (dynamicPrice)
|
||||||
{
|
{
|
||||||
return dynamicPrice;
|
return dynamicPrice;
|
||||||
@ -432,7 +432,7 @@ export class ItemHelper
|
|||||||
*/
|
*/
|
||||||
public getItems(): ITemplateItem[]
|
public getItems(): ITemplateItem[]
|
||||||
{
|
{
|
||||||
return this.cloner.clone(Object.values(this.databaseServer.getTables().templates!.items));
|
return this.cloner.clone(Object.values(this.databaseService.getItems()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -443,9 +443,9 @@ export class ItemHelper
|
|||||||
public getItem(tpl: string): [boolean, ITemplateItem]
|
public getItem(tpl: string): [boolean, ITemplateItem]
|
||||||
{
|
{
|
||||||
// -> Gets item from <input: _tpl>
|
// -> Gets item from <input: _tpl>
|
||||||
if (tpl in this.databaseServer.getTables().templates!.items)
|
if (tpl in this.databaseService.getItems())
|
||||||
{
|
{
|
||||||
return [true, this.databaseServer.getTables().templates!.items[tpl]];
|
return [true, this.databaseService.getItems()[tpl]];
|
||||||
}
|
}
|
||||||
|
|
||||||
return [false, undefined];
|
return [false, undefined];
|
||||||
@ -709,7 +709,7 @@ export class ItemHelper
|
|||||||
*/
|
*/
|
||||||
public isItemTplStackable(tpl: string): boolean
|
public isItemTplStackable(tpl: string): boolean
|
||||||
{
|
{
|
||||||
const item = this.databaseServer.getTables().templates!.items[tpl];
|
const item = this.databaseService.getItems()[tpl];
|
||||||
if (!item)
|
if (!item)
|
||||||
{
|
{
|
||||||
return undefined;
|
return undefined;
|
||||||
@ -1563,11 +1563,16 @@ export class ItemHelper
|
|||||||
return this.localeService.getLocaleDb()[`${itemTpl} Name`];
|
return this.localeService.getLocaleDb()[`${itemTpl} Name`];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get all item tpls with a desired base type
|
||||||
|
* @param desiredBaseType Item base type wanted
|
||||||
|
* @returns Array of tpls
|
||||||
|
*/
|
||||||
public getItemTplsOfBaseType(desiredBaseType: string): string[]
|
public getItemTplsOfBaseType(desiredBaseType: string): string[]
|
||||||
{
|
{
|
||||||
return Object.values(this.databaseServer.getTables().templates!.items)
|
return Object.values(this.databaseService.getItems())
|
||||||
.filter((x) => x._parent === desiredBaseType)
|
.filter((item) => item._parent === desiredBaseType)
|
||||||
.map((x) => x._id);
|
.map((item) => item._id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -11,7 +11,7 @@ import { Money } from "@spt/models/enums/Money";
|
|||||||
import { IRagfairConfig } from "@spt/models/spt/config/IRagfairConfig";
|
import { IRagfairConfig } from "@spt/models/spt/config/IRagfairConfig";
|
||||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||||
import { RagfairLinkedItemService } from "@spt/services/RagfairLinkedItemService";
|
import { RagfairLinkedItemService } from "@spt/services/RagfairLinkedItemService";
|
||||||
import { ICloner } from "@spt/utils/cloners/ICloner";
|
import { ICloner } from "@spt/utils/cloners/ICloner";
|
||||||
|
|
||||||
@ -23,7 +23,7 @@ export class RagfairHelper
|
|||||||
constructor(
|
constructor(
|
||||||
@inject("PrimaryLogger") protected logger: ILogger,
|
@inject("PrimaryLogger") protected logger: ILogger,
|
||||||
@inject("TraderAssortHelper") protected traderAssortHelper: TraderAssortHelper,
|
@inject("TraderAssortHelper") protected traderAssortHelper: TraderAssortHelper,
|
||||||
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
|
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||||
@inject("HandbookHelper") protected handbookHelper: HandbookHelper,
|
@inject("HandbookHelper") protected handbookHelper: HandbookHelper,
|
||||||
@inject("ItemHelper") protected itemHelper: ItemHelper,
|
@inject("ItemHelper") protected itemHelper: ItemHelper,
|
||||||
@inject("RagfairLinkedItemService") protected ragfairLinkedItemService: RagfairLinkedItemService,
|
@inject("RagfairLinkedItemService") protected ragfairLinkedItemService: RagfairLinkedItemService,
|
||||||
@ -96,7 +96,7 @@ export class RagfairHelper
|
|||||||
{
|
{
|
||||||
const result: Record<string, ITraderAssort> = {};
|
const result: Record<string, ITraderAssort> = {};
|
||||||
|
|
||||||
for (const traderID in this.databaseServer.getTables().traders)
|
for (const traderID in this.databaseService.getTraders())
|
||||||
{
|
{
|
||||||
if (this.ragfairConfig.traders[traderID])
|
if (this.ragfairConfig.traders[traderID])
|
||||||
{
|
{
|
||||||
|
@ -4,7 +4,7 @@ import { ConfigTypes } from "@spt/models/enums/ConfigTypes";
|
|||||||
import { IRagfairConfig } from "@spt/models/spt/config/IRagfairConfig";
|
import { IRagfairConfig } from "@spt/models/spt/config/IRagfairConfig";
|
||||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||||
import { RandomUtil } from "@spt/utils/RandomUtil";
|
import { RandomUtil } from "@spt/utils/RandomUtil";
|
||||||
import { TimeUtil } from "@spt/utils/TimeUtil";
|
import { TimeUtil } from "@spt/utils/TimeUtil";
|
||||||
|
|
||||||
@ -17,7 +17,7 @@ export class RagfairSellHelper
|
|||||||
@inject("PrimaryLogger") protected logger: ILogger,
|
@inject("PrimaryLogger") protected logger: ILogger,
|
||||||
@inject("RandomUtil") protected randomUtil: RandomUtil,
|
@inject("RandomUtil") protected randomUtil: RandomUtil,
|
||||||
@inject("TimeUtil") protected timeUtil: TimeUtil,
|
@inject("TimeUtil") protected timeUtil: TimeUtil,
|
||||||
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
|
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||||
@inject("ConfigServer") protected configServer: ConfigServer,
|
@inject("ConfigServer") protected configServer: ConfigServer,
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
@ -75,7 +75,7 @@ export class RagfairSellHelper
|
|||||||
const endTime
|
const endTime
|
||||||
= startTime
|
= startTime
|
||||||
+ this.timeUtil.getHoursAsSeconds(
|
+ this.timeUtil.getHoursAsSeconds(
|
||||||
this.databaseServer.getTables().globals!.config.RagFair.offerDurationTimeInHour,
|
this.databaseService.getGlobals().config.RagFair.offerDurationTimeInHour,
|
||||||
);
|
);
|
||||||
|
|
||||||
let sellTime = startTime;
|
let sellTime = startTime;
|
||||||
|
@ -19,7 +19,7 @@ import {
|
|||||||
} from "@spt/models/spt/fence/IFenceAssortGenerationValues";
|
} from "@spt/models/spt/fence/IFenceAssortGenerationValues";
|
||||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||||
import { LocalisationService } from "@spt/services/LocalisationService";
|
import { LocalisationService } from "@spt/services/LocalisationService";
|
||||||
import { ICloner } from "@spt/utils/cloners/ICloner";
|
import { ICloner } from "@spt/utils/cloners/ICloner";
|
||||||
import { RandomUtil } from "@spt/utils/RandomUtil";
|
import { RandomUtil } from "@spt/utils/RandomUtil";
|
||||||
@ -62,7 +62,7 @@ export class FenceService
|
|||||||
@inject("PrimaryLogger") protected logger: ILogger,
|
@inject("PrimaryLogger") protected logger: ILogger,
|
||||||
@inject("TimeUtil") protected timeUtil: TimeUtil,
|
@inject("TimeUtil") protected timeUtil: TimeUtil,
|
||||||
@inject("RandomUtil") protected randomUtil: RandomUtil,
|
@inject("RandomUtil") protected randomUtil: RandomUtil,
|
||||||
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
|
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||||
@inject("HandbookHelper") protected handbookHelper: HandbookHelper,
|
@inject("HandbookHelper") protected handbookHelper: HandbookHelper,
|
||||||
@inject("ItemHelper") protected itemHelper: ItemHelper,
|
@inject("ItemHelper") protected itemHelper: ItemHelper,
|
||||||
@inject("PresetHelper") protected presetHelper: PresetHelper,
|
@inject("PresetHelper") protected presetHelper: PresetHelper,
|
||||||
@ -694,7 +694,7 @@ export class FenceService
|
|||||||
{
|
{
|
||||||
const result: ICreateFenceAssortsResult = { sptItems: [], barter_scheme: {}, loyal_level_items: {} };
|
const result: ICreateFenceAssortsResult = { sptItems: [], barter_scheme: {}, loyal_level_items: {} };
|
||||||
|
|
||||||
const baseFenceAssortClone = this.cloner.clone(this.databaseServer.getTables().traders![Traders.FENCE].assort!);
|
const baseFenceAssortClone = this.cloner.clone(this.databaseService.getTrader(Traders.FENCE).assort);
|
||||||
const itemTypeLimitCounts = this.initItemLimitCounter(this.traderConfig.fence.itemTypeLimits);
|
const itemTypeLimitCounts = this.initItemLimitCounter(this.traderConfig.fence.itemTypeLimits);
|
||||||
|
|
||||||
if (itemCounts.item > 0)
|
if (itemCounts.item > 0)
|
||||||
@ -1498,7 +1498,7 @@ export class FenceService
|
|||||||
*/
|
*/
|
||||||
public getFenceInfo(pmcData: IPmcData): IFenceLevel
|
public getFenceInfo(pmcData: IPmcData): IFenceLevel
|
||||||
{
|
{
|
||||||
const fenceSettings = this.databaseServer.getTables().globals!.config.FenceSettings;
|
const fenceSettings = this.databaseService.getGlobals().config.FenceSettings;
|
||||||
const pmcFenceInfo = pmcData.TradersInfo[fenceSettings.FenceId];
|
const pmcFenceInfo = pmcData.TradersInfo[fenceSettings.FenceId];
|
||||||
|
|
||||||
if (!pmcFenceInfo)
|
if (!pmcFenceInfo)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { inject, injectable } from "tsyringe";
|
import { inject, injectable } from "tsyringe";
|
||||||
import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
|
import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
|
||||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||||
import { LocalisationService } from "@spt/services/LocalisationService";
|
import { LocalisationService } from "@spt/services/LocalisationService";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -17,7 +17,7 @@ export class ItemBaseClassService
|
|||||||
constructor(
|
constructor(
|
||||||
@inject("PrimaryLogger") protected logger: ILogger,
|
@inject("PrimaryLogger") protected logger: ILogger,
|
||||||
@inject("LocalisationService") protected localisationService: LocalisationService,
|
@inject("LocalisationService") protected localisationService: LocalisationService,
|
||||||
@inject("DatabaseServer") protected databaseServer: DatabaseServer,
|
@inject("DatabaseService") protected databaseService: DatabaseService,
|
||||||
)
|
)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
@ -30,7 +30,7 @@ export class ItemBaseClassService
|
|||||||
// Clear existing cache
|
// Clear existing cache
|
||||||
this.itemBaseClassesCache = {};
|
this.itemBaseClassesCache = {};
|
||||||
|
|
||||||
this.items = this.databaseServer.getTables().templates!.items;
|
this.items = this.databaseService.getItems();
|
||||||
if (!this.items)
|
if (!this.items)
|
||||||
{
|
{
|
||||||
this.logger.warning(this.localisationService.getText("baseclass-missing_db_no_cache"));
|
this.logger.warning(this.localisationService.getText("baseclass-missing_db_no_cache"));
|
||||||
|
@ -277,9 +277,9 @@ describe("ItemHelper", () =>
|
|||||||
|
|
||||||
describe("getItems", () =>
|
describe("getItems", () =>
|
||||||
{
|
{
|
||||||
it("should call databaseServer.getTables() and jsonUtil.clone() methods", () =>
|
it("should call databaseService.getItems() and jsonUtil.clone() methods", () =>
|
||||||
{
|
{
|
||||||
const databaseServerGetTablesSpy = vi.spyOn((itemHelper as any).databaseServer, "getTables");
|
const databaseServerGetTablesSpy = vi.spyOn((itemHelper as any).databaseService, "getItems");
|
||||||
const clonerSpy = vi.spyOn((itemHelper as any).cloner, "clone");
|
const clonerSpy = vi.spyOn((itemHelper as any).cloner, "clone");
|
||||||
|
|
||||||
itemHelper.getItems();
|
itemHelper.getItems();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user