Update types

This commit is contained in:
Dev 2023-10-10 21:21:32 +01:00
parent 7907d533ae
commit ea559bd4aa
106 changed files with 631 additions and 253 deletions

View File

@ -1,4 +1,4 @@
# Mod examples for v3.7.0
# Mod examples for v3.7.1
A collection of example mods that perform typical actions in SPT

View File

@ -27,7 +27,6 @@ import { LocalisationService } from "../services/LocalisationService";
import { OpenZoneService } from "../services/OpenZoneService";
import { ProfileFixerService } from "../services/ProfileFixerService";
import { SeasonalEventService } from "../services/SeasonalEventService";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { RandomUtil } from "../utils/RandomUtil";
import { TimeUtil } from "../utils/TimeUtil";
@ -36,7 +35,6 @@ export declare class GameController {
protected databaseServer: DatabaseServer;
protected jsonUtil: JsonUtil;
protected timeUtil: TimeUtil;
protected hashUtil: HashUtil;
protected preAkiModLoader: PreAkiModLoader;
protected httpServerHelper: HttpServerHelper;
protected randomUtil: RandomUtil;
@ -58,7 +56,7 @@ export declare class GameController {
protected ragfairConfig: IRagfairConfig;
protected pmcConfig: IPmcConfig;
protected lootConfig: ILootConfig;
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, hashUtil: HashUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
load(): void;
/**
* Handle client/game/start
@ -67,12 +65,6 @@ export declare class GameController {
protected addCustomLooseLootPositions(): void;
protected adjustLooseLootSpawnProbabilities(): void;
protected setHideoutAreasAndCraftsTo40Secs(): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
protected fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/** Apply custom limits on bot types as defined in configs/location.json/botTypeLimits */
protected adjustMapBotLimits(): void;
/**

View File

@ -1,4 +1,5 @@
import { DependencyContainer } from "tsyringe";
import { ModDetails } from "../models/eft/profile/IAkiProfile";
import { ICoreConfig } from "../models/spt/config/ICoreConfig";
import { IModLoader } from "../models/spt/mod/IModLoader";
import { IPackageJsonData } from "../models/spt/mod/IPackageJsonData";
@ -35,6 +36,7 @@ export declare class PreAkiModLoader implements IModLoader {
*/
getImportedModsNames(): string[];
getImportedModDetails(): Record<string, IPackageJsonData>;
getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[];
getModPath(mod: string): string;
protected importMods(): Promise<void>;
protected sortMods(prev: string, next: string, missingFromOrderJSON: Record<string, boolean>): number;

View File

@ -6,8 +6,19 @@ export interface IRepairConfig extends IBaseConfig {
applyRandomizeDurabilityLoss: boolean;
weaponSkillRepairGain: number;
armorKitSkillPointGainPerRepairPointMultiplier: number;
/** INT gain multiplier per repaired item type */
repairKitIntellectGainMultiplier: IIntellectGainValues;
maxIntellectGainPerRepair: IMaxIntellectGainValues;
repairKit: RepairKit;
}
export interface IIntellectGainValues {
weapon: number;
armor: number;
}
export interface IMaxIntellectGainValues {
kit: number;
trader: number;
}
export interface RepairKit {
armor: BonusSettings;
weapon: BonusSettings;

View File

@ -29,7 +29,7 @@ export declare class EventOutputHolder {
/**
* Convert the internal trader data object into an object we can send to the client
* @param traderData server data for traders
* @returns
* @returns dict of trader id + TraderData
*/
protected constructTraderRelations(traderData: Record<string, TraderInfo>): Record<string, TraderData>;
/**

View File

@ -14,6 +14,7 @@ import { IRagfairConfig } from "../models/spt/config/IRagfairConfig";
import { ILogger } from "../models/spt/utils/ILogger";
import { ConfigServer } from "../servers/ConfigServer";
import { DatabaseServer } from "../servers/DatabaseServer";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { TimeUtil } from "../utils/TimeUtil";
import { Watermark } from "../utils/Watermark";
@ -29,11 +30,12 @@ export declare class ProfileFixerService {
protected localisationService: LocalisationService;
protected timeUtil: TimeUtil;
protected jsonUtil: JsonUtil;
protected hashUtil: HashUtil;
protected databaseServer: DatabaseServer;
protected configServer: ConfigServer;
protected coreConfig: ICoreConfig;
protected ragfairConfig: IRagfairConfig;
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, profileHelper: ProfileHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, jsonUtil: JsonUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, profileHelper: ProfileHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, jsonUtil: JsonUtil, hashUtil: HashUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
/**
* Find issues in the pmc profile data that may cause issues and fix them
* @param pmcProfile profile to check and fix
@ -129,6 +131,17 @@ export declare class ProfileFixerService {
* @param pmcProfile Profile to update
*/
removeLegacyScavCaseProductionCrafts(pmcProfile: IPmcData): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/**
* Bsg nested `stats` into a sub object called 'eft'
* @param fullProfile Profile to check for and migrate stats data
*/
migrateStatsToNewStructure(fullProfile: IAkiProfile): void;
/**
* 26126 (7th August) requires bonuses to have an ID, these were not included in the default profile presets
* @param pmcProfile Profile to add missing IDs to
@ -136,7 +149,7 @@ export declare class ProfileFixerService {
addMissingIdsToBonuses(pmcProfile: IPmcData): void;
/**
* At some point the property name was changed,migrate data across to new name
* @param pmcProfile
* @param pmcProfile Profile to migrate improvements in
*/
protected migrateImprovements(pmcProfile: IPmcData): void;
}

View File

@ -27,7 +27,6 @@ import { LocalisationService } from "../services/LocalisationService";
import { OpenZoneService } from "../services/OpenZoneService";
import { ProfileFixerService } from "../services/ProfileFixerService";
import { SeasonalEventService } from "../services/SeasonalEventService";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { RandomUtil } from "../utils/RandomUtil";
import { TimeUtil } from "../utils/TimeUtil";
@ -36,7 +35,6 @@ export declare class GameController {
protected databaseServer: DatabaseServer;
protected jsonUtil: JsonUtil;
protected timeUtil: TimeUtil;
protected hashUtil: HashUtil;
protected preAkiModLoader: PreAkiModLoader;
protected httpServerHelper: HttpServerHelper;
protected randomUtil: RandomUtil;
@ -58,7 +56,7 @@ export declare class GameController {
protected ragfairConfig: IRagfairConfig;
protected pmcConfig: IPmcConfig;
protected lootConfig: ILootConfig;
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, hashUtil: HashUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
load(): void;
/**
* Handle client/game/start
@ -67,12 +65,6 @@ export declare class GameController {
protected addCustomLooseLootPositions(): void;
protected adjustLooseLootSpawnProbabilities(): void;
protected setHideoutAreasAndCraftsTo40Secs(): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
protected fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/** Apply custom limits on bot types as defined in configs/location.json/botTypeLimits */
protected adjustMapBotLimits(): void;
/**

View File

@ -1,4 +1,5 @@
import { DependencyContainer } from "tsyringe";
import { ModDetails } from "../models/eft/profile/IAkiProfile";
import { ICoreConfig } from "../models/spt/config/ICoreConfig";
import { IModLoader } from "../models/spt/mod/IModLoader";
import { IPackageJsonData } from "../models/spt/mod/IPackageJsonData";
@ -35,6 +36,7 @@ export declare class PreAkiModLoader implements IModLoader {
*/
getImportedModsNames(): string[];
getImportedModDetails(): Record<string, IPackageJsonData>;
getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[];
getModPath(mod: string): string;
protected importMods(): Promise<void>;
protected sortMods(prev: string, next: string, missingFromOrderJSON: Record<string, boolean>): number;

View File

@ -6,8 +6,19 @@ export interface IRepairConfig extends IBaseConfig {
applyRandomizeDurabilityLoss: boolean;
weaponSkillRepairGain: number;
armorKitSkillPointGainPerRepairPointMultiplier: number;
/** INT gain multiplier per repaired item type */
repairKitIntellectGainMultiplier: IIntellectGainValues;
maxIntellectGainPerRepair: IMaxIntellectGainValues;
repairKit: RepairKit;
}
export interface IIntellectGainValues {
weapon: number;
armor: number;
}
export interface IMaxIntellectGainValues {
kit: number;
trader: number;
}
export interface RepairKit {
armor: BonusSettings;
weapon: BonusSettings;

View File

@ -29,7 +29,7 @@ export declare class EventOutputHolder {
/**
* Convert the internal trader data object into an object we can send to the client
* @param traderData server data for traders
* @returns
* @returns dict of trader id + TraderData
*/
protected constructTraderRelations(traderData: Record<string, TraderInfo>): Record<string, TraderData>;
/**

View File

@ -14,6 +14,7 @@ import { IRagfairConfig } from "../models/spt/config/IRagfairConfig";
import { ILogger } from "../models/spt/utils/ILogger";
import { ConfigServer } from "../servers/ConfigServer";
import { DatabaseServer } from "../servers/DatabaseServer";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { TimeUtil } from "../utils/TimeUtil";
import { Watermark } from "../utils/Watermark";
@ -29,11 +30,12 @@ export declare class ProfileFixerService {
protected localisationService: LocalisationService;
protected timeUtil: TimeUtil;
protected jsonUtil: JsonUtil;
protected hashUtil: HashUtil;
protected databaseServer: DatabaseServer;
protected configServer: ConfigServer;
protected coreConfig: ICoreConfig;
protected ragfairConfig: IRagfairConfig;
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, profileHelper: ProfileHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, jsonUtil: JsonUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, profileHelper: ProfileHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, jsonUtil: JsonUtil, hashUtil: HashUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
/**
* Find issues in the pmc profile data that may cause issues and fix them
* @param pmcProfile profile to check and fix
@ -129,6 +131,17 @@ export declare class ProfileFixerService {
* @param pmcProfile Profile to update
*/
removeLegacyScavCaseProductionCrafts(pmcProfile: IPmcData): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/**
* Bsg nested `stats` into a sub object called 'eft'
* @param fullProfile Profile to check for and migrate stats data
*/
migrateStatsToNewStructure(fullProfile: IAkiProfile): void;
/**
* 26126 (7th August) requires bonuses to have an ID, these were not included in the default profile presets
* @param pmcProfile Profile to add missing IDs to
@ -136,7 +149,7 @@ export declare class ProfileFixerService {
addMissingIdsToBonuses(pmcProfile: IPmcData): void;
/**
* At some point the property name was changed,migrate data across to new name
* @param pmcProfile
* @param pmcProfile Profile to migrate improvements in
*/
protected migrateImprovements(pmcProfile: IPmcData): void;
}

View File

@ -27,7 +27,6 @@ import { LocalisationService } from "../services/LocalisationService";
import { OpenZoneService } from "../services/OpenZoneService";
import { ProfileFixerService } from "../services/ProfileFixerService";
import { SeasonalEventService } from "../services/SeasonalEventService";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { RandomUtil } from "../utils/RandomUtil";
import { TimeUtil } from "../utils/TimeUtil";
@ -36,7 +35,6 @@ export declare class GameController {
protected databaseServer: DatabaseServer;
protected jsonUtil: JsonUtil;
protected timeUtil: TimeUtil;
protected hashUtil: HashUtil;
protected preAkiModLoader: PreAkiModLoader;
protected httpServerHelper: HttpServerHelper;
protected randomUtil: RandomUtil;
@ -58,7 +56,7 @@ export declare class GameController {
protected ragfairConfig: IRagfairConfig;
protected pmcConfig: IPmcConfig;
protected lootConfig: ILootConfig;
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, hashUtil: HashUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
load(): void;
/**
* Handle client/game/start
@ -67,12 +65,6 @@ export declare class GameController {
protected addCustomLooseLootPositions(): void;
protected adjustLooseLootSpawnProbabilities(): void;
protected setHideoutAreasAndCraftsTo40Secs(): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
protected fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/** Apply custom limits on bot types as defined in configs/location.json/botTypeLimits */
protected adjustMapBotLimits(): void;
/**

View File

@ -1,4 +1,5 @@
import { DependencyContainer } from "tsyringe";
import { ModDetails } from "../models/eft/profile/IAkiProfile";
import { ICoreConfig } from "../models/spt/config/ICoreConfig";
import { IModLoader } from "../models/spt/mod/IModLoader";
import { IPackageJsonData } from "../models/spt/mod/IPackageJsonData";
@ -35,6 +36,7 @@ export declare class PreAkiModLoader implements IModLoader {
*/
getImportedModsNames(): string[];
getImportedModDetails(): Record<string, IPackageJsonData>;
getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[];
getModPath(mod: string): string;
protected importMods(): Promise<void>;
protected sortMods(prev: string, next: string, missingFromOrderJSON: Record<string, boolean>): number;

View File

@ -6,8 +6,19 @@ export interface IRepairConfig extends IBaseConfig {
applyRandomizeDurabilityLoss: boolean;
weaponSkillRepairGain: number;
armorKitSkillPointGainPerRepairPointMultiplier: number;
/** INT gain multiplier per repaired item type */
repairKitIntellectGainMultiplier: IIntellectGainValues;
maxIntellectGainPerRepair: IMaxIntellectGainValues;
repairKit: RepairKit;
}
export interface IIntellectGainValues {
weapon: number;
armor: number;
}
export interface IMaxIntellectGainValues {
kit: number;
trader: number;
}
export interface RepairKit {
armor: BonusSettings;
weapon: BonusSettings;

View File

@ -29,7 +29,7 @@ export declare class EventOutputHolder {
/**
* Convert the internal trader data object into an object we can send to the client
* @param traderData server data for traders
* @returns
* @returns dict of trader id + TraderData
*/
protected constructTraderRelations(traderData: Record<string, TraderInfo>): Record<string, TraderData>;
/**

View File

@ -14,6 +14,7 @@ import { IRagfairConfig } from "../models/spt/config/IRagfairConfig";
import { ILogger } from "../models/spt/utils/ILogger";
import { ConfigServer } from "../servers/ConfigServer";
import { DatabaseServer } from "../servers/DatabaseServer";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { TimeUtil } from "../utils/TimeUtil";
import { Watermark } from "../utils/Watermark";
@ -29,11 +30,12 @@ export declare class ProfileFixerService {
protected localisationService: LocalisationService;
protected timeUtil: TimeUtil;
protected jsonUtil: JsonUtil;
protected hashUtil: HashUtil;
protected databaseServer: DatabaseServer;
protected configServer: ConfigServer;
protected coreConfig: ICoreConfig;
protected ragfairConfig: IRagfairConfig;
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, profileHelper: ProfileHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, jsonUtil: JsonUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, profileHelper: ProfileHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, jsonUtil: JsonUtil, hashUtil: HashUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
/**
* Find issues in the pmc profile data that may cause issues and fix them
* @param pmcProfile profile to check and fix
@ -129,6 +131,17 @@ export declare class ProfileFixerService {
* @param pmcProfile Profile to update
*/
removeLegacyScavCaseProductionCrafts(pmcProfile: IPmcData): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/**
* Bsg nested `stats` into a sub object called 'eft'
* @param fullProfile Profile to check for and migrate stats data
*/
migrateStatsToNewStructure(fullProfile: IAkiProfile): void;
/**
* 26126 (7th August) requires bonuses to have an ID, these were not included in the default profile presets
* @param pmcProfile Profile to add missing IDs to
@ -136,7 +149,7 @@ export declare class ProfileFixerService {
addMissingIdsToBonuses(pmcProfile: IPmcData): void;
/**
* At some point the property name was changed,migrate data across to new name
* @param pmcProfile
* @param pmcProfile Profile to migrate improvements in
*/
protected migrateImprovements(pmcProfile: IPmcData): void;
}

View File

@ -27,7 +27,6 @@ import { LocalisationService } from "../services/LocalisationService";
import { OpenZoneService } from "../services/OpenZoneService";
import { ProfileFixerService } from "../services/ProfileFixerService";
import { SeasonalEventService } from "../services/SeasonalEventService";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { RandomUtil } from "../utils/RandomUtil";
import { TimeUtil } from "../utils/TimeUtil";
@ -36,7 +35,6 @@ export declare class GameController {
protected databaseServer: DatabaseServer;
protected jsonUtil: JsonUtil;
protected timeUtil: TimeUtil;
protected hashUtil: HashUtil;
protected preAkiModLoader: PreAkiModLoader;
protected httpServerHelper: HttpServerHelper;
protected randomUtil: RandomUtil;
@ -58,7 +56,7 @@ export declare class GameController {
protected ragfairConfig: IRagfairConfig;
protected pmcConfig: IPmcConfig;
protected lootConfig: ILootConfig;
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, hashUtil: HashUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
load(): void;
/**
* Handle client/game/start
@ -67,12 +65,6 @@ export declare class GameController {
protected addCustomLooseLootPositions(): void;
protected adjustLooseLootSpawnProbabilities(): void;
protected setHideoutAreasAndCraftsTo40Secs(): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
protected fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/** Apply custom limits on bot types as defined in configs/location.json/botTypeLimits */
protected adjustMapBotLimits(): void;
/**

View File

@ -1,4 +1,5 @@
import { DependencyContainer } from "tsyringe";
import { ModDetails } from "../models/eft/profile/IAkiProfile";
import { ICoreConfig } from "../models/spt/config/ICoreConfig";
import { IModLoader } from "../models/spt/mod/IModLoader";
import { IPackageJsonData } from "../models/spt/mod/IPackageJsonData";
@ -35,6 +36,7 @@ export declare class PreAkiModLoader implements IModLoader {
*/
getImportedModsNames(): string[];
getImportedModDetails(): Record<string, IPackageJsonData>;
getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[];
getModPath(mod: string): string;
protected importMods(): Promise<void>;
protected sortMods(prev: string, next: string, missingFromOrderJSON: Record<string, boolean>): number;

View File

@ -6,8 +6,19 @@ export interface IRepairConfig extends IBaseConfig {
applyRandomizeDurabilityLoss: boolean;
weaponSkillRepairGain: number;
armorKitSkillPointGainPerRepairPointMultiplier: number;
/** INT gain multiplier per repaired item type */
repairKitIntellectGainMultiplier: IIntellectGainValues;
maxIntellectGainPerRepair: IMaxIntellectGainValues;
repairKit: RepairKit;
}
export interface IIntellectGainValues {
weapon: number;
armor: number;
}
export interface IMaxIntellectGainValues {
kit: number;
trader: number;
}
export interface RepairKit {
armor: BonusSettings;
weapon: BonusSettings;

View File

@ -29,7 +29,7 @@ export declare class EventOutputHolder {
/**
* Convert the internal trader data object into an object we can send to the client
* @param traderData server data for traders
* @returns
* @returns dict of trader id + TraderData
*/
protected constructTraderRelations(traderData: Record<string, TraderInfo>): Record<string, TraderData>;
/**

View File

@ -14,6 +14,7 @@ import { IRagfairConfig } from "../models/spt/config/IRagfairConfig";
import { ILogger } from "../models/spt/utils/ILogger";
import { ConfigServer } from "../servers/ConfigServer";
import { DatabaseServer } from "../servers/DatabaseServer";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { TimeUtil } from "../utils/TimeUtil";
import { Watermark } from "../utils/Watermark";
@ -29,11 +30,12 @@ export declare class ProfileFixerService {
protected localisationService: LocalisationService;
protected timeUtil: TimeUtil;
protected jsonUtil: JsonUtil;
protected hashUtil: HashUtil;
protected databaseServer: DatabaseServer;
protected configServer: ConfigServer;
protected coreConfig: ICoreConfig;
protected ragfairConfig: IRagfairConfig;
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, profileHelper: ProfileHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, jsonUtil: JsonUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, profileHelper: ProfileHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, jsonUtil: JsonUtil, hashUtil: HashUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
/**
* Find issues in the pmc profile data that may cause issues and fix them
* @param pmcProfile profile to check and fix
@ -129,6 +131,17 @@ export declare class ProfileFixerService {
* @param pmcProfile Profile to update
*/
removeLegacyScavCaseProductionCrafts(pmcProfile: IPmcData): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/**
* Bsg nested `stats` into a sub object called 'eft'
* @param fullProfile Profile to check for and migrate stats data
*/
migrateStatsToNewStructure(fullProfile: IAkiProfile): void;
/**
* 26126 (7th August) requires bonuses to have an ID, these were not included in the default profile presets
* @param pmcProfile Profile to add missing IDs to
@ -136,7 +149,7 @@ export declare class ProfileFixerService {
addMissingIdsToBonuses(pmcProfile: IPmcData): void;
/**
* At some point the property name was changed,migrate data across to new name
* @param pmcProfile
* @param pmcProfile Profile to migrate improvements in
*/
protected migrateImprovements(pmcProfile: IPmcData): void;
}

View File

@ -27,7 +27,6 @@ import { LocalisationService } from "../services/LocalisationService";
import { OpenZoneService } from "../services/OpenZoneService";
import { ProfileFixerService } from "../services/ProfileFixerService";
import { SeasonalEventService } from "../services/SeasonalEventService";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { RandomUtil } from "../utils/RandomUtil";
import { TimeUtil } from "../utils/TimeUtil";
@ -36,7 +35,6 @@ export declare class GameController {
protected databaseServer: DatabaseServer;
protected jsonUtil: JsonUtil;
protected timeUtil: TimeUtil;
protected hashUtil: HashUtil;
protected preAkiModLoader: PreAkiModLoader;
protected httpServerHelper: HttpServerHelper;
protected randomUtil: RandomUtil;
@ -58,7 +56,7 @@ export declare class GameController {
protected ragfairConfig: IRagfairConfig;
protected pmcConfig: IPmcConfig;
protected lootConfig: ILootConfig;
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, hashUtil: HashUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
load(): void;
/**
* Handle client/game/start
@ -67,12 +65,6 @@ export declare class GameController {
protected addCustomLooseLootPositions(): void;
protected adjustLooseLootSpawnProbabilities(): void;
protected setHideoutAreasAndCraftsTo40Secs(): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
protected fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/** Apply custom limits on bot types as defined in configs/location.json/botTypeLimits */
protected adjustMapBotLimits(): void;
/**

View File

@ -1,4 +1,5 @@
import { DependencyContainer } from "tsyringe";
import { ModDetails } from "../models/eft/profile/IAkiProfile";
import { ICoreConfig } from "../models/spt/config/ICoreConfig";
import { IModLoader } from "../models/spt/mod/IModLoader";
import { IPackageJsonData } from "../models/spt/mod/IPackageJsonData";
@ -35,6 +36,7 @@ export declare class PreAkiModLoader implements IModLoader {
*/
getImportedModsNames(): string[];
getImportedModDetails(): Record<string, IPackageJsonData>;
getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[];
getModPath(mod: string): string;
protected importMods(): Promise<void>;
protected sortMods(prev: string, next: string, missingFromOrderJSON: Record<string, boolean>): number;

View File

@ -6,8 +6,19 @@ export interface IRepairConfig extends IBaseConfig {
applyRandomizeDurabilityLoss: boolean;
weaponSkillRepairGain: number;
armorKitSkillPointGainPerRepairPointMultiplier: number;
/** INT gain multiplier per repaired item type */
repairKitIntellectGainMultiplier: IIntellectGainValues;
maxIntellectGainPerRepair: IMaxIntellectGainValues;
repairKit: RepairKit;
}
export interface IIntellectGainValues {
weapon: number;
armor: number;
}
export interface IMaxIntellectGainValues {
kit: number;
trader: number;
}
export interface RepairKit {
armor: BonusSettings;
weapon: BonusSettings;

View File

@ -29,7 +29,7 @@ export declare class EventOutputHolder {
/**
* Convert the internal trader data object into an object we can send to the client
* @param traderData server data for traders
* @returns
* @returns dict of trader id + TraderData
*/
protected constructTraderRelations(traderData: Record<string, TraderInfo>): Record<string, TraderData>;
/**

View File

@ -14,6 +14,7 @@ import { IRagfairConfig } from "../models/spt/config/IRagfairConfig";
import { ILogger } from "../models/spt/utils/ILogger";
import { ConfigServer } from "../servers/ConfigServer";
import { DatabaseServer } from "../servers/DatabaseServer";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { TimeUtil } from "../utils/TimeUtil";
import { Watermark } from "../utils/Watermark";
@ -29,11 +30,12 @@ export declare class ProfileFixerService {
protected localisationService: LocalisationService;
protected timeUtil: TimeUtil;
protected jsonUtil: JsonUtil;
protected hashUtil: HashUtil;
protected databaseServer: DatabaseServer;
protected configServer: ConfigServer;
protected coreConfig: ICoreConfig;
protected ragfairConfig: IRagfairConfig;
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, profileHelper: ProfileHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, jsonUtil: JsonUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, profileHelper: ProfileHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, jsonUtil: JsonUtil, hashUtil: HashUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
/**
* Find issues in the pmc profile data that may cause issues and fix them
* @param pmcProfile profile to check and fix
@ -129,6 +131,17 @@ export declare class ProfileFixerService {
* @param pmcProfile Profile to update
*/
removeLegacyScavCaseProductionCrafts(pmcProfile: IPmcData): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/**
* Bsg nested `stats` into a sub object called 'eft'
* @param fullProfile Profile to check for and migrate stats data
*/
migrateStatsToNewStructure(fullProfile: IAkiProfile): void;
/**
* 26126 (7th August) requires bonuses to have an ID, these were not included in the default profile presets
* @param pmcProfile Profile to add missing IDs to
@ -136,7 +149,7 @@ export declare class ProfileFixerService {
addMissingIdsToBonuses(pmcProfile: IPmcData): void;
/**
* At some point the property name was changed,migrate data across to new name
* @param pmcProfile
* @param pmcProfile Profile to migrate improvements in
*/
protected migrateImprovements(pmcProfile: IPmcData): void;
}

View File

@ -27,7 +27,6 @@ import { LocalisationService } from "../services/LocalisationService";
import { OpenZoneService } from "../services/OpenZoneService";
import { ProfileFixerService } from "../services/ProfileFixerService";
import { SeasonalEventService } from "../services/SeasonalEventService";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { RandomUtil } from "../utils/RandomUtil";
import { TimeUtil } from "../utils/TimeUtil";
@ -36,7 +35,6 @@ export declare class GameController {
protected databaseServer: DatabaseServer;
protected jsonUtil: JsonUtil;
protected timeUtil: TimeUtil;
protected hashUtil: HashUtil;
protected preAkiModLoader: PreAkiModLoader;
protected httpServerHelper: HttpServerHelper;
protected randomUtil: RandomUtil;
@ -58,7 +56,7 @@ export declare class GameController {
protected ragfairConfig: IRagfairConfig;
protected pmcConfig: IPmcConfig;
protected lootConfig: ILootConfig;
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, hashUtil: HashUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
load(): void;
/**
* Handle client/game/start
@ -67,12 +65,6 @@ export declare class GameController {
protected addCustomLooseLootPositions(): void;
protected adjustLooseLootSpawnProbabilities(): void;
protected setHideoutAreasAndCraftsTo40Secs(): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
protected fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/** Apply custom limits on bot types as defined in configs/location.json/botTypeLimits */
protected adjustMapBotLimits(): void;
/**

View File

@ -1,4 +1,5 @@
import { DependencyContainer } from "tsyringe";
import { ModDetails } from "../models/eft/profile/IAkiProfile";
import { ICoreConfig } from "../models/spt/config/ICoreConfig";
import { IModLoader } from "../models/spt/mod/IModLoader";
import { IPackageJsonData } from "../models/spt/mod/IPackageJsonData";
@ -35,6 +36,7 @@ export declare class PreAkiModLoader implements IModLoader {
*/
getImportedModsNames(): string[];
getImportedModDetails(): Record<string, IPackageJsonData>;
getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[];
getModPath(mod: string): string;
protected importMods(): Promise<void>;
protected sortMods(prev: string, next: string, missingFromOrderJSON: Record<string, boolean>): number;

View File

@ -6,8 +6,19 @@ export interface IRepairConfig extends IBaseConfig {
applyRandomizeDurabilityLoss: boolean;
weaponSkillRepairGain: number;
armorKitSkillPointGainPerRepairPointMultiplier: number;
/** INT gain multiplier per repaired item type */
repairKitIntellectGainMultiplier: IIntellectGainValues;
maxIntellectGainPerRepair: IMaxIntellectGainValues;
repairKit: RepairKit;
}
export interface IIntellectGainValues {
weapon: number;
armor: number;
}
export interface IMaxIntellectGainValues {
kit: number;
trader: number;
}
export interface RepairKit {
armor: BonusSettings;
weapon: BonusSettings;

View File

@ -29,7 +29,7 @@ export declare class EventOutputHolder {
/**
* Convert the internal trader data object into an object we can send to the client
* @param traderData server data for traders
* @returns
* @returns dict of trader id + TraderData
*/
protected constructTraderRelations(traderData: Record<string, TraderInfo>): Record<string, TraderData>;
/**

View File

@ -14,6 +14,7 @@ import { IRagfairConfig } from "../models/spt/config/IRagfairConfig";
import { ILogger } from "../models/spt/utils/ILogger";
import { ConfigServer } from "../servers/ConfigServer";
import { DatabaseServer } from "../servers/DatabaseServer";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { TimeUtil } from "../utils/TimeUtil";
import { Watermark } from "../utils/Watermark";
@ -29,11 +30,12 @@ export declare class ProfileFixerService {
protected localisationService: LocalisationService;
protected timeUtil: TimeUtil;
protected jsonUtil: JsonUtil;
protected hashUtil: HashUtil;
protected databaseServer: DatabaseServer;
protected configServer: ConfigServer;
protected coreConfig: ICoreConfig;
protected ragfairConfig: IRagfairConfig;
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, profileHelper: ProfileHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, jsonUtil: JsonUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, profileHelper: ProfileHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, jsonUtil: JsonUtil, hashUtil: HashUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
/**
* Find issues in the pmc profile data that may cause issues and fix them
* @param pmcProfile profile to check and fix
@ -129,6 +131,17 @@ export declare class ProfileFixerService {
* @param pmcProfile Profile to update
*/
removeLegacyScavCaseProductionCrafts(pmcProfile: IPmcData): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/**
* Bsg nested `stats` into a sub object called 'eft'
* @param fullProfile Profile to check for and migrate stats data
*/
migrateStatsToNewStructure(fullProfile: IAkiProfile): void;
/**
* 26126 (7th August) requires bonuses to have an ID, these were not included in the default profile presets
* @param pmcProfile Profile to add missing IDs to
@ -136,7 +149,7 @@ export declare class ProfileFixerService {
addMissingIdsToBonuses(pmcProfile: IPmcData): void;
/**
* At some point the property name was changed,migrate data across to new name
* @param pmcProfile
* @param pmcProfile Profile to migrate improvements in
*/
protected migrateImprovements(pmcProfile: IPmcData): void;
}

View File

@ -27,7 +27,6 @@ import { LocalisationService } from "../services/LocalisationService";
import { OpenZoneService } from "../services/OpenZoneService";
import { ProfileFixerService } from "../services/ProfileFixerService";
import { SeasonalEventService } from "../services/SeasonalEventService";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { RandomUtil } from "../utils/RandomUtil";
import { TimeUtil } from "../utils/TimeUtil";
@ -36,7 +35,6 @@ export declare class GameController {
protected databaseServer: DatabaseServer;
protected jsonUtil: JsonUtil;
protected timeUtil: TimeUtil;
protected hashUtil: HashUtil;
protected preAkiModLoader: PreAkiModLoader;
protected httpServerHelper: HttpServerHelper;
protected randomUtil: RandomUtil;
@ -58,7 +56,7 @@ export declare class GameController {
protected ragfairConfig: IRagfairConfig;
protected pmcConfig: IPmcConfig;
protected lootConfig: ILootConfig;
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, hashUtil: HashUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
load(): void;
/**
* Handle client/game/start
@ -67,12 +65,6 @@ export declare class GameController {
protected addCustomLooseLootPositions(): void;
protected adjustLooseLootSpawnProbabilities(): void;
protected setHideoutAreasAndCraftsTo40Secs(): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
protected fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/** Apply custom limits on bot types as defined in configs/location.json/botTypeLimits */
protected adjustMapBotLimits(): void;
/**

View File

@ -1,4 +1,5 @@
import { DependencyContainer } from "tsyringe";
import { ModDetails } from "../models/eft/profile/IAkiProfile";
import { ICoreConfig } from "../models/spt/config/ICoreConfig";
import { IModLoader } from "../models/spt/mod/IModLoader";
import { IPackageJsonData } from "../models/spt/mod/IPackageJsonData";
@ -35,6 +36,7 @@ export declare class PreAkiModLoader implements IModLoader {
*/
getImportedModsNames(): string[];
getImportedModDetails(): Record<string, IPackageJsonData>;
getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[];
getModPath(mod: string): string;
protected importMods(): Promise<void>;
protected sortMods(prev: string, next: string, missingFromOrderJSON: Record<string, boolean>): number;

View File

@ -6,8 +6,19 @@ export interface IRepairConfig extends IBaseConfig {
applyRandomizeDurabilityLoss: boolean;
weaponSkillRepairGain: number;
armorKitSkillPointGainPerRepairPointMultiplier: number;
/** INT gain multiplier per repaired item type */
repairKitIntellectGainMultiplier: IIntellectGainValues;
maxIntellectGainPerRepair: IMaxIntellectGainValues;
repairKit: RepairKit;
}
export interface IIntellectGainValues {
weapon: number;
armor: number;
}
export interface IMaxIntellectGainValues {
kit: number;
trader: number;
}
export interface RepairKit {
armor: BonusSettings;
weapon: BonusSettings;

View File

@ -29,7 +29,7 @@ export declare class EventOutputHolder {
/**
* Convert the internal trader data object into an object we can send to the client
* @param traderData server data for traders
* @returns
* @returns dict of trader id + TraderData
*/
protected constructTraderRelations(traderData: Record<string, TraderInfo>): Record<string, TraderData>;
/**

View File

@ -14,6 +14,7 @@ import { IRagfairConfig } from "../models/spt/config/IRagfairConfig";
import { ILogger } from "../models/spt/utils/ILogger";
import { ConfigServer } from "../servers/ConfigServer";
import { DatabaseServer } from "../servers/DatabaseServer";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { TimeUtil } from "../utils/TimeUtil";
import { Watermark } from "../utils/Watermark";
@ -29,11 +30,12 @@ export declare class ProfileFixerService {
protected localisationService: LocalisationService;
protected timeUtil: TimeUtil;
protected jsonUtil: JsonUtil;
protected hashUtil: HashUtil;
protected databaseServer: DatabaseServer;
protected configServer: ConfigServer;
protected coreConfig: ICoreConfig;
protected ragfairConfig: IRagfairConfig;
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, profileHelper: ProfileHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, jsonUtil: JsonUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, profileHelper: ProfileHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, jsonUtil: JsonUtil, hashUtil: HashUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
/**
* Find issues in the pmc profile data that may cause issues and fix them
* @param pmcProfile profile to check and fix
@ -129,6 +131,17 @@ export declare class ProfileFixerService {
* @param pmcProfile Profile to update
*/
removeLegacyScavCaseProductionCrafts(pmcProfile: IPmcData): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/**
* Bsg nested `stats` into a sub object called 'eft'
* @param fullProfile Profile to check for and migrate stats data
*/
migrateStatsToNewStructure(fullProfile: IAkiProfile): void;
/**
* 26126 (7th August) requires bonuses to have an ID, these were not included in the default profile presets
* @param pmcProfile Profile to add missing IDs to
@ -136,7 +149,7 @@ export declare class ProfileFixerService {
addMissingIdsToBonuses(pmcProfile: IPmcData): void;
/**
* At some point the property name was changed,migrate data across to new name
* @param pmcProfile
* @param pmcProfile Profile to migrate improvements in
*/
protected migrateImprovements(pmcProfile: IPmcData): void;
}

View File

@ -27,7 +27,6 @@ import { LocalisationService } from "../services/LocalisationService";
import { OpenZoneService } from "../services/OpenZoneService";
import { ProfileFixerService } from "../services/ProfileFixerService";
import { SeasonalEventService } from "../services/SeasonalEventService";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { RandomUtil } from "../utils/RandomUtil";
import { TimeUtil } from "../utils/TimeUtil";
@ -36,7 +35,6 @@ export declare class GameController {
protected databaseServer: DatabaseServer;
protected jsonUtil: JsonUtil;
protected timeUtil: TimeUtil;
protected hashUtil: HashUtil;
protected preAkiModLoader: PreAkiModLoader;
protected httpServerHelper: HttpServerHelper;
protected randomUtil: RandomUtil;
@ -58,7 +56,7 @@ export declare class GameController {
protected ragfairConfig: IRagfairConfig;
protected pmcConfig: IPmcConfig;
protected lootConfig: ILootConfig;
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, hashUtil: HashUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
load(): void;
/**
* Handle client/game/start
@ -67,12 +65,6 @@ export declare class GameController {
protected addCustomLooseLootPositions(): void;
protected adjustLooseLootSpawnProbabilities(): void;
protected setHideoutAreasAndCraftsTo40Secs(): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
protected fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/** Apply custom limits on bot types as defined in configs/location.json/botTypeLimits */
protected adjustMapBotLimits(): void;
/**

View File

@ -1,4 +1,5 @@
import { DependencyContainer } from "tsyringe";
import { ModDetails } from "../models/eft/profile/IAkiProfile";
import { ICoreConfig } from "../models/spt/config/ICoreConfig";
import { IModLoader } from "../models/spt/mod/IModLoader";
import { IPackageJsonData } from "../models/spt/mod/IPackageJsonData";
@ -35,6 +36,7 @@ export declare class PreAkiModLoader implements IModLoader {
*/
getImportedModsNames(): string[];
getImportedModDetails(): Record<string, IPackageJsonData>;
getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[];
getModPath(mod: string): string;
protected importMods(): Promise<void>;
protected sortMods(prev: string, next: string, missingFromOrderJSON: Record<string, boolean>): number;

View File

@ -6,8 +6,19 @@ export interface IRepairConfig extends IBaseConfig {
applyRandomizeDurabilityLoss: boolean;
weaponSkillRepairGain: number;
armorKitSkillPointGainPerRepairPointMultiplier: number;
/** INT gain multiplier per repaired item type */
repairKitIntellectGainMultiplier: IIntellectGainValues;
maxIntellectGainPerRepair: IMaxIntellectGainValues;
repairKit: RepairKit;
}
export interface IIntellectGainValues {
weapon: number;
armor: number;
}
export interface IMaxIntellectGainValues {
kit: number;
trader: number;
}
export interface RepairKit {
armor: BonusSettings;
weapon: BonusSettings;

View File

@ -29,7 +29,7 @@ export declare class EventOutputHolder {
/**
* Convert the internal trader data object into an object we can send to the client
* @param traderData server data for traders
* @returns
* @returns dict of trader id + TraderData
*/
protected constructTraderRelations(traderData: Record<string, TraderInfo>): Record<string, TraderData>;
/**

View File

@ -14,6 +14,7 @@ import { IRagfairConfig } from "../models/spt/config/IRagfairConfig";
import { ILogger } from "../models/spt/utils/ILogger";
import { ConfigServer } from "../servers/ConfigServer";
import { DatabaseServer } from "../servers/DatabaseServer";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { TimeUtil } from "../utils/TimeUtil";
import { Watermark } from "../utils/Watermark";
@ -29,11 +30,12 @@ export declare class ProfileFixerService {
protected localisationService: LocalisationService;
protected timeUtil: TimeUtil;
protected jsonUtil: JsonUtil;
protected hashUtil: HashUtil;
protected databaseServer: DatabaseServer;
protected configServer: ConfigServer;
protected coreConfig: ICoreConfig;
protected ragfairConfig: IRagfairConfig;
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, profileHelper: ProfileHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, jsonUtil: JsonUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, profileHelper: ProfileHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, jsonUtil: JsonUtil, hashUtil: HashUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
/**
* Find issues in the pmc profile data that may cause issues and fix them
* @param pmcProfile profile to check and fix
@ -129,6 +131,17 @@ export declare class ProfileFixerService {
* @param pmcProfile Profile to update
*/
removeLegacyScavCaseProductionCrafts(pmcProfile: IPmcData): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/**
* Bsg nested `stats` into a sub object called 'eft'
* @param fullProfile Profile to check for and migrate stats data
*/
migrateStatsToNewStructure(fullProfile: IAkiProfile): void;
/**
* 26126 (7th August) requires bonuses to have an ID, these were not included in the default profile presets
* @param pmcProfile Profile to add missing IDs to
@ -136,7 +149,7 @@ export declare class ProfileFixerService {
addMissingIdsToBonuses(pmcProfile: IPmcData): void;
/**
* At some point the property name was changed,migrate data across to new name
* @param pmcProfile
* @param pmcProfile Profile to migrate improvements in
*/
protected migrateImprovements(pmcProfile: IPmcData): void;
}

View File

@ -27,7 +27,6 @@ import { LocalisationService } from "../services/LocalisationService";
import { OpenZoneService } from "../services/OpenZoneService";
import { ProfileFixerService } from "../services/ProfileFixerService";
import { SeasonalEventService } from "../services/SeasonalEventService";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { RandomUtil } from "../utils/RandomUtil";
import { TimeUtil } from "../utils/TimeUtil";
@ -36,7 +35,6 @@ export declare class GameController {
protected databaseServer: DatabaseServer;
protected jsonUtil: JsonUtil;
protected timeUtil: TimeUtil;
protected hashUtil: HashUtil;
protected preAkiModLoader: PreAkiModLoader;
protected httpServerHelper: HttpServerHelper;
protected randomUtil: RandomUtil;
@ -58,7 +56,7 @@ export declare class GameController {
protected ragfairConfig: IRagfairConfig;
protected pmcConfig: IPmcConfig;
protected lootConfig: ILootConfig;
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, hashUtil: HashUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
load(): void;
/**
* Handle client/game/start
@ -67,12 +65,6 @@ export declare class GameController {
protected addCustomLooseLootPositions(): void;
protected adjustLooseLootSpawnProbabilities(): void;
protected setHideoutAreasAndCraftsTo40Secs(): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
protected fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/** Apply custom limits on bot types as defined in configs/location.json/botTypeLimits */
protected adjustMapBotLimits(): void;
/**

View File

@ -1,4 +1,5 @@
import { DependencyContainer } from "tsyringe";
import { ModDetails } from "../models/eft/profile/IAkiProfile";
import { ICoreConfig } from "../models/spt/config/ICoreConfig";
import { IModLoader } from "../models/spt/mod/IModLoader";
import { IPackageJsonData } from "../models/spt/mod/IPackageJsonData";
@ -35,6 +36,7 @@ export declare class PreAkiModLoader implements IModLoader {
*/
getImportedModsNames(): string[];
getImportedModDetails(): Record<string, IPackageJsonData>;
getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[];
getModPath(mod: string): string;
protected importMods(): Promise<void>;
protected sortMods(prev: string, next: string, missingFromOrderJSON: Record<string, boolean>): number;

View File

@ -6,8 +6,19 @@ export interface IRepairConfig extends IBaseConfig {
applyRandomizeDurabilityLoss: boolean;
weaponSkillRepairGain: number;
armorKitSkillPointGainPerRepairPointMultiplier: number;
/** INT gain multiplier per repaired item type */
repairKitIntellectGainMultiplier: IIntellectGainValues;
maxIntellectGainPerRepair: IMaxIntellectGainValues;
repairKit: RepairKit;
}
export interface IIntellectGainValues {
weapon: number;
armor: number;
}
export interface IMaxIntellectGainValues {
kit: number;
trader: number;
}
export interface RepairKit {
armor: BonusSettings;
weapon: BonusSettings;

View File

@ -29,7 +29,7 @@ export declare class EventOutputHolder {
/**
* Convert the internal trader data object into an object we can send to the client
* @param traderData server data for traders
* @returns
* @returns dict of trader id + TraderData
*/
protected constructTraderRelations(traderData: Record<string, TraderInfo>): Record<string, TraderData>;
/**

View File

@ -14,6 +14,7 @@ import { IRagfairConfig } from "../models/spt/config/IRagfairConfig";
import { ILogger } from "../models/spt/utils/ILogger";
import { ConfigServer } from "../servers/ConfigServer";
import { DatabaseServer } from "../servers/DatabaseServer";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { TimeUtil } from "../utils/TimeUtil";
import { Watermark } from "../utils/Watermark";
@ -29,11 +30,12 @@ export declare class ProfileFixerService {
protected localisationService: LocalisationService;
protected timeUtil: TimeUtil;
protected jsonUtil: JsonUtil;
protected hashUtil: HashUtil;
protected databaseServer: DatabaseServer;
protected configServer: ConfigServer;
protected coreConfig: ICoreConfig;
protected ragfairConfig: IRagfairConfig;
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, profileHelper: ProfileHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, jsonUtil: JsonUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, profileHelper: ProfileHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, jsonUtil: JsonUtil, hashUtil: HashUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
/**
* Find issues in the pmc profile data that may cause issues and fix them
* @param pmcProfile profile to check and fix
@ -129,6 +131,17 @@ export declare class ProfileFixerService {
* @param pmcProfile Profile to update
*/
removeLegacyScavCaseProductionCrafts(pmcProfile: IPmcData): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/**
* Bsg nested `stats` into a sub object called 'eft'
* @param fullProfile Profile to check for and migrate stats data
*/
migrateStatsToNewStructure(fullProfile: IAkiProfile): void;
/**
* 26126 (7th August) requires bonuses to have an ID, these were not included in the default profile presets
* @param pmcProfile Profile to add missing IDs to
@ -136,7 +149,7 @@ export declare class ProfileFixerService {
addMissingIdsToBonuses(pmcProfile: IPmcData): void;
/**
* At some point the property name was changed,migrate data across to new name
* @param pmcProfile
* @param pmcProfile Profile to migrate improvements in
*/
protected migrateImprovements(pmcProfile: IPmcData): void;
}

View File

@ -27,7 +27,6 @@ import { LocalisationService } from "../services/LocalisationService";
import { OpenZoneService } from "../services/OpenZoneService";
import { ProfileFixerService } from "../services/ProfileFixerService";
import { SeasonalEventService } from "../services/SeasonalEventService";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { RandomUtil } from "../utils/RandomUtil";
import { TimeUtil } from "../utils/TimeUtil";
@ -36,7 +35,6 @@ export declare class GameController {
protected databaseServer: DatabaseServer;
protected jsonUtil: JsonUtil;
protected timeUtil: TimeUtil;
protected hashUtil: HashUtil;
protected preAkiModLoader: PreAkiModLoader;
protected httpServerHelper: HttpServerHelper;
protected randomUtil: RandomUtil;
@ -58,7 +56,7 @@ export declare class GameController {
protected ragfairConfig: IRagfairConfig;
protected pmcConfig: IPmcConfig;
protected lootConfig: ILootConfig;
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, hashUtil: HashUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
load(): void;
/**
* Handle client/game/start
@ -67,12 +65,6 @@ export declare class GameController {
protected addCustomLooseLootPositions(): void;
protected adjustLooseLootSpawnProbabilities(): void;
protected setHideoutAreasAndCraftsTo40Secs(): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
protected fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/** Apply custom limits on bot types as defined in configs/location.json/botTypeLimits */
protected adjustMapBotLimits(): void;
/**

View File

@ -1,4 +1,5 @@
import { DependencyContainer } from "tsyringe";
import { ModDetails } from "../models/eft/profile/IAkiProfile";
import { ICoreConfig } from "../models/spt/config/ICoreConfig";
import { IModLoader } from "../models/spt/mod/IModLoader";
import { IPackageJsonData } from "../models/spt/mod/IPackageJsonData";
@ -35,6 +36,7 @@ export declare class PreAkiModLoader implements IModLoader {
*/
getImportedModsNames(): string[];
getImportedModDetails(): Record<string, IPackageJsonData>;
getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[];
getModPath(mod: string): string;
protected importMods(): Promise<void>;
protected sortMods(prev: string, next: string, missingFromOrderJSON: Record<string, boolean>): number;

View File

@ -6,8 +6,19 @@ export interface IRepairConfig extends IBaseConfig {
applyRandomizeDurabilityLoss: boolean;
weaponSkillRepairGain: number;
armorKitSkillPointGainPerRepairPointMultiplier: number;
/** INT gain multiplier per repaired item type */
repairKitIntellectGainMultiplier: IIntellectGainValues;
maxIntellectGainPerRepair: IMaxIntellectGainValues;
repairKit: RepairKit;
}
export interface IIntellectGainValues {
weapon: number;
armor: number;
}
export interface IMaxIntellectGainValues {
kit: number;
trader: number;
}
export interface RepairKit {
armor: BonusSettings;
weapon: BonusSettings;

View File

@ -29,7 +29,7 @@ export declare class EventOutputHolder {
/**
* Convert the internal trader data object into an object we can send to the client
* @param traderData server data for traders
* @returns
* @returns dict of trader id + TraderData
*/
protected constructTraderRelations(traderData: Record<string, TraderInfo>): Record<string, TraderData>;
/**

View File

@ -14,6 +14,7 @@ import { IRagfairConfig } from "../models/spt/config/IRagfairConfig";
import { ILogger } from "../models/spt/utils/ILogger";
import { ConfigServer } from "../servers/ConfigServer";
import { DatabaseServer } from "../servers/DatabaseServer";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { TimeUtil } from "../utils/TimeUtil";
import { Watermark } from "../utils/Watermark";
@ -29,11 +30,12 @@ export declare class ProfileFixerService {
protected localisationService: LocalisationService;
protected timeUtil: TimeUtil;
protected jsonUtil: JsonUtil;
protected hashUtil: HashUtil;
protected databaseServer: DatabaseServer;
protected configServer: ConfigServer;
protected coreConfig: ICoreConfig;
protected ragfairConfig: IRagfairConfig;
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, profileHelper: ProfileHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, jsonUtil: JsonUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, profileHelper: ProfileHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, jsonUtil: JsonUtil, hashUtil: HashUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
/**
* Find issues in the pmc profile data that may cause issues and fix them
* @param pmcProfile profile to check and fix
@ -129,6 +131,17 @@ export declare class ProfileFixerService {
* @param pmcProfile Profile to update
*/
removeLegacyScavCaseProductionCrafts(pmcProfile: IPmcData): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/**
* Bsg nested `stats` into a sub object called 'eft'
* @param fullProfile Profile to check for and migrate stats data
*/
migrateStatsToNewStructure(fullProfile: IAkiProfile): void;
/**
* 26126 (7th August) requires bonuses to have an ID, these were not included in the default profile presets
* @param pmcProfile Profile to add missing IDs to
@ -136,7 +149,7 @@ export declare class ProfileFixerService {
addMissingIdsToBonuses(pmcProfile: IPmcData): void;
/**
* At some point the property name was changed,migrate data across to new name
* @param pmcProfile
* @param pmcProfile Profile to migrate improvements in
*/
protected migrateImprovements(pmcProfile: IPmcData): void;
}

View File

@ -27,7 +27,6 @@ import { LocalisationService } from "../services/LocalisationService";
import { OpenZoneService } from "../services/OpenZoneService";
import { ProfileFixerService } from "../services/ProfileFixerService";
import { SeasonalEventService } from "../services/SeasonalEventService";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { RandomUtil } from "../utils/RandomUtil";
import { TimeUtil } from "../utils/TimeUtil";
@ -36,7 +35,6 @@ export declare class GameController {
protected databaseServer: DatabaseServer;
protected jsonUtil: JsonUtil;
protected timeUtil: TimeUtil;
protected hashUtil: HashUtil;
protected preAkiModLoader: PreAkiModLoader;
protected httpServerHelper: HttpServerHelper;
protected randomUtil: RandomUtil;
@ -58,7 +56,7 @@ export declare class GameController {
protected ragfairConfig: IRagfairConfig;
protected pmcConfig: IPmcConfig;
protected lootConfig: ILootConfig;
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, hashUtil: HashUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
load(): void;
/**
* Handle client/game/start
@ -67,12 +65,6 @@ export declare class GameController {
protected addCustomLooseLootPositions(): void;
protected adjustLooseLootSpawnProbabilities(): void;
protected setHideoutAreasAndCraftsTo40Secs(): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
protected fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/** Apply custom limits on bot types as defined in configs/location.json/botTypeLimits */
protected adjustMapBotLimits(): void;
/**

View File

@ -1,4 +1,5 @@
import { DependencyContainer } from "tsyringe";
import { ModDetails } from "../models/eft/profile/IAkiProfile";
import { ICoreConfig } from "../models/spt/config/ICoreConfig";
import { IModLoader } from "../models/spt/mod/IModLoader";
import { IPackageJsonData } from "../models/spt/mod/IPackageJsonData";
@ -35,6 +36,7 @@ export declare class PreAkiModLoader implements IModLoader {
*/
getImportedModsNames(): string[];
getImportedModDetails(): Record<string, IPackageJsonData>;
getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[];
getModPath(mod: string): string;
protected importMods(): Promise<void>;
protected sortMods(prev: string, next: string, missingFromOrderJSON: Record<string, boolean>): number;

View File

@ -6,8 +6,19 @@ export interface IRepairConfig extends IBaseConfig {
applyRandomizeDurabilityLoss: boolean;
weaponSkillRepairGain: number;
armorKitSkillPointGainPerRepairPointMultiplier: number;
/** INT gain multiplier per repaired item type */
repairKitIntellectGainMultiplier: IIntellectGainValues;
maxIntellectGainPerRepair: IMaxIntellectGainValues;
repairKit: RepairKit;
}
export interface IIntellectGainValues {
weapon: number;
armor: number;
}
export interface IMaxIntellectGainValues {
kit: number;
trader: number;
}
export interface RepairKit {
armor: BonusSettings;
weapon: BonusSettings;

View File

@ -29,7 +29,7 @@ export declare class EventOutputHolder {
/**
* Convert the internal trader data object into an object we can send to the client
* @param traderData server data for traders
* @returns
* @returns dict of trader id + TraderData
*/
protected constructTraderRelations(traderData: Record<string, TraderInfo>): Record<string, TraderData>;
/**

View File

@ -14,6 +14,7 @@ import { IRagfairConfig } from "../models/spt/config/IRagfairConfig";
import { ILogger } from "../models/spt/utils/ILogger";
import { ConfigServer } from "../servers/ConfigServer";
import { DatabaseServer } from "../servers/DatabaseServer";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { TimeUtil } from "../utils/TimeUtil";
import { Watermark } from "../utils/Watermark";
@ -29,11 +30,12 @@ export declare class ProfileFixerService {
protected localisationService: LocalisationService;
protected timeUtil: TimeUtil;
protected jsonUtil: JsonUtil;
protected hashUtil: HashUtil;
protected databaseServer: DatabaseServer;
protected configServer: ConfigServer;
protected coreConfig: ICoreConfig;
protected ragfairConfig: IRagfairConfig;
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, profileHelper: ProfileHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, jsonUtil: JsonUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, profileHelper: ProfileHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, jsonUtil: JsonUtil, hashUtil: HashUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
/**
* Find issues in the pmc profile data that may cause issues and fix them
* @param pmcProfile profile to check and fix
@ -129,6 +131,17 @@ export declare class ProfileFixerService {
* @param pmcProfile Profile to update
*/
removeLegacyScavCaseProductionCrafts(pmcProfile: IPmcData): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/**
* Bsg nested `stats` into a sub object called 'eft'
* @param fullProfile Profile to check for and migrate stats data
*/
migrateStatsToNewStructure(fullProfile: IAkiProfile): void;
/**
* 26126 (7th August) requires bonuses to have an ID, these were not included in the default profile presets
* @param pmcProfile Profile to add missing IDs to
@ -136,7 +149,7 @@ export declare class ProfileFixerService {
addMissingIdsToBonuses(pmcProfile: IPmcData): void;
/**
* At some point the property name was changed,migrate data across to new name
* @param pmcProfile
* @param pmcProfile Profile to migrate improvements in
*/
protected migrateImprovements(pmcProfile: IPmcData): void;
}

View File

@ -27,7 +27,6 @@ import { LocalisationService } from "../services/LocalisationService";
import { OpenZoneService } from "../services/OpenZoneService";
import { ProfileFixerService } from "../services/ProfileFixerService";
import { SeasonalEventService } from "../services/SeasonalEventService";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { RandomUtil } from "../utils/RandomUtil";
import { TimeUtil } from "../utils/TimeUtil";
@ -36,7 +35,6 @@ export declare class GameController {
protected databaseServer: DatabaseServer;
protected jsonUtil: JsonUtil;
protected timeUtil: TimeUtil;
protected hashUtil: HashUtil;
protected preAkiModLoader: PreAkiModLoader;
protected httpServerHelper: HttpServerHelper;
protected randomUtil: RandomUtil;
@ -58,7 +56,7 @@ export declare class GameController {
protected ragfairConfig: IRagfairConfig;
protected pmcConfig: IPmcConfig;
protected lootConfig: ILootConfig;
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, hashUtil: HashUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
load(): void;
/**
* Handle client/game/start
@ -67,12 +65,6 @@ export declare class GameController {
protected addCustomLooseLootPositions(): void;
protected adjustLooseLootSpawnProbabilities(): void;
protected setHideoutAreasAndCraftsTo40Secs(): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
protected fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/** Apply custom limits on bot types as defined in configs/location.json/botTypeLimits */
protected adjustMapBotLimits(): void;
/**

View File

@ -1,4 +1,5 @@
import { DependencyContainer } from "tsyringe";
import { ModDetails } from "../models/eft/profile/IAkiProfile";
import { ICoreConfig } from "../models/spt/config/ICoreConfig";
import { IModLoader } from "../models/spt/mod/IModLoader";
import { IPackageJsonData } from "../models/spt/mod/IPackageJsonData";
@ -35,6 +36,7 @@ export declare class PreAkiModLoader implements IModLoader {
*/
getImportedModsNames(): string[];
getImportedModDetails(): Record<string, IPackageJsonData>;
getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[];
getModPath(mod: string): string;
protected importMods(): Promise<void>;
protected sortMods(prev: string, next: string, missingFromOrderJSON: Record<string, boolean>): number;

View File

@ -6,8 +6,19 @@ export interface IRepairConfig extends IBaseConfig {
applyRandomizeDurabilityLoss: boolean;
weaponSkillRepairGain: number;
armorKitSkillPointGainPerRepairPointMultiplier: number;
/** INT gain multiplier per repaired item type */
repairKitIntellectGainMultiplier: IIntellectGainValues;
maxIntellectGainPerRepair: IMaxIntellectGainValues;
repairKit: RepairKit;
}
export interface IIntellectGainValues {
weapon: number;
armor: number;
}
export interface IMaxIntellectGainValues {
kit: number;
trader: number;
}
export interface RepairKit {
armor: BonusSettings;
weapon: BonusSettings;

View File

@ -29,7 +29,7 @@ export declare class EventOutputHolder {
/**
* Convert the internal trader data object into an object we can send to the client
* @param traderData server data for traders
* @returns
* @returns dict of trader id + TraderData
*/
protected constructTraderRelations(traderData: Record<string, TraderInfo>): Record<string, TraderData>;
/**

View File

@ -14,6 +14,7 @@ import { IRagfairConfig } from "../models/spt/config/IRagfairConfig";
import { ILogger } from "../models/spt/utils/ILogger";
import { ConfigServer } from "../servers/ConfigServer";
import { DatabaseServer } from "../servers/DatabaseServer";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { TimeUtil } from "../utils/TimeUtil";
import { Watermark } from "../utils/Watermark";
@ -29,11 +30,12 @@ export declare class ProfileFixerService {
protected localisationService: LocalisationService;
protected timeUtil: TimeUtil;
protected jsonUtil: JsonUtil;
protected hashUtil: HashUtil;
protected databaseServer: DatabaseServer;
protected configServer: ConfigServer;
protected coreConfig: ICoreConfig;
protected ragfairConfig: IRagfairConfig;
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, profileHelper: ProfileHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, jsonUtil: JsonUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, profileHelper: ProfileHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, jsonUtil: JsonUtil, hashUtil: HashUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
/**
* Find issues in the pmc profile data that may cause issues and fix them
* @param pmcProfile profile to check and fix
@ -129,6 +131,17 @@ export declare class ProfileFixerService {
* @param pmcProfile Profile to update
*/
removeLegacyScavCaseProductionCrafts(pmcProfile: IPmcData): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/**
* Bsg nested `stats` into a sub object called 'eft'
* @param fullProfile Profile to check for and migrate stats data
*/
migrateStatsToNewStructure(fullProfile: IAkiProfile): void;
/**
* 26126 (7th August) requires bonuses to have an ID, these were not included in the default profile presets
* @param pmcProfile Profile to add missing IDs to
@ -136,7 +149,7 @@ export declare class ProfileFixerService {
addMissingIdsToBonuses(pmcProfile: IPmcData): void;
/**
* At some point the property name was changed,migrate data across to new name
* @param pmcProfile
* @param pmcProfile Profile to migrate improvements in
*/
protected migrateImprovements(pmcProfile: IPmcData): void;
}

View File

@ -27,7 +27,6 @@ import { LocalisationService } from "../services/LocalisationService";
import { OpenZoneService } from "../services/OpenZoneService";
import { ProfileFixerService } from "../services/ProfileFixerService";
import { SeasonalEventService } from "../services/SeasonalEventService";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { RandomUtil } from "../utils/RandomUtil";
import { TimeUtil } from "../utils/TimeUtil";
@ -36,7 +35,6 @@ export declare class GameController {
protected databaseServer: DatabaseServer;
protected jsonUtil: JsonUtil;
protected timeUtil: TimeUtil;
protected hashUtil: HashUtil;
protected preAkiModLoader: PreAkiModLoader;
protected httpServerHelper: HttpServerHelper;
protected randomUtil: RandomUtil;
@ -58,7 +56,7 @@ export declare class GameController {
protected ragfairConfig: IRagfairConfig;
protected pmcConfig: IPmcConfig;
protected lootConfig: ILootConfig;
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, hashUtil: HashUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
load(): void;
/**
* Handle client/game/start
@ -67,12 +65,6 @@ export declare class GameController {
protected addCustomLooseLootPositions(): void;
protected adjustLooseLootSpawnProbabilities(): void;
protected setHideoutAreasAndCraftsTo40Secs(): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
protected fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/** Apply custom limits on bot types as defined in configs/location.json/botTypeLimits */
protected adjustMapBotLimits(): void;
/**

View File

@ -1,4 +1,5 @@
import { DependencyContainer } from "tsyringe";
import { ModDetails } from "../models/eft/profile/IAkiProfile";
import { ICoreConfig } from "../models/spt/config/ICoreConfig";
import { IModLoader } from "../models/spt/mod/IModLoader";
import { IPackageJsonData } from "../models/spt/mod/IPackageJsonData";
@ -35,6 +36,7 @@ export declare class PreAkiModLoader implements IModLoader {
*/
getImportedModsNames(): string[];
getImportedModDetails(): Record<string, IPackageJsonData>;
getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[];
getModPath(mod: string): string;
protected importMods(): Promise<void>;
protected sortMods(prev: string, next: string, missingFromOrderJSON: Record<string, boolean>): number;

View File

@ -6,8 +6,19 @@ export interface IRepairConfig extends IBaseConfig {
applyRandomizeDurabilityLoss: boolean;
weaponSkillRepairGain: number;
armorKitSkillPointGainPerRepairPointMultiplier: number;
/** INT gain multiplier per repaired item type */
repairKitIntellectGainMultiplier: IIntellectGainValues;
maxIntellectGainPerRepair: IMaxIntellectGainValues;
repairKit: RepairKit;
}
export interface IIntellectGainValues {
weapon: number;
armor: number;
}
export interface IMaxIntellectGainValues {
kit: number;
trader: number;
}
export interface RepairKit {
armor: BonusSettings;
weapon: BonusSettings;

View File

@ -29,7 +29,7 @@ export declare class EventOutputHolder {
/**
* Convert the internal trader data object into an object we can send to the client
* @param traderData server data for traders
* @returns
* @returns dict of trader id + TraderData
*/
protected constructTraderRelations(traderData: Record<string, TraderInfo>): Record<string, TraderData>;
/**

View File

@ -14,6 +14,7 @@ import { IRagfairConfig } from "../models/spt/config/IRagfairConfig";
import { ILogger } from "../models/spt/utils/ILogger";
import { ConfigServer } from "../servers/ConfigServer";
import { DatabaseServer } from "../servers/DatabaseServer";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { TimeUtil } from "../utils/TimeUtil";
import { Watermark } from "../utils/Watermark";
@ -29,11 +30,12 @@ export declare class ProfileFixerService {
protected localisationService: LocalisationService;
protected timeUtil: TimeUtil;
protected jsonUtil: JsonUtil;
protected hashUtil: HashUtil;
protected databaseServer: DatabaseServer;
protected configServer: ConfigServer;
protected coreConfig: ICoreConfig;
protected ragfairConfig: IRagfairConfig;
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, profileHelper: ProfileHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, jsonUtil: JsonUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, profileHelper: ProfileHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, jsonUtil: JsonUtil, hashUtil: HashUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
/**
* Find issues in the pmc profile data that may cause issues and fix them
* @param pmcProfile profile to check and fix
@ -129,6 +131,17 @@ export declare class ProfileFixerService {
* @param pmcProfile Profile to update
*/
removeLegacyScavCaseProductionCrafts(pmcProfile: IPmcData): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/**
* Bsg nested `stats` into a sub object called 'eft'
* @param fullProfile Profile to check for and migrate stats data
*/
migrateStatsToNewStructure(fullProfile: IAkiProfile): void;
/**
* 26126 (7th August) requires bonuses to have an ID, these were not included in the default profile presets
* @param pmcProfile Profile to add missing IDs to
@ -136,7 +149,7 @@ export declare class ProfileFixerService {
addMissingIdsToBonuses(pmcProfile: IPmcData): void;
/**
* At some point the property name was changed,migrate data across to new name
* @param pmcProfile
* @param pmcProfile Profile to migrate improvements in
*/
protected migrateImprovements(pmcProfile: IPmcData): void;
}

View File

@ -27,7 +27,6 @@ import { LocalisationService } from "../services/LocalisationService";
import { OpenZoneService } from "../services/OpenZoneService";
import { ProfileFixerService } from "../services/ProfileFixerService";
import { SeasonalEventService } from "../services/SeasonalEventService";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { RandomUtil } from "../utils/RandomUtil";
import { TimeUtil } from "../utils/TimeUtil";
@ -36,7 +35,6 @@ export declare class GameController {
protected databaseServer: DatabaseServer;
protected jsonUtil: JsonUtil;
protected timeUtil: TimeUtil;
protected hashUtil: HashUtil;
protected preAkiModLoader: PreAkiModLoader;
protected httpServerHelper: HttpServerHelper;
protected randomUtil: RandomUtil;
@ -58,7 +56,7 @@ export declare class GameController {
protected ragfairConfig: IRagfairConfig;
protected pmcConfig: IPmcConfig;
protected lootConfig: ILootConfig;
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, hashUtil: HashUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
load(): void;
/**
* Handle client/game/start
@ -67,12 +65,6 @@ export declare class GameController {
protected addCustomLooseLootPositions(): void;
protected adjustLooseLootSpawnProbabilities(): void;
protected setHideoutAreasAndCraftsTo40Secs(): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
protected fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/** Apply custom limits on bot types as defined in configs/location.json/botTypeLimits */
protected adjustMapBotLimits(): void;
/**

View File

@ -1,4 +1,5 @@
import { DependencyContainer } from "tsyringe";
import { ModDetails } from "../models/eft/profile/IAkiProfile";
import { ICoreConfig } from "../models/spt/config/ICoreConfig";
import { IModLoader } from "../models/spt/mod/IModLoader";
import { IPackageJsonData } from "../models/spt/mod/IPackageJsonData";
@ -35,6 +36,7 @@ export declare class PreAkiModLoader implements IModLoader {
*/
getImportedModsNames(): string[];
getImportedModDetails(): Record<string, IPackageJsonData>;
getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[];
getModPath(mod: string): string;
protected importMods(): Promise<void>;
protected sortMods(prev: string, next: string, missingFromOrderJSON: Record<string, boolean>): number;

View File

@ -6,8 +6,19 @@ export interface IRepairConfig extends IBaseConfig {
applyRandomizeDurabilityLoss: boolean;
weaponSkillRepairGain: number;
armorKitSkillPointGainPerRepairPointMultiplier: number;
/** INT gain multiplier per repaired item type */
repairKitIntellectGainMultiplier: IIntellectGainValues;
maxIntellectGainPerRepair: IMaxIntellectGainValues;
repairKit: RepairKit;
}
export interface IIntellectGainValues {
weapon: number;
armor: number;
}
export interface IMaxIntellectGainValues {
kit: number;
trader: number;
}
export interface RepairKit {
armor: BonusSettings;
weapon: BonusSettings;

View File

@ -29,7 +29,7 @@ export declare class EventOutputHolder {
/**
* Convert the internal trader data object into an object we can send to the client
* @param traderData server data for traders
* @returns
* @returns dict of trader id + TraderData
*/
protected constructTraderRelations(traderData: Record<string, TraderInfo>): Record<string, TraderData>;
/**

View File

@ -14,6 +14,7 @@ import { IRagfairConfig } from "../models/spt/config/IRagfairConfig";
import { ILogger } from "../models/spt/utils/ILogger";
import { ConfigServer } from "../servers/ConfigServer";
import { DatabaseServer } from "../servers/DatabaseServer";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { TimeUtil } from "../utils/TimeUtil";
import { Watermark } from "../utils/Watermark";
@ -29,11 +30,12 @@ export declare class ProfileFixerService {
protected localisationService: LocalisationService;
protected timeUtil: TimeUtil;
protected jsonUtil: JsonUtil;
protected hashUtil: HashUtil;
protected databaseServer: DatabaseServer;
protected configServer: ConfigServer;
protected coreConfig: ICoreConfig;
protected ragfairConfig: IRagfairConfig;
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, profileHelper: ProfileHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, jsonUtil: JsonUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, profileHelper: ProfileHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, jsonUtil: JsonUtil, hashUtil: HashUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
/**
* Find issues in the pmc profile data that may cause issues and fix them
* @param pmcProfile profile to check and fix
@ -129,6 +131,17 @@ export declare class ProfileFixerService {
* @param pmcProfile Profile to update
*/
removeLegacyScavCaseProductionCrafts(pmcProfile: IPmcData): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/**
* Bsg nested `stats` into a sub object called 'eft'
* @param fullProfile Profile to check for and migrate stats data
*/
migrateStatsToNewStructure(fullProfile: IAkiProfile): void;
/**
* 26126 (7th August) requires bonuses to have an ID, these were not included in the default profile presets
* @param pmcProfile Profile to add missing IDs to
@ -136,7 +149,7 @@ export declare class ProfileFixerService {
addMissingIdsToBonuses(pmcProfile: IPmcData): void;
/**
* At some point the property name was changed,migrate data across to new name
* @param pmcProfile
* @param pmcProfile Profile to migrate improvements in
*/
protected migrateImprovements(pmcProfile: IPmcData): void;
}

View File

@ -27,7 +27,6 @@ import { LocalisationService } from "../services/LocalisationService";
import { OpenZoneService } from "../services/OpenZoneService";
import { ProfileFixerService } from "../services/ProfileFixerService";
import { SeasonalEventService } from "../services/SeasonalEventService";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { RandomUtil } from "../utils/RandomUtil";
import { TimeUtil } from "../utils/TimeUtil";
@ -36,7 +35,6 @@ export declare class GameController {
protected databaseServer: DatabaseServer;
protected jsonUtil: JsonUtil;
protected timeUtil: TimeUtil;
protected hashUtil: HashUtil;
protected preAkiModLoader: PreAkiModLoader;
protected httpServerHelper: HttpServerHelper;
protected randomUtil: RandomUtil;
@ -58,7 +56,7 @@ export declare class GameController {
protected ragfairConfig: IRagfairConfig;
protected pmcConfig: IPmcConfig;
protected lootConfig: ILootConfig;
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, hashUtil: HashUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
load(): void;
/**
* Handle client/game/start
@ -67,12 +65,6 @@ export declare class GameController {
protected addCustomLooseLootPositions(): void;
protected adjustLooseLootSpawnProbabilities(): void;
protected setHideoutAreasAndCraftsTo40Secs(): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
protected fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/** Apply custom limits on bot types as defined in configs/location.json/botTypeLimits */
protected adjustMapBotLimits(): void;
/**

View File

@ -1,4 +1,5 @@
import { DependencyContainer } from "tsyringe";
import { ModDetails } from "../models/eft/profile/IAkiProfile";
import { ICoreConfig } from "../models/spt/config/ICoreConfig";
import { IModLoader } from "../models/spt/mod/IModLoader";
import { IPackageJsonData } from "../models/spt/mod/IPackageJsonData";
@ -35,6 +36,7 @@ export declare class PreAkiModLoader implements IModLoader {
*/
getImportedModsNames(): string[];
getImportedModDetails(): Record<string, IPackageJsonData>;
getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[];
getModPath(mod: string): string;
protected importMods(): Promise<void>;
protected sortMods(prev: string, next: string, missingFromOrderJSON: Record<string, boolean>): number;

View File

@ -6,8 +6,19 @@ export interface IRepairConfig extends IBaseConfig {
applyRandomizeDurabilityLoss: boolean;
weaponSkillRepairGain: number;
armorKitSkillPointGainPerRepairPointMultiplier: number;
/** INT gain multiplier per repaired item type */
repairKitIntellectGainMultiplier: IIntellectGainValues;
maxIntellectGainPerRepair: IMaxIntellectGainValues;
repairKit: RepairKit;
}
export interface IIntellectGainValues {
weapon: number;
armor: number;
}
export interface IMaxIntellectGainValues {
kit: number;
trader: number;
}
export interface RepairKit {
armor: BonusSettings;
weapon: BonusSettings;

View File

@ -29,7 +29,7 @@ export declare class EventOutputHolder {
/**
* Convert the internal trader data object into an object we can send to the client
* @param traderData server data for traders
* @returns
* @returns dict of trader id + TraderData
*/
protected constructTraderRelations(traderData: Record<string, TraderInfo>): Record<string, TraderData>;
/**

View File

@ -14,6 +14,7 @@ import { IRagfairConfig } from "../models/spt/config/IRagfairConfig";
import { ILogger } from "../models/spt/utils/ILogger";
import { ConfigServer } from "../servers/ConfigServer";
import { DatabaseServer } from "../servers/DatabaseServer";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { TimeUtil } from "../utils/TimeUtil";
import { Watermark } from "../utils/Watermark";
@ -29,11 +30,12 @@ export declare class ProfileFixerService {
protected localisationService: LocalisationService;
protected timeUtil: TimeUtil;
protected jsonUtil: JsonUtil;
protected hashUtil: HashUtil;
protected databaseServer: DatabaseServer;
protected configServer: ConfigServer;
protected coreConfig: ICoreConfig;
protected ragfairConfig: IRagfairConfig;
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, profileHelper: ProfileHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, jsonUtil: JsonUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, profileHelper: ProfileHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, jsonUtil: JsonUtil, hashUtil: HashUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
/**
* Find issues in the pmc profile data that may cause issues and fix them
* @param pmcProfile profile to check and fix
@ -129,6 +131,17 @@ export declare class ProfileFixerService {
* @param pmcProfile Profile to update
*/
removeLegacyScavCaseProductionCrafts(pmcProfile: IPmcData): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/**
* Bsg nested `stats` into a sub object called 'eft'
* @param fullProfile Profile to check for and migrate stats data
*/
migrateStatsToNewStructure(fullProfile: IAkiProfile): void;
/**
* 26126 (7th August) requires bonuses to have an ID, these were not included in the default profile presets
* @param pmcProfile Profile to add missing IDs to
@ -136,7 +149,7 @@ export declare class ProfileFixerService {
addMissingIdsToBonuses(pmcProfile: IPmcData): void;
/**
* At some point the property name was changed,migrate data across to new name
* @param pmcProfile
* @param pmcProfile Profile to migrate improvements in
*/
protected migrateImprovements(pmcProfile: IPmcData): void;
}

View File

@ -27,7 +27,6 @@ import { LocalisationService } from "../services/LocalisationService";
import { OpenZoneService } from "../services/OpenZoneService";
import { ProfileFixerService } from "../services/ProfileFixerService";
import { SeasonalEventService } from "../services/SeasonalEventService";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { RandomUtil } from "../utils/RandomUtil";
import { TimeUtil } from "../utils/TimeUtil";
@ -36,7 +35,6 @@ export declare class GameController {
protected databaseServer: DatabaseServer;
protected jsonUtil: JsonUtil;
protected timeUtil: TimeUtil;
protected hashUtil: HashUtil;
protected preAkiModLoader: PreAkiModLoader;
protected httpServerHelper: HttpServerHelper;
protected randomUtil: RandomUtil;
@ -58,7 +56,7 @@ export declare class GameController {
protected ragfairConfig: IRagfairConfig;
protected pmcConfig: IPmcConfig;
protected lootConfig: ILootConfig;
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, hashUtil: HashUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
load(): void;
/**
* Handle client/game/start
@ -67,12 +65,6 @@ export declare class GameController {
protected addCustomLooseLootPositions(): void;
protected adjustLooseLootSpawnProbabilities(): void;
protected setHideoutAreasAndCraftsTo40Secs(): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
protected fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/** Apply custom limits on bot types as defined in configs/location.json/botTypeLimits */
protected adjustMapBotLimits(): void;
/**

View File

@ -1,4 +1,5 @@
import { DependencyContainer } from "tsyringe";
import { ModDetails } from "../models/eft/profile/IAkiProfile";
import { ICoreConfig } from "../models/spt/config/ICoreConfig";
import { IModLoader } from "../models/spt/mod/IModLoader";
import { IPackageJsonData } from "../models/spt/mod/IPackageJsonData";
@ -35,6 +36,7 @@ export declare class PreAkiModLoader implements IModLoader {
*/
getImportedModsNames(): string[];
getImportedModDetails(): Record<string, IPackageJsonData>;
getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[];
getModPath(mod: string): string;
protected importMods(): Promise<void>;
protected sortMods(prev: string, next: string, missingFromOrderJSON: Record<string, boolean>): number;

View File

@ -6,8 +6,19 @@ export interface IRepairConfig extends IBaseConfig {
applyRandomizeDurabilityLoss: boolean;
weaponSkillRepairGain: number;
armorKitSkillPointGainPerRepairPointMultiplier: number;
/** INT gain multiplier per repaired item type */
repairKitIntellectGainMultiplier: IIntellectGainValues;
maxIntellectGainPerRepair: IMaxIntellectGainValues;
repairKit: RepairKit;
}
export interface IIntellectGainValues {
weapon: number;
armor: number;
}
export interface IMaxIntellectGainValues {
kit: number;
trader: number;
}
export interface RepairKit {
armor: BonusSettings;
weapon: BonusSettings;

View File

@ -29,7 +29,7 @@ export declare class EventOutputHolder {
/**
* Convert the internal trader data object into an object we can send to the client
* @param traderData server data for traders
* @returns
* @returns dict of trader id + TraderData
*/
protected constructTraderRelations(traderData: Record<string, TraderInfo>): Record<string, TraderData>;
/**

View File

@ -14,6 +14,7 @@ import { IRagfairConfig } from "../models/spt/config/IRagfairConfig";
import { ILogger } from "../models/spt/utils/ILogger";
import { ConfigServer } from "../servers/ConfigServer";
import { DatabaseServer } from "../servers/DatabaseServer";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { TimeUtil } from "../utils/TimeUtil";
import { Watermark } from "../utils/Watermark";
@ -29,11 +30,12 @@ export declare class ProfileFixerService {
protected localisationService: LocalisationService;
protected timeUtil: TimeUtil;
protected jsonUtil: JsonUtil;
protected hashUtil: HashUtil;
protected databaseServer: DatabaseServer;
protected configServer: ConfigServer;
protected coreConfig: ICoreConfig;
protected ragfairConfig: IRagfairConfig;
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, profileHelper: ProfileHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, jsonUtil: JsonUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, profileHelper: ProfileHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, jsonUtil: JsonUtil, hashUtil: HashUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
/**
* Find issues in the pmc profile data that may cause issues and fix them
* @param pmcProfile profile to check and fix
@ -129,6 +131,17 @@ export declare class ProfileFixerService {
* @param pmcProfile Profile to update
*/
removeLegacyScavCaseProductionCrafts(pmcProfile: IPmcData): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/**
* Bsg nested `stats` into a sub object called 'eft'
* @param fullProfile Profile to check for and migrate stats data
*/
migrateStatsToNewStructure(fullProfile: IAkiProfile): void;
/**
* 26126 (7th August) requires bonuses to have an ID, these were not included in the default profile presets
* @param pmcProfile Profile to add missing IDs to
@ -136,7 +149,7 @@ export declare class ProfileFixerService {
addMissingIdsToBonuses(pmcProfile: IPmcData): void;
/**
* At some point the property name was changed,migrate data across to new name
* @param pmcProfile
* @param pmcProfile Profile to migrate improvements in
*/
protected migrateImprovements(pmcProfile: IPmcData): void;
}

View File

@ -27,7 +27,6 @@ import { LocalisationService } from "../services/LocalisationService";
import { OpenZoneService } from "../services/OpenZoneService";
import { ProfileFixerService } from "../services/ProfileFixerService";
import { SeasonalEventService } from "../services/SeasonalEventService";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { RandomUtil } from "../utils/RandomUtil";
import { TimeUtil } from "../utils/TimeUtil";
@ -36,7 +35,6 @@ export declare class GameController {
protected databaseServer: DatabaseServer;
protected jsonUtil: JsonUtil;
protected timeUtil: TimeUtil;
protected hashUtil: HashUtil;
protected preAkiModLoader: PreAkiModLoader;
protected httpServerHelper: HttpServerHelper;
protected randomUtil: RandomUtil;
@ -58,7 +56,7 @@ export declare class GameController {
protected ragfairConfig: IRagfairConfig;
protected pmcConfig: IPmcConfig;
protected lootConfig: ILootConfig;
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, hashUtil: HashUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
load(): void;
/**
* Handle client/game/start
@ -67,12 +65,6 @@ export declare class GameController {
protected addCustomLooseLootPositions(): void;
protected adjustLooseLootSpawnProbabilities(): void;
protected setHideoutAreasAndCraftsTo40Secs(): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
protected fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/** Apply custom limits on bot types as defined in configs/location.json/botTypeLimits */
protected adjustMapBotLimits(): void;
/**

View File

@ -1,4 +1,5 @@
import { DependencyContainer } from "tsyringe";
import { ModDetails } from "../models/eft/profile/IAkiProfile";
import { ICoreConfig } from "../models/spt/config/ICoreConfig";
import { IModLoader } from "../models/spt/mod/IModLoader";
import { IPackageJsonData } from "../models/spt/mod/IPackageJsonData";
@ -35,6 +36,7 @@ export declare class PreAkiModLoader implements IModLoader {
*/
getImportedModsNames(): string[];
getImportedModDetails(): Record<string, IPackageJsonData>;
getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[];
getModPath(mod: string): string;
protected importMods(): Promise<void>;
protected sortMods(prev: string, next: string, missingFromOrderJSON: Record<string, boolean>): number;

View File

@ -6,8 +6,19 @@ export interface IRepairConfig extends IBaseConfig {
applyRandomizeDurabilityLoss: boolean;
weaponSkillRepairGain: number;
armorKitSkillPointGainPerRepairPointMultiplier: number;
/** INT gain multiplier per repaired item type */
repairKitIntellectGainMultiplier: IIntellectGainValues;
maxIntellectGainPerRepair: IMaxIntellectGainValues;
repairKit: RepairKit;
}
export interface IIntellectGainValues {
weapon: number;
armor: number;
}
export interface IMaxIntellectGainValues {
kit: number;
trader: number;
}
export interface RepairKit {
armor: BonusSettings;
weapon: BonusSettings;

View File

@ -29,7 +29,7 @@ export declare class EventOutputHolder {
/**
* Convert the internal trader data object into an object we can send to the client
* @param traderData server data for traders
* @returns
* @returns dict of trader id + TraderData
*/
protected constructTraderRelations(traderData: Record<string, TraderInfo>): Record<string, TraderData>;
/**

View File

@ -14,6 +14,7 @@ import { IRagfairConfig } from "../models/spt/config/IRagfairConfig";
import { ILogger } from "../models/spt/utils/ILogger";
import { ConfigServer } from "../servers/ConfigServer";
import { DatabaseServer } from "../servers/DatabaseServer";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { TimeUtil } from "../utils/TimeUtil";
import { Watermark } from "../utils/Watermark";
@ -29,11 +30,12 @@ export declare class ProfileFixerService {
protected localisationService: LocalisationService;
protected timeUtil: TimeUtil;
protected jsonUtil: JsonUtil;
protected hashUtil: HashUtil;
protected databaseServer: DatabaseServer;
protected configServer: ConfigServer;
protected coreConfig: ICoreConfig;
protected ragfairConfig: IRagfairConfig;
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, profileHelper: ProfileHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, jsonUtil: JsonUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, profileHelper: ProfileHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, jsonUtil: JsonUtil, hashUtil: HashUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
/**
* Find issues in the pmc profile data that may cause issues and fix them
* @param pmcProfile profile to check and fix
@ -129,6 +131,17 @@ export declare class ProfileFixerService {
* @param pmcProfile Profile to update
*/
removeLegacyScavCaseProductionCrafts(pmcProfile: IPmcData): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/**
* Bsg nested `stats` into a sub object called 'eft'
* @param fullProfile Profile to check for and migrate stats data
*/
migrateStatsToNewStructure(fullProfile: IAkiProfile): void;
/**
* 26126 (7th August) requires bonuses to have an ID, these were not included in the default profile presets
* @param pmcProfile Profile to add missing IDs to
@ -136,7 +149,7 @@ export declare class ProfileFixerService {
addMissingIdsToBonuses(pmcProfile: IPmcData): void;
/**
* At some point the property name was changed,migrate data across to new name
* @param pmcProfile
* @param pmcProfile Profile to migrate improvements in
*/
protected migrateImprovements(pmcProfile: IPmcData): void;
}

View File

@ -27,7 +27,6 @@ import { LocalisationService } from "../services/LocalisationService";
import { OpenZoneService } from "../services/OpenZoneService";
import { ProfileFixerService } from "../services/ProfileFixerService";
import { SeasonalEventService } from "../services/SeasonalEventService";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { RandomUtil } from "../utils/RandomUtil";
import { TimeUtil } from "../utils/TimeUtil";
@ -36,7 +35,6 @@ export declare class GameController {
protected databaseServer: DatabaseServer;
protected jsonUtil: JsonUtil;
protected timeUtil: TimeUtil;
protected hashUtil: HashUtil;
protected preAkiModLoader: PreAkiModLoader;
protected httpServerHelper: HttpServerHelper;
protected randomUtil: RandomUtil;
@ -58,7 +56,7 @@ export declare class GameController {
protected ragfairConfig: IRagfairConfig;
protected pmcConfig: IPmcConfig;
protected lootConfig: ILootConfig;
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, hashUtil: HashUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
load(): void;
/**
* Handle client/game/start
@ -67,12 +65,6 @@ export declare class GameController {
protected addCustomLooseLootPositions(): void;
protected adjustLooseLootSpawnProbabilities(): void;
protected setHideoutAreasAndCraftsTo40Secs(): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
protected fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/** Apply custom limits on bot types as defined in configs/location.json/botTypeLimits */
protected adjustMapBotLimits(): void;
/**

View File

@ -1,4 +1,5 @@
import { DependencyContainer } from "tsyringe";
import { ModDetails } from "../models/eft/profile/IAkiProfile";
import { ICoreConfig } from "../models/spt/config/ICoreConfig";
import { IModLoader } from "../models/spt/mod/IModLoader";
import { IPackageJsonData } from "../models/spt/mod/IPackageJsonData";
@ -35,6 +36,7 @@ export declare class PreAkiModLoader implements IModLoader {
*/
getImportedModsNames(): string[];
getImportedModDetails(): Record<string, IPackageJsonData>;
getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[];
getModPath(mod: string): string;
protected importMods(): Promise<void>;
protected sortMods(prev: string, next: string, missingFromOrderJSON: Record<string, boolean>): number;

View File

@ -6,8 +6,19 @@ export interface IRepairConfig extends IBaseConfig {
applyRandomizeDurabilityLoss: boolean;
weaponSkillRepairGain: number;
armorKitSkillPointGainPerRepairPointMultiplier: number;
/** INT gain multiplier per repaired item type */
repairKitIntellectGainMultiplier: IIntellectGainValues;
maxIntellectGainPerRepair: IMaxIntellectGainValues;
repairKit: RepairKit;
}
export interface IIntellectGainValues {
weapon: number;
armor: number;
}
export interface IMaxIntellectGainValues {
kit: number;
trader: number;
}
export interface RepairKit {
armor: BonusSettings;
weapon: BonusSettings;

View File

@ -29,7 +29,7 @@ export declare class EventOutputHolder {
/**
* Convert the internal trader data object into an object we can send to the client
* @param traderData server data for traders
* @returns
* @returns dict of trader id + TraderData
*/
protected constructTraderRelations(traderData: Record<string, TraderInfo>): Record<string, TraderData>;
/**

View File

@ -14,6 +14,7 @@ import { IRagfairConfig } from "../models/spt/config/IRagfairConfig";
import { ILogger } from "../models/spt/utils/ILogger";
import { ConfigServer } from "../servers/ConfigServer";
import { DatabaseServer } from "../servers/DatabaseServer";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { TimeUtil } from "../utils/TimeUtil";
import { Watermark } from "../utils/Watermark";
@ -29,11 +30,12 @@ export declare class ProfileFixerService {
protected localisationService: LocalisationService;
protected timeUtil: TimeUtil;
protected jsonUtil: JsonUtil;
protected hashUtil: HashUtil;
protected databaseServer: DatabaseServer;
protected configServer: ConfigServer;
protected coreConfig: ICoreConfig;
protected ragfairConfig: IRagfairConfig;
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, profileHelper: ProfileHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, jsonUtil: JsonUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, profileHelper: ProfileHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, jsonUtil: JsonUtil, hashUtil: HashUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
/**
* Find issues in the pmc profile data that may cause issues and fix them
* @param pmcProfile profile to check and fix
@ -129,6 +131,17 @@ export declare class ProfileFixerService {
* @param pmcProfile Profile to update
*/
removeLegacyScavCaseProductionCrafts(pmcProfile: IPmcData): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/**
* Bsg nested `stats` into a sub object called 'eft'
* @param fullProfile Profile to check for and migrate stats data
*/
migrateStatsToNewStructure(fullProfile: IAkiProfile): void;
/**
* 26126 (7th August) requires bonuses to have an ID, these were not included in the default profile presets
* @param pmcProfile Profile to add missing IDs to
@ -136,7 +149,7 @@ export declare class ProfileFixerService {
addMissingIdsToBonuses(pmcProfile: IPmcData): void;
/**
* At some point the property name was changed,migrate data across to new name
* @param pmcProfile
* @param pmcProfile Profile to migrate improvements in
*/
protected migrateImprovements(pmcProfile: IPmcData): void;
}

View File

@ -27,7 +27,6 @@ import { LocalisationService } from "../services/LocalisationService";
import { OpenZoneService } from "../services/OpenZoneService";
import { ProfileFixerService } from "../services/ProfileFixerService";
import { SeasonalEventService } from "../services/SeasonalEventService";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { RandomUtil } from "../utils/RandomUtil";
import { TimeUtil } from "../utils/TimeUtil";
@ -36,7 +35,6 @@ export declare class GameController {
protected databaseServer: DatabaseServer;
protected jsonUtil: JsonUtil;
protected timeUtil: TimeUtil;
protected hashUtil: HashUtil;
protected preAkiModLoader: PreAkiModLoader;
protected httpServerHelper: HttpServerHelper;
protected randomUtil: RandomUtil;
@ -58,7 +56,7 @@ export declare class GameController {
protected ragfairConfig: IRagfairConfig;
protected pmcConfig: IPmcConfig;
protected lootConfig: ILootConfig;
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, hashUtil: HashUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
load(): void;
/**
* Handle client/game/start
@ -67,12 +65,6 @@ export declare class GameController {
protected addCustomLooseLootPositions(): void;
protected adjustLooseLootSpawnProbabilities(): void;
protected setHideoutAreasAndCraftsTo40Secs(): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
protected fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/** Apply custom limits on bot types as defined in configs/location.json/botTypeLimits */
protected adjustMapBotLimits(): void;
/**

View File

@ -1,4 +1,5 @@
import { DependencyContainer } from "tsyringe";
import { ModDetails } from "../models/eft/profile/IAkiProfile";
import { ICoreConfig } from "../models/spt/config/ICoreConfig";
import { IModLoader } from "../models/spt/mod/IModLoader";
import { IPackageJsonData } from "../models/spt/mod/IPackageJsonData";
@ -35,6 +36,7 @@ export declare class PreAkiModLoader implements IModLoader {
*/
getImportedModsNames(): string[];
getImportedModDetails(): Record<string, IPackageJsonData>;
getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[];
getModPath(mod: string): string;
protected importMods(): Promise<void>;
protected sortMods(prev: string, next: string, missingFromOrderJSON: Record<string, boolean>): number;

View File

@ -6,8 +6,19 @@ export interface IRepairConfig extends IBaseConfig {
applyRandomizeDurabilityLoss: boolean;
weaponSkillRepairGain: number;
armorKitSkillPointGainPerRepairPointMultiplier: number;
/** INT gain multiplier per repaired item type */
repairKitIntellectGainMultiplier: IIntellectGainValues;
maxIntellectGainPerRepair: IMaxIntellectGainValues;
repairKit: RepairKit;
}
export interface IIntellectGainValues {
weapon: number;
armor: number;
}
export interface IMaxIntellectGainValues {
kit: number;
trader: number;
}
export interface RepairKit {
armor: BonusSettings;
weapon: BonusSettings;

View File

@ -29,7 +29,7 @@ export declare class EventOutputHolder {
/**
* Convert the internal trader data object into an object we can send to the client
* @param traderData server data for traders
* @returns
* @returns dict of trader id + TraderData
*/
protected constructTraderRelations(traderData: Record<string, TraderInfo>): Record<string, TraderData>;
/**

View File

@ -14,6 +14,7 @@ import { IRagfairConfig } from "../models/spt/config/IRagfairConfig";
import { ILogger } from "../models/spt/utils/ILogger";
import { ConfigServer } from "../servers/ConfigServer";
import { DatabaseServer } from "../servers/DatabaseServer";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { TimeUtil } from "../utils/TimeUtil";
import { Watermark } from "../utils/Watermark";
@ -29,11 +30,12 @@ export declare class ProfileFixerService {
protected localisationService: LocalisationService;
protected timeUtil: TimeUtil;
protected jsonUtil: JsonUtil;
protected hashUtil: HashUtil;
protected databaseServer: DatabaseServer;
protected configServer: ConfigServer;
protected coreConfig: ICoreConfig;
protected ragfairConfig: IRagfairConfig;
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, profileHelper: ProfileHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, jsonUtil: JsonUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, profileHelper: ProfileHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, jsonUtil: JsonUtil, hashUtil: HashUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
/**
* Find issues in the pmc profile data that may cause issues and fix them
* @param pmcProfile profile to check and fix
@ -129,6 +131,17 @@ export declare class ProfileFixerService {
* @param pmcProfile Profile to update
*/
removeLegacyScavCaseProductionCrafts(pmcProfile: IPmcData): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/**
* Bsg nested `stats` into a sub object called 'eft'
* @param fullProfile Profile to check for and migrate stats data
*/
migrateStatsToNewStructure(fullProfile: IAkiProfile): void;
/**
* 26126 (7th August) requires bonuses to have an ID, these were not included in the default profile presets
* @param pmcProfile Profile to add missing IDs to
@ -136,7 +149,7 @@ export declare class ProfileFixerService {
addMissingIdsToBonuses(pmcProfile: IPmcData): void;
/**
* At some point the property name was changed,migrate data across to new name
* @param pmcProfile
* @param pmcProfile Profile to migrate improvements in
*/
protected migrateImprovements(pmcProfile: IPmcData): void;
}

View File

@ -27,7 +27,6 @@ import { LocalisationService } from "../services/LocalisationService";
import { OpenZoneService } from "../services/OpenZoneService";
import { ProfileFixerService } from "../services/ProfileFixerService";
import { SeasonalEventService } from "../services/SeasonalEventService";
import { HashUtil } from "../utils/HashUtil";
import { JsonUtil } from "../utils/JsonUtil";
import { RandomUtil } from "../utils/RandomUtil";
import { TimeUtil } from "../utils/TimeUtil";
@ -36,7 +35,6 @@ export declare class GameController {
protected databaseServer: DatabaseServer;
protected jsonUtil: JsonUtil;
protected timeUtil: TimeUtil;
protected hashUtil: HashUtil;
protected preAkiModLoader: PreAkiModLoader;
protected httpServerHelper: HttpServerHelper;
protected randomUtil: RandomUtil;
@ -58,7 +56,7 @@ export declare class GameController {
protected ragfairConfig: IRagfairConfig;
protected pmcConfig: IPmcConfig;
protected lootConfig: ILootConfig;
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, hashUtil: HashUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, itemBaseClassService: ItemBaseClassService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
load(): void;
/**
* Handle client/game/start
@ -67,12 +65,6 @@ export declare class GameController {
protected addCustomLooseLootPositions(): void;
protected adjustLooseLootSpawnProbabilities(): void;
protected setHideoutAreasAndCraftsTo40Secs(): void;
/**
* 3.7.0 moved AIDs to be numeric, old profiles need to be migrated
* We store the old AID value in new field `sessionId`
* @param fullProfile Profile to update
*/
protected fixIncorrectAidValue(fullProfile: IAkiProfile): void;
/** Apply custom limits on bot types as defined in configs/location.json/botTypeLimits */
protected adjustMapBotLimits(): void;
/**

View File

@ -1,4 +1,5 @@
import { DependencyContainer } from "tsyringe";
import { ModDetails } from "../models/eft/profile/IAkiProfile";
import { ICoreConfig } from "../models/spt/config/ICoreConfig";
import { IModLoader } from "../models/spt/mod/IModLoader";
import { IPackageJsonData } from "../models/spt/mod/IPackageJsonData";
@ -35,6 +36,7 @@ export declare class PreAkiModLoader implements IModLoader {
*/
getImportedModsNames(): string[];
getImportedModDetails(): Record<string, IPackageJsonData>;
getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[];
getModPath(mod: string): string;
protected importMods(): Promise<void>;
protected sortMods(prev: string, next: string, missingFromOrderJSON: Record<string, boolean>): number;

View File

@ -6,8 +6,19 @@ export interface IRepairConfig extends IBaseConfig {
applyRandomizeDurabilityLoss: boolean;
weaponSkillRepairGain: number;
armorKitSkillPointGainPerRepairPointMultiplier: number;
/** INT gain multiplier per repaired item type */
repairKitIntellectGainMultiplier: IIntellectGainValues;
maxIntellectGainPerRepair: IMaxIntellectGainValues;
repairKit: RepairKit;
}
export interface IIntellectGainValues {
weapon: number;
armor: number;
}
export interface IMaxIntellectGainValues {
kit: number;
trader: number;
}
export interface RepairKit {
armor: BonusSettings;
weapon: BonusSettings;

View File

@ -29,7 +29,7 @@ export declare class EventOutputHolder {
/**
* Convert the internal trader data object into an object we can send to the client
* @param traderData server data for traders
* @returns
* @returns dict of trader id + TraderData
*/
protected constructTraderRelations(traderData: Record<string, TraderInfo>): Record<string, TraderData>;
/**

Some files were not shown because too many files have changed in this diff Show More