diff --git a/README.md b/README.md index e2122ea..3947a46 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/TypeScript/10ScopesAndTypes/types/controllers/GameController.d.ts b/TypeScript/10ScopesAndTypes/types/controllers/GameController.d.ts index b6903b7..73596ff 100644 --- a/TypeScript/10ScopesAndTypes/types/controllers/GameController.d.ts +++ b/TypeScript/10ScopesAndTypes/types/controllers/GameController.d.ts @@ -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; /** diff --git a/TypeScript/10ScopesAndTypes/types/loaders/PreAkiModLoader.d.ts b/TypeScript/10ScopesAndTypes/types/loaders/PreAkiModLoader.d.ts index a1664e1..1e24b96 100644 --- a/TypeScript/10ScopesAndTypes/types/loaders/PreAkiModLoader.d.ts +++ b/TypeScript/10ScopesAndTypes/types/loaders/PreAkiModLoader.d.ts @@ -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; + getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[]; getModPath(mod: string): string; protected importMods(): Promise; protected sortMods(prev: string, next: string, missingFromOrderJSON: Record): number; diff --git a/TypeScript/10ScopesAndTypes/types/models/spt/config/IRepairConfig.d.ts b/TypeScript/10ScopesAndTypes/types/models/spt/config/IRepairConfig.d.ts index b6db332..e95afa3 100644 --- a/TypeScript/10ScopesAndTypes/types/models/spt/config/IRepairConfig.d.ts +++ b/TypeScript/10ScopesAndTypes/types/models/spt/config/IRepairConfig.d.ts @@ -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; diff --git a/TypeScript/10ScopesAndTypes/types/routers/EventOutputHolder.d.ts b/TypeScript/10ScopesAndTypes/types/routers/EventOutputHolder.d.ts index 1966741..ab780aa 100644 --- a/TypeScript/10ScopesAndTypes/types/routers/EventOutputHolder.d.ts +++ b/TypeScript/10ScopesAndTypes/types/routers/EventOutputHolder.d.ts @@ -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): Record; /** diff --git a/TypeScript/10ScopesAndTypes/types/services/ProfileFixerService.d.ts b/TypeScript/10ScopesAndTypes/types/services/ProfileFixerService.d.ts index bc1e42e..cd6a87a 100644 --- a/TypeScript/10ScopesAndTypes/types/services/ProfileFixerService.d.ts +++ b/TypeScript/10ScopesAndTypes/types/services/ProfileFixerService.d.ts @@ -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; } diff --git a/TypeScript/11BundleLoadingSample/types/controllers/GameController.d.ts b/TypeScript/11BundleLoadingSample/types/controllers/GameController.d.ts index b6903b7..73596ff 100644 --- a/TypeScript/11BundleLoadingSample/types/controllers/GameController.d.ts +++ b/TypeScript/11BundleLoadingSample/types/controllers/GameController.d.ts @@ -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; /** diff --git a/TypeScript/11BundleLoadingSample/types/loaders/PreAkiModLoader.d.ts b/TypeScript/11BundleLoadingSample/types/loaders/PreAkiModLoader.d.ts index a1664e1..1e24b96 100644 --- a/TypeScript/11BundleLoadingSample/types/loaders/PreAkiModLoader.d.ts +++ b/TypeScript/11BundleLoadingSample/types/loaders/PreAkiModLoader.d.ts @@ -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; + getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[]; getModPath(mod: string): string; protected importMods(): Promise; protected sortMods(prev: string, next: string, missingFromOrderJSON: Record): number; diff --git a/TypeScript/11BundleLoadingSample/types/models/spt/config/IRepairConfig.d.ts b/TypeScript/11BundleLoadingSample/types/models/spt/config/IRepairConfig.d.ts index b6db332..e95afa3 100644 --- a/TypeScript/11BundleLoadingSample/types/models/spt/config/IRepairConfig.d.ts +++ b/TypeScript/11BundleLoadingSample/types/models/spt/config/IRepairConfig.d.ts @@ -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; diff --git a/TypeScript/11BundleLoadingSample/types/routers/EventOutputHolder.d.ts b/TypeScript/11BundleLoadingSample/types/routers/EventOutputHolder.d.ts index 1966741..ab780aa 100644 --- a/TypeScript/11BundleLoadingSample/types/routers/EventOutputHolder.d.ts +++ b/TypeScript/11BundleLoadingSample/types/routers/EventOutputHolder.d.ts @@ -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): Record; /** diff --git a/TypeScript/11BundleLoadingSample/types/services/ProfileFixerService.d.ts b/TypeScript/11BundleLoadingSample/types/services/ProfileFixerService.d.ts index bc1e42e..cd6a87a 100644 --- a/TypeScript/11BundleLoadingSample/types/services/ProfileFixerService.d.ts +++ b/TypeScript/11BundleLoadingSample/types/services/ProfileFixerService.d.ts @@ -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; } diff --git a/TypeScript/12ClassExtensionOverride/types/controllers/GameController.d.ts b/TypeScript/12ClassExtensionOverride/types/controllers/GameController.d.ts index b6903b7..73596ff 100644 --- a/TypeScript/12ClassExtensionOverride/types/controllers/GameController.d.ts +++ b/TypeScript/12ClassExtensionOverride/types/controllers/GameController.d.ts @@ -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; /** diff --git a/TypeScript/12ClassExtensionOverride/types/loaders/PreAkiModLoader.d.ts b/TypeScript/12ClassExtensionOverride/types/loaders/PreAkiModLoader.d.ts index a1664e1..1e24b96 100644 --- a/TypeScript/12ClassExtensionOverride/types/loaders/PreAkiModLoader.d.ts +++ b/TypeScript/12ClassExtensionOverride/types/loaders/PreAkiModLoader.d.ts @@ -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; + getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[]; getModPath(mod: string): string; protected importMods(): Promise; protected sortMods(prev: string, next: string, missingFromOrderJSON: Record): number; diff --git a/TypeScript/12ClassExtensionOverride/types/models/spt/config/IRepairConfig.d.ts b/TypeScript/12ClassExtensionOverride/types/models/spt/config/IRepairConfig.d.ts index b6db332..e95afa3 100644 --- a/TypeScript/12ClassExtensionOverride/types/models/spt/config/IRepairConfig.d.ts +++ b/TypeScript/12ClassExtensionOverride/types/models/spt/config/IRepairConfig.d.ts @@ -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; diff --git a/TypeScript/12ClassExtensionOverride/types/routers/EventOutputHolder.d.ts b/TypeScript/12ClassExtensionOverride/types/routers/EventOutputHolder.d.ts index 1966741..ab780aa 100644 --- a/TypeScript/12ClassExtensionOverride/types/routers/EventOutputHolder.d.ts +++ b/TypeScript/12ClassExtensionOverride/types/routers/EventOutputHolder.d.ts @@ -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): Record; /** diff --git a/TypeScript/12ClassExtensionOverride/types/services/ProfileFixerService.d.ts b/TypeScript/12ClassExtensionOverride/types/services/ProfileFixerService.d.ts index bc1e42e..cd6a87a 100644 --- a/TypeScript/12ClassExtensionOverride/types/services/ProfileFixerService.d.ts +++ b/TypeScript/12ClassExtensionOverride/types/services/ProfileFixerService.d.ts @@ -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; } diff --git a/TypeScript/13AddTrader/types/controllers/GameController.d.ts b/TypeScript/13AddTrader/types/controllers/GameController.d.ts index b6903b7..73596ff 100644 --- a/TypeScript/13AddTrader/types/controllers/GameController.d.ts +++ b/TypeScript/13AddTrader/types/controllers/GameController.d.ts @@ -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; /** diff --git a/TypeScript/13AddTrader/types/loaders/PreAkiModLoader.d.ts b/TypeScript/13AddTrader/types/loaders/PreAkiModLoader.d.ts index a1664e1..1e24b96 100644 --- a/TypeScript/13AddTrader/types/loaders/PreAkiModLoader.d.ts +++ b/TypeScript/13AddTrader/types/loaders/PreAkiModLoader.d.ts @@ -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; + getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[]; getModPath(mod: string): string; protected importMods(): Promise; protected sortMods(prev: string, next: string, missingFromOrderJSON: Record): number; diff --git a/TypeScript/13AddTrader/types/models/spt/config/IRepairConfig.d.ts b/TypeScript/13AddTrader/types/models/spt/config/IRepairConfig.d.ts index b6db332..e95afa3 100644 --- a/TypeScript/13AddTrader/types/models/spt/config/IRepairConfig.d.ts +++ b/TypeScript/13AddTrader/types/models/spt/config/IRepairConfig.d.ts @@ -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; diff --git a/TypeScript/13AddTrader/types/routers/EventOutputHolder.d.ts b/TypeScript/13AddTrader/types/routers/EventOutputHolder.d.ts index 1966741..ab780aa 100644 --- a/TypeScript/13AddTrader/types/routers/EventOutputHolder.d.ts +++ b/TypeScript/13AddTrader/types/routers/EventOutputHolder.d.ts @@ -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): Record; /** diff --git a/TypeScript/13AddTrader/types/services/ProfileFixerService.d.ts b/TypeScript/13AddTrader/types/services/ProfileFixerService.d.ts index bc1e42e..cd6a87a 100644 --- a/TypeScript/13AddTrader/types/services/ProfileFixerService.d.ts +++ b/TypeScript/13AddTrader/types/services/ProfileFixerService.d.ts @@ -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; } diff --git a/TypeScript/14AfterDBLoadHook/types/controllers/GameController.d.ts b/TypeScript/14AfterDBLoadHook/types/controllers/GameController.d.ts index b6903b7..73596ff 100644 --- a/TypeScript/14AfterDBLoadHook/types/controllers/GameController.d.ts +++ b/TypeScript/14AfterDBLoadHook/types/controllers/GameController.d.ts @@ -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; /** diff --git a/TypeScript/14AfterDBLoadHook/types/loaders/PreAkiModLoader.d.ts b/TypeScript/14AfterDBLoadHook/types/loaders/PreAkiModLoader.d.ts index a1664e1..1e24b96 100644 --- a/TypeScript/14AfterDBLoadHook/types/loaders/PreAkiModLoader.d.ts +++ b/TypeScript/14AfterDBLoadHook/types/loaders/PreAkiModLoader.d.ts @@ -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; + getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[]; getModPath(mod: string): string; protected importMods(): Promise; protected sortMods(prev: string, next: string, missingFromOrderJSON: Record): number; diff --git a/TypeScript/14AfterDBLoadHook/types/models/spt/config/IRepairConfig.d.ts b/TypeScript/14AfterDBLoadHook/types/models/spt/config/IRepairConfig.d.ts index b6db332..e95afa3 100644 --- a/TypeScript/14AfterDBLoadHook/types/models/spt/config/IRepairConfig.d.ts +++ b/TypeScript/14AfterDBLoadHook/types/models/spt/config/IRepairConfig.d.ts @@ -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; diff --git a/TypeScript/14AfterDBLoadHook/types/routers/EventOutputHolder.d.ts b/TypeScript/14AfterDBLoadHook/types/routers/EventOutputHolder.d.ts index 1966741..ab780aa 100644 --- a/TypeScript/14AfterDBLoadHook/types/routers/EventOutputHolder.d.ts +++ b/TypeScript/14AfterDBLoadHook/types/routers/EventOutputHolder.d.ts @@ -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): Record; /** diff --git a/TypeScript/14AfterDBLoadHook/types/services/ProfileFixerService.d.ts b/TypeScript/14AfterDBLoadHook/types/services/ProfileFixerService.d.ts index bc1e42e..cd6a87a 100644 --- a/TypeScript/14AfterDBLoadHook/types/services/ProfileFixerService.d.ts +++ b/TypeScript/14AfterDBLoadHook/types/services/ProfileFixerService.d.ts @@ -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; } diff --git a/TypeScript/15HttpListenerExample/types/controllers/GameController.d.ts b/TypeScript/15HttpListenerExample/types/controllers/GameController.d.ts index b6903b7..73596ff 100644 --- a/TypeScript/15HttpListenerExample/types/controllers/GameController.d.ts +++ b/TypeScript/15HttpListenerExample/types/controllers/GameController.d.ts @@ -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; /** diff --git a/TypeScript/15HttpListenerExample/types/loaders/PreAkiModLoader.d.ts b/TypeScript/15HttpListenerExample/types/loaders/PreAkiModLoader.d.ts index a1664e1..1e24b96 100644 --- a/TypeScript/15HttpListenerExample/types/loaders/PreAkiModLoader.d.ts +++ b/TypeScript/15HttpListenerExample/types/loaders/PreAkiModLoader.d.ts @@ -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; + getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[]; getModPath(mod: string): string; protected importMods(): Promise; protected sortMods(prev: string, next: string, missingFromOrderJSON: Record): number; diff --git a/TypeScript/15HttpListenerExample/types/models/spt/config/IRepairConfig.d.ts b/TypeScript/15HttpListenerExample/types/models/spt/config/IRepairConfig.d.ts index b6db332..e95afa3 100644 --- a/TypeScript/15HttpListenerExample/types/models/spt/config/IRepairConfig.d.ts +++ b/TypeScript/15HttpListenerExample/types/models/spt/config/IRepairConfig.d.ts @@ -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; diff --git a/TypeScript/15HttpListenerExample/types/routers/EventOutputHolder.d.ts b/TypeScript/15HttpListenerExample/types/routers/EventOutputHolder.d.ts index 1966741..ab780aa 100644 --- a/TypeScript/15HttpListenerExample/types/routers/EventOutputHolder.d.ts +++ b/TypeScript/15HttpListenerExample/types/routers/EventOutputHolder.d.ts @@ -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): Record; /** diff --git a/TypeScript/15HttpListenerExample/types/services/ProfileFixerService.d.ts b/TypeScript/15HttpListenerExample/types/services/ProfileFixerService.d.ts index bc1e42e..cd6a87a 100644 --- a/TypeScript/15HttpListenerExample/types/services/ProfileFixerService.d.ts +++ b/TypeScript/15HttpListenerExample/types/services/ProfileFixerService.d.ts @@ -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; } diff --git a/TypeScript/16ImporterUtil/types/controllers/GameController.d.ts b/TypeScript/16ImporterUtil/types/controllers/GameController.d.ts index b6903b7..73596ff 100644 --- a/TypeScript/16ImporterUtil/types/controllers/GameController.d.ts +++ b/TypeScript/16ImporterUtil/types/controllers/GameController.d.ts @@ -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; /** diff --git a/TypeScript/16ImporterUtil/types/loaders/PreAkiModLoader.d.ts b/TypeScript/16ImporterUtil/types/loaders/PreAkiModLoader.d.ts index a1664e1..1e24b96 100644 --- a/TypeScript/16ImporterUtil/types/loaders/PreAkiModLoader.d.ts +++ b/TypeScript/16ImporterUtil/types/loaders/PreAkiModLoader.d.ts @@ -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; + getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[]; getModPath(mod: string): string; protected importMods(): Promise; protected sortMods(prev: string, next: string, missingFromOrderJSON: Record): number; diff --git a/TypeScript/16ImporterUtil/types/models/spt/config/IRepairConfig.d.ts b/TypeScript/16ImporterUtil/types/models/spt/config/IRepairConfig.d.ts index b6db332..e95afa3 100644 --- a/TypeScript/16ImporterUtil/types/models/spt/config/IRepairConfig.d.ts +++ b/TypeScript/16ImporterUtil/types/models/spt/config/IRepairConfig.d.ts @@ -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; diff --git a/TypeScript/16ImporterUtil/types/routers/EventOutputHolder.d.ts b/TypeScript/16ImporterUtil/types/routers/EventOutputHolder.d.ts index 1966741..ab780aa 100644 --- a/TypeScript/16ImporterUtil/types/routers/EventOutputHolder.d.ts +++ b/TypeScript/16ImporterUtil/types/routers/EventOutputHolder.d.ts @@ -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): Record; /** diff --git a/TypeScript/16ImporterUtil/types/services/ProfileFixerService.d.ts b/TypeScript/16ImporterUtil/types/services/ProfileFixerService.d.ts index bc1e42e..cd6a87a 100644 --- a/TypeScript/16ImporterUtil/types/services/ProfileFixerService.d.ts +++ b/TypeScript/16ImporterUtil/types/services/ProfileFixerService.d.ts @@ -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; } diff --git a/TypeScript/17AsyncImporterWithDependency1/types/controllers/GameController.d.ts b/TypeScript/17AsyncImporterWithDependency1/types/controllers/GameController.d.ts index b6903b7..73596ff 100644 --- a/TypeScript/17AsyncImporterWithDependency1/types/controllers/GameController.d.ts +++ b/TypeScript/17AsyncImporterWithDependency1/types/controllers/GameController.d.ts @@ -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; /** diff --git a/TypeScript/17AsyncImporterWithDependency1/types/loaders/PreAkiModLoader.d.ts b/TypeScript/17AsyncImporterWithDependency1/types/loaders/PreAkiModLoader.d.ts index a1664e1..1e24b96 100644 --- a/TypeScript/17AsyncImporterWithDependency1/types/loaders/PreAkiModLoader.d.ts +++ b/TypeScript/17AsyncImporterWithDependency1/types/loaders/PreAkiModLoader.d.ts @@ -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; + getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[]; getModPath(mod: string): string; protected importMods(): Promise; protected sortMods(prev: string, next: string, missingFromOrderJSON: Record): number; diff --git a/TypeScript/17AsyncImporterWithDependency1/types/models/spt/config/IRepairConfig.d.ts b/TypeScript/17AsyncImporterWithDependency1/types/models/spt/config/IRepairConfig.d.ts index b6db332..e95afa3 100644 --- a/TypeScript/17AsyncImporterWithDependency1/types/models/spt/config/IRepairConfig.d.ts +++ b/TypeScript/17AsyncImporterWithDependency1/types/models/spt/config/IRepairConfig.d.ts @@ -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; diff --git a/TypeScript/17AsyncImporterWithDependency1/types/routers/EventOutputHolder.d.ts b/TypeScript/17AsyncImporterWithDependency1/types/routers/EventOutputHolder.d.ts index 1966741..ab780aa 100644 --- a/TypeScript/17AsyncImporterWithDependency1/types/routers/EventOutputHolder.d.ts +++ b/TypeScript/17AsyncImporterWithDependency1/types/routers/EventOutputHolder.d.ts @@ -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): Record; /** diff --git a/TypeScript/17AsyncImporterWithDependency1/types/services/ProfileFixerService.d.ts b/TypeScript/17AsyncImporterWithDependency1/types/services/ProfileFixerService.d.ts index bc1e42e..cd6a87a 100644 --- a/TypeScript/17AsyncImporterWithDependency1/types/services/ProfileFixerService.d.ts +++ b/TypeScript/17AsyncImporterWithDependency1/types/services/ProfileFixerService.d.ts @@ -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; } diff --git a/TypeScript/17AsyncImporterWithDependency2/types/controllers/GameController.d.ts b/TypeScript/17AsyncImporterWithDependency2/types/controllers/GameController.d.ts index b6903b7..73596ff 100644 --- a/TypeScript/17AsyncImporterWithDependency2/types/controllers/GameController.d.ts +++ b/TypeScript/17AsyncImporterWithDependency2/types/controllers/GameController.d.ts @@ -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; /** diff --git a/TypeScript/17AsyncImporterWithDependency2/types/loaders/PreAkiModLoader.d.ts b/TypeScript/17AsyncImporterWithDependency2/types/loaders/PreAkiModLoader.d.ts index a1664e1..1e24b96 100644 --- a/TypeScript/17AsyncImporterWithDependency2/types/loaders/PreAkiModLoader.d.ts +++ b/TypeScript/17AsyncImporterWithDependency2/types/loaders/PreAkiModLoader.d.ts @@ -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; + getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[]; getModPath(mod: string): string; protected importMods(): Promise; protected sortMods(prev: string, next: string, missingFromOrderJSON: Record): number; diff --git a/TypeScript/17AsyncImporterWithDependency2/types/models/spt/config/IRepairConfig.d.ts b/TypeScript/17AsyncImporterWithDependency2/types/models/spt/config/IRepairConfig.d.ts index b6db332..e95afa3 100644 --- a/TypeScript/17AsyncImporterWithDependency2/types/models/spt/config/IRepairConfig.d.ts +++ b/TypeScript/17AsyncImporterWithDependency2/types/models/spt/config/IRepairConfig.d.ts @@ -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; diff --git a/TypeScript/17AsyncImporterWithDependency2/types/routers/EventOutputHolder.d.ts b/TypeScript/17AsyncImporterWithDependency2/types/routers/EventOutputHolder.d.ts index 1966741..ab780aa 100644 --- a/TypeScript/17AsyncImporterWithDependency2/types/routers/EventOutputHolder.d.ts +++ b/TypeScript/17AsyncImporterWithDependency2/types/routers/EventOutputHolder.d.ts @@ -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): Record; /** diff --git a/TypeScript/17AsyncImporterWithDependency2/types/services/ProfileFixerService.d.ts b/TypeScript/17AsyncImporterWithDependency2/types/services/ProfileFixerService.d.ts index bc1e42e..cd6a87a 100644 --- a/TypeScript/17AsyncImporterWithDependency2/types/services/ProfileFixerService.d.ts +++ b/TypeScript/17AsyncImporterWithDependency2/types/services/ProfileFixerService.d.ts @@ -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; } diff --git a/TypeScript/18CustomItemService/types/controllers/GameController.d.ts b/TypeScript/18CustomItemService/types/controllers/GameController.d.ts index b6903b7..73596ff 100644 --- a/TypeScript/18CustomItemService/types/controllers/GameController.d.ts +++ b/TypeScript/18CustomItemService/types/controllers/GameController.d.ts @@ -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; /** diff --git a/TypeScript/18CustomItemService/types/loaders/PreAkiModLoader.d.ts b/TypeScript/18CustomItemService/types/loaders/PreAkiModLoader.d.ts index a1664e1..1e24b96 100644 --- a/TypeScript/18CustomItemService/types/loaders/PreAkiModLoader.d.ts +++ b/TypeScript/18CustomItemService/types/loaders/PreAkiModLoader.d.ts @@ -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; + getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[]; getModPath(mod: string): string; protected importMods(): Promise; protected sortMods(prev: string, next: string, missingFromOrderJSON: Record): number; diff --git a/TypeScript/18CustomItemService/types/models/spt/config/IRepairConfig.d.ts b/TypeScript/18CustomItemService/types/models/spt/config/IRepairConfig.d.ts index b6db332..e95afa3 100644 --- a/TypeScript/18CustomItemService/types/models/spt/config/IRepairConfig.d.ts +++ b/TypeScript/18CustomItemService/types/models/spt/config/IRepairConfig.d.ts @@ -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; diff --git a/TypeScript/18CustomItemService/types/routers/EventOutputHolder.d.ts b/TypeScript/18CustomItemService/types/routers/EventOutputHolder.d.ts index 1966741..ab780aa 100644 --- a/TypeScript/18CustomItemService/types/routers/EventOutputHolder.d.ts +++ b/TypeScript/18CustomItemService/types/routers/EventOutputHolder.d.ts @@ -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): Record; /** diff --git a/TypeScript/18CustomItemService/types/services/ProfileFixerService.d.ts b/TypeScript/18CustomItemService/types/services/ProfileFixerService.d.ts index bc1e42e..cd6a87a 100644 --- a/TypeScript/18CustomItemService/types/services/ProfileFixerService.d.ts +++ b/TypeScript/18CustomItemService/types/services/ProfileFixerService.d.ts @@ -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; } diff --git a/TypeScript/19UseExternalLibraries/types/controllers/GameController.d.ts b/TypeScript/19UseExternalLibraries/types/controllers/GameController.d.ts index b6903b7..73596ff 100644 --- a/TypeScript/19UseExternalLibraries/types/controllers/GameController.d.ts +++ b/TypeScript/19UseExternalLibraries/types/controllers/GameController.d.ts @@ -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; /** diff --git a/TypeScript/19UseExternalLibraries/types/loaders/PreAkiModLoader.d.ts b/TypeScript/19UseExternalLibraries/types/loaders/PreAkiModLoader.d.ts index a1664e1..1e24b96 100644 --- a/TypeScript/19UseExternalLibraries/types/loaders/PreAkiModLoader.d.ts +++ b/TypeScript/19UseExternalLibraries/types/loaders/PreAkiModLoader.d.ts @@ -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; + getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[]; getModPath(mod: string): string; protected importMods(): Promise; protected sortMods(prev: string, next: string, missingFromOrderJSON: Record): number; diff --git a/TypeScript/19UseExternalLibraries/types/models/spt/config/IRepairConfig.d.ts b/TypeScript/19UseExternalLibraries/types/models/spt/config/IRepairConfig.d.ts index b6db332..e95afa3 100644 --- a/TypeScript/19UseExternalLibraries/types/models/spt/config/IRepairConfig.d.ts +++ b/TypeScript/19UseExternalLibraries/types/models/spt/config/IRepairConfig.d.ts @@ -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; diff --git a/TypeScript/19UseExternalLibraries/types/routers/EventOutputHolder.d.ts b/TypeScript/19UseExternalLibraries/types/routers/EventOutputHolder.d.ts index 1966741..ab780aa 100644 --- a/TypeScript/19UseExternalLibraries/types/routers/EventOutputHolder.d.ts +++ b/TypeScript/19UseExternalLibraries/types/routers/EventOutputHolder.d.ts @@ -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): Record; /** diff --git a/TypeScript/19UseExternalLibraries/types/services/ProfileFixerService.d.ts b/TypeScript/19UseExternalLibraries/types/services/ProfileFixerService.d.ts index bc1e42e..cd6a87a 100644 --- a/TypeScript/19UseExternalLibraries/types/services/ProfileFixerService.d.ts +++ b/TypeScript/19UseExternalLibraries/types/services/ProfileFixerService.d.ts @@ -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; } diff --git a/TypeScript/1LogToConsole/types/controllers/GameController.d.ts b/TypeScript/1LogToConsole/types/controllers/GameController.d.ts index b6903b7..73596ff 100644 --- a/TypeScript/1LogToConsole/types/controllers/GameController.d.ts +++ b/TypeScript/1LogToConsole/types/controllers/GameController.d.ts @@ -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; /** diff --git a/TypeScript/1LogToConsole/types/loaders/PreAkiModLoader.d.ts b/TypeScript/1LogToConsole/types/loaders/PreAkiModLoader.d.ts index a1664e1..1e24b96 100644 --- a/TypeScript/1LogToConsole/types/loaders/PreAkiModLoader.d.ts +++ b/TypeScript/1LogToConsole/types/loaders/PreAkiModLoader.d.ts @@ -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; + getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[]; getModPath(mod: string): string; protected importMods(): Promise; protected sortMods(prev: string, next: string, missingFromOrderJSON: Record): number; diff --git a/TypeScript/1LogToConsole/types/models/spt/config/IRepairConfig.d.ts b/TypeScript/1LogToConsole/types/models/spt/config/IRepairConfig.d.ts index b6db332..e95afa3 100644 --- a/TypeScript/1LogToConsole/types/models/spt/config/IRepairConfig.d.ts +++ b/TypeScript/1LogToConsole/types/models/spt/config/IRepairConfig.d.ts @@ -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; diff --git a/TypeScript/1LogToConsole/types/routers/EventOutputHolder.d.ts b/TypeScript/1LogToConsole/types/routers/EventOutputHolder.d.ts index 1966741..ab780aa 100644 --- a/TypeScript/1LogToConsole/types/routers/EventOutputHolder.d.ts +++ b/TypeScript/1LogToConsole/types/routers/EventOutputHolder.d.ts @@ -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): Record; /** diff --git a/TypeScript/1LogToConsole/types/services/ProfileFixerService.d.ts b/TypeScript/1LogToConsole/types/services/ProfileFixerService.d.ts index bc1e42e..cd6a87a 100644 --- a/TypeScript/1LogToConsole/types/services/ProfileFixerService.d.ts +++ b/TypeScript/1LogToConsole/types/services/ProfileFixerService.d.ts @@ -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; } diff --git a/TypeScript/2EditDatabase/types/controllers/GameController.d.ts b/TypeScript/2EditDatabase/types/controllers/GameController.d.ts index b6903b7..73596ff 100644 --- a/TypeScript/2EditDatabase/types/controllers/GameController.d.ts +++ b/TypeScript/2EditDatabase/types/controllers/GameController.d.ts @@ -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; /** diff --git a/TypeScript/2EditDatabase/types/loaders/PreAkiModLoader.d.ts b/TypeScript/2EditDatabase/types/loaders/PreAkiModLoader.d.ts index a1664e1..1e24b96 100644 --- a/TypeScript/2EditDatabase/types/loaders/PreAkiModLoader.d.ts +++ b/TypeScript/2EditDatabase/types/loaders/PreAkiModLoader.d.ts @@ -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; + getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[]; getModPath(mod: string): string; protected importMods(): Promise; protected sortMods(prev: string, next: string, missingFromOrderJSON: Record): number; diff --git a/TypeScript/2EditDatabase/types/models/spt/config/IRepairConfig.d.ts b/TypeScript/2EditDatabase/types/models/spt/config/IRepairConfig.d.ts index b6db332..e95afa3 100644 --- a/TypeScript/2EditDatabase/types/models/spt/config/IRepairConfig.d.ts +++ b/TypeScript/2EditDatabase/types/models/spt/config/IRepairConfig.d.ts @@ -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; diff --git a/TypeScript/2EditDatabase/types/routers/EventOutputHolder.d.ts b/TypeScript/2EditDatabase/types/routers/EventOutputHolder.d.ts index 1966741..ab780aa 100644 --- a/TypeScript/2EditDatabase/types/routers/EventOutputHolder.d.ts +++ b/TypeScript/2EditDatabase/types/routers/EventOutputHolder.d.ts @@ -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): Record; /** diff --git a/TypeScript/2EditDatabase/types/services/ProfileFixerService.d.ts b/TypeScript/2EditDatabase/types/services/ProfileFixerService.d.ts index bc1e42e..cd6a87a 100644 --- a/TypeScript/2EditDatabase/types/services/ProfileFixerService.d.ts +++ b/TypeScript/2EditDatabase/types/services/ProfileFixerService.d.ts @@ -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; } diff --git a/TypeScript/3GetSptConfigFile/types/controllers/GameController.d.ts b/TypeScript/3GetSptConfigFile/types/controllers/GameController.d.ts index b6903b7..73596ff 100644 --- a/TypeScript/3GetSptConfigFile/types/controllers/GameController.d.ts +++ b/TypeScript/3GetSptConfigFile/types/controllers/GameController.d.ts @@ -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; /** diff --git a/TypeScript/3GetSptConfigFile/types/loaders/PreAkiModLoader.d.ts b/TypeScript/3GetSptConfigFile/types/loaders/PreAkiModLoader.d.ts index a1664e1..1e24b96 100644 --- a/TypeScript/3GetSptConfigFile/types/loaders/PreAkiModLoader.d.ts +++ b/TypeScript/3GetSptConfigFile/types/loaders/PreAkiModLoader.d.ts @@ -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; + getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[]; getModPath(mod: string): string; protected importMods(): Promise; protected sortMods(prev: string, next: string, missingFromOrderJSON: Record): number; diff --git a/TypeScript/3GetSptConfigFile/types/models/spt/config/IRepairConfig.d.ts b/TypeScript/3GetSptConfigFile/types/models/spt/config/IRepairConfig.d.ts index b6db332..e95afa3 100644 --- a/TypeScript/3GetSptConfigFile/types/models/spt/config/IRepairConfig.d.ts +++ b/TypeScript/3GetSptConfigFile/types/models/spt/config/IRepairConfig.d.ts @@ -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; diff --git a/TypeScript/3GetSptConfigFile/types/routers/EventOutputHolder.d.ts b/TypeScript/3GetSptConfigFile/types/routers/EventOutputHolder.d.ts index 1966741..ab780aa 100644 --- a/TypeScript/3GetSptConfigFile/types/routers/EventOutputHolder.d.ts +++ b/TypeScript/3GetSptConfigFile/types/routers/EventOutputHolder.d.ts @@ -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): Record; /** diff --git a/TypeScript/3GetSptConfigFile/types/services/ProfileFixerService.d.ts b/TypeScript/3GetSptConfigFile/types/services/ProfileFixerService.d.ts index bc1e42e..cd6a87a 100644 --- a/TypeScript/3GetSptConfigFile/types/services/ProfileFixerService.d.ts +++ b/TypeScript/3GetSptConfigFile/types/services/ProfileFixerService.d.ts @@ -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; } diff --git a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/controllers/GameController.d.ts b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/controllers/GameController.d.ts index b6903b7..73596ff 100644 --- a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/controllers/GameController.d.ts +++ b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/controllers/GameController.d.ts @@ -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; /** diff --git a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/loaders/PreAkiModLoader.d.ts b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/loaders/PreAkiModLoader.d.ts index a1664e1..1e24b96 100644 --- a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/loaders/PreAkiModLoader.d.ts +++ b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/loaders/PreAkiModLoader.d.ts @@ -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; + getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[]; getModPath(mod: string): string; protected importMods(): Promise; protected sortMods(prev: string, next: string, missingFromOrderJSON: Record): number; diff --git a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/models/spt/config/IRepairConfig.d.ts b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/models/spt/config/IRepairConfig.d.ts index b6db332..e95afa3 100644 --- a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/models/spt/config/IRepairConfig.d.ts +++ b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/models/spt/config/IRepairConfig.d.ts @@ -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; diff --git a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/routers/EventOutputHolder.d.ts b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/routers/EventOutputHolder.d.ts index 1966741..ab780aa 100644 --- a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/routers/EventOutputHolder.d.ts +++ b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/routers/EventOutputHolder.d.ts @@ -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): Record; /** diff --git a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/services/ProfileFixerService.d.ts b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/services/ProfileFixerService.d.ts index bc1e42e..cd6a87a 100644 --- a/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/services/ProfileFixerService.d.ts +++ b/TypeScript/4.1UseACustomJson5OrJsonCConfigFile/types/services/ProfileFixerService.d.ts @@ -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; } diff --git a/TypeScript/4UseACustomConfigFile/types/controllers/GameController.d.ts b/TypeScript/4UseACustomConfigFile/types/controllers/GameController.d.ts index b6903b7..73596ff 100644 --- a/TypeScript/4UseACustomConfigFile/types/controllers/GameController.d.ts +++ b/TypeScript/4UseACustomConfigFile/types/controllers/GameController.d.ts @@ -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; /** diff --git a/TypeScript/4UseACustomConfigFile/types/loaders/PreAkiModLoader.d.ts b/TypeScript/4UseACustomConfigFile/types/loaders/PreAkiModLoader.d.ts index a1664e1..1e24b96 100644 --- a/TypeScript/4UseACustomConfigFile/types/loaders/PreAkiModLoader.d.ts +++ b/TypeScript/4UseACustomConfigFile/types/loaders/PreAkiModLoader.d.ts @@ -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; + getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[]; getModPath(mod: string): string; protected importMods(): Promise; protected sortMods(prev: string, next: string, missingFromOrderJSON: Record): number; diff --git a/TypeScript/4UseACustomConfigFile/types/models/spt/config/IRepairConfig.d.ts b/TypeScript/4UseACustomConfigFile/types/models/spt/config/IRepairConfig.d.ts index b6db332..e95afa3 100644 --- a/TypeScript/4UseACustomConfigFile/types/models/spt/config/IRepairConfig.d.ts +++ b/TypeScript/4UseACustomConfigFile/types/models/spt/config/IRepairConfig.d.ts @@ -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; diff --git a/TypeScript/4UseACustomConfigFile/types/routers/EventOutputHolder.d.ts b/TypeScript/4UseACustomConfigFile/types/routers/EventOutputHolder.d.ts index 1966741..ab780aa 100644 --- a/TypeScript/4UseACustomConfigFile/types/routers/EventOutputHolder.d.ts +++ b/TypeScript/4UseACustomConfigFile/types/routers/EventOutputHolder.d.ts @@ -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): Record; /** diff --git a/TypeScript/4UseACustomConfigFile/types/services/ProfileFixerService.d.ts b/TypeScript/4UseACustomConfigFile/types/services/ProfileFixerService.d.ts index bc1e42e..cd6a87a 100644 --- a/TypeScript/4UseACustomConfigFile/types/services/ProfileFixerService.d.ts +++ b/TypeScript/4UseACustomConfigFile/types/services/ProfileFixerService.d.ts @@ -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; } diff --git a/TypeScript/5ReplaceMethod/types/controllers/GameController.d.ts b/TypeScript/5ReplaceMethod/types/controllers/GameController.d.ts index b6903b7..73596ff 100644 --- a/TypeScript/5ReplaceMethod/types/controllers/GameController.d.ts +++ b/TypeScript/5ReplaceMethod/types/controllers/GameController.d.ts @@ -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; /** diff --git a/TypeScript/5ReplaceMethod/types/loaders/PreAkiModLoader.d.ts b/TypeScript/5ReplaceMethod/types/loaders/PreAkiModLoader.d.ts index a1664e1..1e24b96 100644 --- a/TypeScript/5ReplaceMethod/types/loaders/PreAkiModLoader.d.ts +++ b/TypeScript/5ReplaceMethod/types/loaders/PreAkiModLoader.d.ts @@ -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; + getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[]; getModPath(mod: string): string; protected importMods(): Promise; protected sortMods(prev: string, next: string, missingFromOrderJSON: Record): number; diff --git a/TypeScript/5ReplaceMethod/types/models/spt/config/IRepairConfig.d.ts b/TypeScript/5ReplaceMethod/types/models/spt/config/IRepairConfig.d.ts index b6db332..e95afa3 100644 --- a/TypeScript/5ReplaceMethod/types/models/spt/config/IRepairConfig.d.ts +++ b/TypeScript/5ReplaceMethod/types/models/spt/config/IRepairConfig.d.ts @@ -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; diff --git a/TypeScript/5ReplaceMethod/types/routers/EventOutputHolder.d.ts b/TypeScript/5ReplaceMethod/types/routers/EventOutputHolder.d.ts index 1966741..ab780aa 100644 --- a/TypeScript/5ReplaceMethod/types/routers/EventOutputHolder.d.ts +++ b/TypeScript/5ReplaceMethod/types/routers/EventOutputHolder.d.ts @@ -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): Record; /** diff --git a/TypeScript/5ReplaceMethod/types/services/ProfileFixerService.d.ts b/TypeScript/5ReplaceMethod/types/services/ProfileFixerService.d.ts index bc1e42e..cd6a87a 100644 --- a/TypeScript/5ReplaceMethod/types/services/ProfileFixerService.d.ts +++ b/TypeScript/5ReplaceMethod/types/services/ProfileFixerService.d.ts @@ -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; } diff --git a/TypeScript/6ReferenceAnotherClass/types/controllers/GameController.d.ts b/TypeScript/6ReferenceAnotherClass/types/controllers/GameController.d.ts index b6903b7..73596ff 100644 --- a/TypeScript/6ReferenceAnotherClass/types/controllers/GameController.d.ts +++ b/TypeScript/6ReferenceAnotherClass/types/controllers/GameController.d.ts @@ -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; /** diff --git a/TypeScript/6ReferenceAnotherClass/types/loaders/PreAkiModLoader.d.ts b/TypeScript/6ReferenceAnotherClass/types/loaders/PreAkiModLoader.d.ts index a1664e1..1e24b96 100644 --- a/TypeScript/6ReferenceAnotherClass/types/loaders/PreAkiModLoader.d.ts +++ b/TypeScript/6ReferenceAnotherClass/types/loaders/PreAkiModLoader.d.ts @@ -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; + getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[]; getModPath(mod: string): string; protected importMods(): Promise; protected sortMods(prev: string, next: string, missingFromOrderJSON: Record): number; diff --git a/TypeScript/6ReferenceAnotherClass/types/models/spt/config/IRepairConfig.d.ts b/TypeScript/6ReferenceAnotherClass/types/models/spt/config/IRepairConfig.d.ts index b6db332..e95afa3 100644 --- a/TypeScript/6ReferenceAnotherClass/types/models/spt/config/IRepairConfig.d.ts +++ b/TypeScript/6ReferenceAnotherClass/types/models/spt/config/IRepairConfig.d.ts @@ -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; diff --git a/TypeScript/6ReferenceAnotherClass/types/routers/EventOutputHolder.d.ts b/TypeScript/6ReferenceAnotherClass/types/routers/EventOutputHolder.d.ts index 1966741..ab780aa 100644 --- a/TypeScript/6ReferenceAnotherClass/types/routers/EventOutputHolder.d.ts +++ b/TypeScript/6ReferenceAnotherClass/types/routers/EventOutputHolder.d.ts @@ -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): Record; /** diff --git a/TypeScript/6ReferenceAnotherClass/types/services/ProfileFixerService.d.ts b/TypeScript/6ReferenceAnotherClass/types/services/ProfileFixerService.d.ts index bc1e42e..cd6a87a 100644 --- a/TypeScript/6ReferenceAnotherClass/types/services/ProfileFixerService.d.ts +++ b/TypeScript/6ReferenceAnotherClass/types/services/ProfileFixerService.d.ts @@ -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; } diff --git a/TypeScript/7OnLoadHook/types/controllers/GameController.d.ts b/TypeScript/7OnLoadHook/types/controllers/GameController.d.ts index b6903b7..73596ff 100644 --- a/TypeScript/7OnLoadHook/types/controllers/GameController.d.ts +++ b/TypeScript/7OnLoadHook/types/controllers/GameController.d.ts @@ -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; /** diff --git a/TypeScript/7OnLoadHook/types/loaders/PreAkiModLoader.d.ts b/TypeScript/7OnLoadHook/types/loaders/PreAkiModLoader.d.ts index a1664e1..1e24b96 100644 --- a/TypeScript/7OnLoadHook/types/loaders/PreAkiModLoader.d.ts +++ b/TypeScript/7OnLoadHook/types/loaders/PreAkiModLoader.d.ts @@ -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; + getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[]; getModPath(mod: string): string; protected importMods(): Promise; protected sortMods(prev: string, next: string, missingFromOrderJSON: Record): number; diff --git a/TypeScript/7OnLoadHook/types/models/spt/config/IRepairConfig.d.ts b/TypeScript/7OnLoadHook/types/models/spt/config/IRepairConfig.d.ts index b6db332..e95afa3 100644 --- a/TypeScript/7OnLoadHook/types/models/spt/config/IRepairConfig.d.ts +++ b/TypeScript/7OnLoadHook/types/models/spt/config/IRepairConfig.d.ts @@ -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; diff --git a/TypeScript/7OnLoadHook/types/routers/EventOutputHolder.d.ts b/TypeScript/7OnLoadHook/types/routers/EventOutputHolder.d.ts index 1966741..ab780aa 100644 --- a/TypeScript/7OnLoadHook/types/routers/EventOutputHolder.d.ts +++ b/TypeScript/7OnLoadHook/types/routers/EventOutputHolder.d.ts @@ -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): Record; /** diff --git a/TypeScript/7OnLoadHook/types/services/ProfileFixerService.d.ts b/TypeScript/7OnLoadHook/types/services/ProfileFixerService.d.ts index bc1e42e..cd6a87a 100644 --- a/TypeScript/7OnLoadHook/types/services/ProfileFixerService.d.ts +++ b/TypeScript/7OnLoadHook/types/services/ProfileFixerService.d.ts @@ -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; } diff --git a/TypeScript/8OnUpdateHook/types/controllers/GameController.d.ts b/TypeScript/8OnUpdateHook/types/controllers/GameController.d.ts index b6903b7..73596ff 100644 --- a/TypeScript/8OnUpdateHook/types/controllers/GameController.d.ts +++ b/TypeScript/8OnUpdateHook/types/controllers/GameController.d.ts @@ -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; /** diff --git a/TypeScript/8OnUpdateHook/types/loaders/PreAkiModLoader.d.ts b/TypeScript/8OnUpdateHook/types/loaders/PreAkiModLoader.d.ts index a1664e1..1e24b96 100644 --- a/TypeScript/8OnUpdateHook/types/loaders/PreAkiModLoader.d.ts +++ b/TypeScript/8OnUpdateHook/types/loaders/PreAkiModLoader.d.ts @@ -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; + getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[]; getModPath(mod: string): string; protected importMods(): Promise; protected sortMods(prev: string, next: string, missingFromOrderJSON: Record): number; diff --git a/TypeScript/8OnUpdateHook/types/models/spt/config/IRepairConfig.d.ts b/TypeScript/8OnUpdateHook/types/models/spt/config/IRepairConfig.d.ts index b6db332..e95afa3 100644 --- a/TypeScript/8OnUpdateHook/types/models/spt/config/IRepairConfig.d.ts +++ b/TypeScript/8OnUpdateHook/types/models/spt/config/IRepairConfig.d.ts @@ -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; diff --git a/TypeScript/8OnUpdateHook/types/routers/EventOutputHolder.d.ts b/TypeScript/8OnUpdateHook/types/routers/EventOutputHolder.d.ts index 1966741..ab780aa 100644 --- a/TypeScript/8OnUpdateHook/types/routers/EventOutputHolder.d.ts +++ b/TypeScript/8OnUpdateHook/types/routers/EventOutputHolder.d.ts @@ -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): Record; /** diff --git a/TypeScript/8OnUpdateHook/types/services/ProfileFixerService.d.ts b/TypeScript/8OnUpdateHook/types/services/ProfileFixerService.d.ts index bc1e42e..cd6a87a 100644 --- a/TypeScript/8OnUpdateHook/types/services/ProfileFixerService.d.ts +++ b/TypeScript/8OnUpdateHook/types/services/ProfileFixerService.d.ts @@ -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; } diff --git a/TypeScript/9RouterHooks/types/controllers/GameController.d.ts b/TypeScript/9RouterHooks/types/controllers/GameController.d.ts index b6903b7..73596ff 100644 --- a/TypeScript/9RouterHooks/types/controllers/GameController.d.ts +++ b/TypeScript/9RouterHooks/types/controllers/GameController.d.ts @@ -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; /** diff --git a/TypeScript/9RouterHooks/types/loaders/PreAkiModLoader.d.ts b/TypeScript/9RouterHooks/types/loaders/PreAkiModLoader.d.ts index a1664e1..1e24b96 100644 --- a/TypeScript/9RouterHooks/types/loaders/PreAkiModLoader.d.ts +++ b/TypeScript/9RouterHooks/types/loaders/PreAkiModLoader.d.ts @@ -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; + getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[]; getModPath(mod: string): string; protected importMods(): Promise; protected sortMods(prev: string, next: string, missingFromOrderJSON: Record): number; diff --git a/TypeScript/9RouterHooks/types/models/spt/config/IRepairConfig.d.ts b/TypeScript/9RouterHooks/types/models/spt/config/IRepairConfig.d.ts index b6db332..e95afa3 100644 --- a/TypeScript/9RouterHooks/types/models/spt/config/IRepairConfig.d.ts +++ b/TypeScript/9RouterHooks/types/models/spt/config/IRepairConfig.d.ts @@ -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; diff --git a/TypeScript/9RouterHooks/types/routers/EventOutputHolder.d.ts b/TypeScript/9RouterHooks/types/routers/EventOutputHolder.d.ts index 1966741..ab780aa 100644 --- a/TypeScript/9RouterHooks/types/routers/EventOutputHolder.d.ts +++ b/TypeScript/9RouterHooks/types/routers/EventOutputHolder.d.ts @@ -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): Record; /** diff --git a/TypeScript/9RouterHooks/types/services/ProfileFixerService.d.ts b/TypeScript/9RouterHooks/types/services/ProfileFixerService.d.ts index bc1e42e..cd6a87a 100644 --- a/TypeScript/9RouterHooks/types/services/ProfileFixerService.d.ts +++ b/TypeScript/9RouterHooks/types/services/ProfileFixerService.d.ts @@ -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; }