diff --git a/Faupi-HideoutArchitect/Built/Faupi-HideoutArchitect 1.7.0/bepInEx/plugins/Faupi-HideoutArchitect.dll b/Faupi-HideoutArchitect/Built/Faupi-HideoutArchitect 1.7.1/bepInEx/plugins/Faupi-HideoutArchitect.dll similarity index 91% rename from Faupi-HideoutArchitect/Built/Faupi-HideoutArchitect 1.7.0/bepInEx/plugins/Faupi-HideoutArchitect.dll rename to Faupi-HideoutArchitect/Built/Faupi-HideoutArchitect 1.7.1/bepInEx/plugins/Faupi-HideoutArchitect.dll index 283d091..efa171d 100644 Binary files a/Faupi-HideoutArchitect/Built/Faupi-HideoutArchitect 1.7.0/bepInEx/plugins/Faupi-HideoutArchitect.dll and b/Faupi-HideoutArchitect/Built/Faupi-HideoutArchitect 1.7.1/bepInEx/plugins/Faupi-HideoutArchitect.dll differ diff --git a/Faupi-HideoutArchitect/Built/Faupi-HideoutArchitect 1.7.0/user/mods/HideoutArchitect/LICENSE b/Faupi-HideoutArchitect/Built/Faupi-HideoutArchitect 1.7.1/user/mods/HideoutArchitect/LICENSE similarity index 100% rename from Faupi-HideoutArchitect/Built/Faupi-HideoutArchitect 1.7.0/user/mods/HideoutArchitect/LICENSE rename to Faupi-HideoutArchitect/Built/Faupi-HideoutArchitect 1.7.1/user/mods/HideoutArchitect/LICENSE diff --git a/Faupi-HideoutArchitect/Built/Faupi-HideoutArchitect 1.7.0/user/mods/HideoutArchitect/config.jsonc b/Faupi-HideoutArchitect/Built/Faupi-HideoutArchitect 1.7.1/user/mods/HideoutArchitect/config.jsonc similarity index 100% rename from Faupi-HideoutArchitect/Built/Faupi-HideoutArchitect 1.7.0/user/mods/HideoutArchitect/config.jsonc rename to Faupi-HideoutArchitect/Built/Faupi-HideoutArchitect 1.7.1/user/mods/HideoutArchitect/config.jsonc diff --git a/Faupi-HideoutArchitect/Built/Faupi-HideoutArchitect 1.7.0/user/mods/HideoutArchitect/package.json b/Faupi-HideoutArchitect/Built/Faupi-HideoutArchitect 1.7.1/user/mods/HideoutArchitect/package.json similarity index 92% rename from Faupi-HideoutArchitect/Built/Faupi-HideoutArchitect 1.7.0/user/mods/HideoutArchitect/package.json rename to Faupi-HideoutArchitect/Built/Faupi-HideoutArchitect 1.7.1/user/mods/HideoutArchitect/package.json index 92d07bf..e0b6dc3 100644 --- a/Faupi-HideoutArchitect/Built/Faupi-HideoutArchitect 1.7.0/user/mods/HideoutArchitect/package.json +++ b/Faupi-HideoutArchitect/Built/Faupi-HideoutArchitect 1.7.1/user/mods/HideoutArchitect/package.json @@ -1,10 +1,10 @@ { "name": "HideoutArchitect", - "version": "1.7.0", + "version": "1.7.1", "main": "./src/hideoutarchitect.js", "license": "NCSA Open Source", "author": "Faupi", - "akiVersion": "3.5.0", + "akiVersion": "3.5.2", "updated by": "CWX", "scripts": { "setup": "npm i", diff --git a/Faupi-HideoutArchitect/Built/Faupi-HideoutArchitect 1.7.0/user/mods/HideoutArchitect/res/icon_neededforhideout_small.png b/Faupi-HideoutArchitect/Built/Faupi-HideoutArchitect 1.7.1/user/mods/HideoutArchitect/res/icon_neededforhideout_small.png similarity index 100% rename from Faupi-HideoutArchitect/Built/Faupi-HideoutArchitect 1.7.0/user/mods/HideoutArchitect/res/icon_neededforhideout_small.png rename to Faupi-HideoutArchitect/Built/Faupi-HideoutArchitect 1.7.1/user/mods/HideoutArchitect/res/icon_neededforhideout_small.png diff --git a/Faupi-HideoutArchitect/Built/Faupi-HideoutArchitect 1.7.0/user/mods/HideoutArchitect/res/translations.json b/Faupi-HideoutArchitect/Built/Faupi-HideoutArchitect 1.7.1/user/mods/HideoutArchitect/res/translations.json similarity index 100% rename from Faupi-HideoutArchitect/Built/Faupi-HideoutArchitect 1.7.0/user/mods/HideoutArchitect/res/translations.json rename to Faupi-HideoutArchitect/Built/Faupi-HideoutArchitect 1.7.1/user/mods/HideoutArchitect/res/translations.json diff --git a/Faupi-HideoutArchitect/Built/Faupi-HideoutArchitect 1.7.0/user/mods/HideoutArchitect/src/hideoutarchitect.ts b/Faupi-HideoutArchitect/Built/Faupi-HideoutArchitect 1.7.1/user/mods/HideoutArchitect/src/hideoutarchitect.ts similarity index 100% rename from Faupi-HideoutArchitect/Built/Faupi-HideoutArchitect 1.7.0/user/mods/HideoutArchitect/src/hideoutarchitect.ts rename to Faupi-HideoutArchitect/Built/Faupi-HideoutArchitect 1.7.1/user/mods/HideoutArchitect/src/hideoutarchitect.ts diff --git a/Faupi-HideoutArchitect/HideoutArchitect/HideoutArchitect.sln.DotSettings.user b/Faupi-HideoutArchitect/HideoutArchitect/HideoutArchitect.sln.DotSettings.user new file mode 100644 index 0000000..f7731a0 --- /dev/null +++ b/Faupi-HideoutArchitect/HideoutArchitect/HideoutArchitect.sln.DotSettings.user @@ -0,0 +1,15 @@ + + True + True + True + True + True + True + True + True + True + True + True + True + True + True \ No newline at end of file diff --git a/Faupi-HideoutArchitect/HideoutArchitect/HideoutArchitect/HideoutArchitect.csproj b/Faupi-HideoutArchitect/HideoutArchitect/HideoutArchitect/HideoutArchitect.csproj index 954da9d..169202d 100644 --- a/Faupi-HideoutArchitect/HideoutArchitect/HideoutArchitect/HideoutArchitect.csproj +++ b/Faupi-HideoutArchitect/HideoutArchitect/HideoutArchitect/HideoutArchitect.csproj @@ -7,46 +7,46 @@ - ..\..\..\Shared\AKI\Aki.Common.dll + ..\..\..\..\Shared\Aki.Common.dll - ..\..\..\Shared\AKI\Aki.Reflection.dll + ..\..\..\..\Shared\Aki.Reflection.dll - ..\..\..\Shared\EFT\Assembly-CSharp.dll + ..\..\..\..\Shared\Assembly-CSharp.dll - ..\..\..\Shared\BepInEx\BepInEx.dll + ..\..\..\..\Shared\BepInEx.dll - ..\..\..\Shared\EFT\Comfort.dll + ..\..\..\..\Shared\Comfort.dll - ..\..\..\Shared\EFT\Newtonsoft.Json.dll + ..\..\..\..\Shared\Newtonsoft.Json.dll - ..\..\..\Shared\EFT\Sirenix.Serialization.dll + ..\..\..\..\Shared\Sirenix.Serialization.dll - ..\..\..\Shared\EFT\Unity.TextMeshPro.dll + ..\..\..\..\Shared\Unity.TextMeshPro.dll - ..\..\..\Shared\EFT\UnityEngine.dll + ..\..\..\..\Shared\UnityEngine.dll - ..\..\..\Shared\EFT\UnityEngine.CoreModule.dll + ..\..\..\..\Shared\UnityEngine.CoreModule.dll - ..\..\..\Shared\EFT\UnityEngine.UI.dll + ..\..\..\..\Shared\UnityEngine.UI.dll - ..\..\..\Shared\EFT\UnityEngine.UnityWebRequestModule.dll + ..\..\..\..\Shared\UnityEngine.UnityWebRequestModule.dll - ..\..\..\Shared\EFT\UnityEngine.UnityWebRequestTextureModule.dll + ..\..\..\..\Shared\UnityEngine.UnityWebRequestTextureModule.dll - ..\..\..\Shared\EFT\UnityEngine.UnityWebRequestWWWModule.dll + ..\..\..\..\Shared\UnityEngine.UnityWebRequestWWWModule.dll diff --git a/Faupi-HideoutArchitect/HideoutArchitect/HideoutArchitect/Program.cs b/Faupi-HideoutArchitect/HideoutArchitect/HideoutArchitect/Program.cs index 9b8683a..e3f382a 100644 --- a/Faupi-HideoutArchitect/HideoutArchitect/HideoutArchitect/Program.cs +++ b/Faupi-HideoutArchitect/HideoutArchitect/HideoutArchitect/Program.cs @@ -10,7 +10,7 @@ using UnityEngine; namespace HideoutArchitect { - [BepInPlugin("com.FAUPI.HideoutArchitect", "FAUPI-HideoutArchitect", "1.7.0")] + [BepInPlugin("com.FAUPI.HideoutArchitect", "FAUPI-HideoutArchitect", "1.7.1")] public class HideoutArchitect : BaseUnityPlugin { private void Awake() diff --git a/Faupi-HideoutArchitect/server/dist/package.json b/Faupi-HideoutArchitect/server/dist/package.json index 92d07bf..e0b6dc3 100644 --- a/Faupi-HideoutArchitect/server/dist/package.json +++ b/Faupi-HideoutArchitect/server/dist/package.json @@ -1,10 +1,10 @@ { "name": "HideoutArchitect", - "version": "1.7.0", + "version": "1.7.1", "main": "./src/hideoutarchitect.js", "license": "NCSA Open Source", "author": "Faupi", - "akiVersion": "3.5.0", + "akiVersion": "3.5.2", "updated by": "CWX", "scripts": { "setup": "npm i", diff --git a/Faupi-HideoutArchitect/server/package.json b/Faupi-HideoutArchitect/server/package.json index 92d07bf..e0b6dc3 100644 --- a/Faupi-HideoutArchitect/server/package.json +++ b/Faupi-HideoutArchitect/server/package.json @@ -1,10 +1,10 @@ { "name": "HideoutArchitect", - "version": "1.7.0", + "version": "1.7.1", "main": "./src/hideoutarchitect.js", "license": "NCSA Open Source", "author": "Faupi", - "akiVersion": "3.5.0", + "akiVersion": "3.5.2", "updated by": "CWX", "scripts": { "setup": "npm i", diff --git a/Faupi-HideoutArchitect/server/types/callbacks/GameCallbacks.d.ts b/Faupi-HideoutArchitect/server/types/callbacks/GameCallbacks.d.ts index 3a6b7e6..30cf074 100644 --- a/Faupi-HideoutArchitect/server/types/callbacks/GameCallbacks.d.ts +++ b/Faupi-HideoutArchitect/server/types/callbacks/GameCallbacks.d.ts @@ -39,6 +39,7 @@ declare class GameCallbacks { */ getGameConfig(url: string, info: IGameEmptyCrcRequestData, sessionID: string): IGetBodyResponseData; getServer(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getCurrentGroup(url: string, info: IEmptyRequestData, sessionID: string): any; validateGameVersion(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; /** * Handle client/game/keepalive diff --git a/Faupi-HideoutArchitect/server/types/callbacks/ProfileCallbacks.d.ts b/Faupi-HideoutArchitect/server/types/callbacks/ProfileCallbacks.d.ts index 183bb0a..9a5848e 100644 --- a/Faupi-HideoutArchitect/server/types/callbacks/ProfileCallbacks.d.ts +++ b/Faupi-HideoutArchitect/server/types/callbacks/ProfileCallbacks.d.ts @@ -5,6 +5,7 @@ import { IGetBodyResponseData } from "../models/eft/httpResponse/IGetBodyRespons import { INullResponseData } from "../models/eft/httpResponse/INullResponseData"; import { IGetMiniProfileRequestData } from "../models/eft/launcher/IGetMiniProfileRequestData"; import { GetProfileStatusResponseData } from "../models/eft/profile/GetProfileStatusResponseData"; +import { IGetProfileSettingsRequest } from "../models/eft/profile/IGetProfileSettingsRequest"; import { IProfileChangeNicknameRequestData } from "../models/eft/profile/IProfileChangeNicknameRequestData"; import { IProfileChangeVoiceRequestData } from "../models/eft/profile/IProfileChangeVoiceRequestData"; import { IProfileCreateRequestData } from "../models/eft/profile/IProfileCreateRequestData"; @@ -64,6 +65,7 @@ export declare class ProfileCallbacks { * @returns */ getProfileStatus(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getProfileSettings(url: string, info: IGetProfileSettingsRequest, sessionId: string): IGetBodyResponseData; searchFriend(url: string, info: ISearchFriendRequestData, sessionID: string): IGetBodyResponseData; getMiniProfile(url: string, info: IGetMiniProfileRequestData, sessionID: string): string; getAllMiniProfiles(url: string, info: any, sessionID: string): string; diff --git a/Faupi-HideoutArchitect/server/types/callbacks/TraderCallbacks.d.ts b/Faupi-HideoutArchitect/server/types/callbacks/TraderCallbacks.d.ts index 8df1049..1e75add 100644 --- a/Faupi-HideoutArchitect/server/types/callbacks/TraderCallbacks.d.ts +++ b/Faupi-HideoutArchitect/server/types/callbacks/TraderCallbacks.d.ts @@ -2,7 +2,7 @@ import { OnLoad } from "../di/OnLoad"; import { OnUpdate } from "../di/OnUpdate"; import { TraderController } from "../controllers/TraderController"; import { IEmptyRequestData } from "../models/eft/common/IEmptyRequestData"; -import { IBarterScheme, ITraderAssort, ITraderBase } from "../models/eft/common/tables/ITrader"; +import { ITraderAssort, ITraderBase } from "../models/eft/common/tables/ITrader"; import { IGetBodyResponseData } from "../models/eft/httpResponse/IGetBodyResponseData"; import { HttpResponseUtil } from "../utils/HttpResponseUtil"; export declare class TraderCallbacks implements OnLoad, OnUpdate { @@ -13,11 +13,6 @@ export declare class TraderCallbacks implements OnLoad, OnUpdate { onUpdate(): Promise; getRoute(): string; getTraderSettings(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; - /** - * Handle client/trading/api/getUserAssortPrice/trader - * @returns - */ - getProfilePurchases(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData>; getTrader(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; getAssort(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; } diff --git a/Faupi-HideoutArchitect/server/types/context/ApplicationContext.d.ts b/Faupi-HideoutArchitect/server/types/context/ApplicationContext.d.ts index 28bbdf7..0a81be0 100644 --- a/Faupi-HideoutArchitect/server/types/context/ApplicationContext.d.ts +++ b/Faupi-HideoutArchitect/server/types/context/ApplicationContext.d.ts @@ -8,6 +8,8 @@ export declare class ApplicationContext { * * const registerPlayerInfo = this.applicationContext.getLatestValue(ContextVariableType.REGISTER_PLAYER_REQUEST).getValue(); * + * const activePlayerSessionId = this.applicationContext.getLatestValue(ContextVariableType.SESSION_ID).getValue(); + * * const matchInfo = this.applicationContext.getLatestValue(ContextVariableType.MATCH_INFO).getValue(); * @param type * @returns diff --git a/Faupi-HideoutArchitect/server/types/controllers/GameController.d.ts b/Faupi-HideoutArchitect/server/types/controllers/GameController.d.ts index 44264dc..e47d5fa 100644 --- a/Faupi-HideoutArchitect/server/types/controllers/GameController.d.ts +++ b/Faupi-HideoutArchitect/server/types/controllers/GameController.d.ts @@ -20,10 +20,12 @@ import { LocalisationService } from "../services/LocalisationService"; import { OpenZoneService } from "../services/OpenZoneService"; import { ProfileFixerService } from "../services/ProfileFixerService"; import { SeasonalEventService } from "../services/SeasonalEventService"; +import { JsonUtil } from "../utils/JsonUtil"; import { TimeUtil } from "../utils/TimeUtil"; export declare class GameController { protected logger: ILogger; protected databaseServer: DatabaseServer; + protected jsonUtil: JsonUtil; protected timeUtil: TimeUtil; protected preAkiModLoader: PreAkiModLoader; protected httpServerHelper: HttpServerHelper; @@ -39,7 +41,7 @@ export declare class GameController { protected httpConfig: IHttpConfig; protected coreConfig: ICoreConfig; protected locationConfig: ILocationConfig; - constructor(logger: ILogger, databaseServer: DatabaseServer, timeUtil: TimeUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, applicationContext: ApplicationContext, configServer: ConfigServer); + constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, applicationContext: ApplicationContext, configServer: ConfigServer); gameStart(_url: string, _info: IEmptyRequestData, sessionID: string, startTimeStampMS: number): void; /** * When player logs in, iterate over all active effects and reduce timer @@ -55,6 +57,10 @@ export declare class GameController { * Make Rogues spawn later to allow for scavs to spawn first instead of rogues filling up all spawn positions */ protected fixRoguesSpawningInstantlyOnLighthouse(): void; + /** + * Find and split waves with large numbers of bots into smaller waves - BSG appears to reduce the size of these waves to one bot when they're waiting to spawn for too long + */ + protected splitBotWavesIntoSingleWaves(): void; /** * Get a list of installed mods and save their details to the profile being used * @param fullProfile Profile to add mod details to @@ -76,5 +82,6 @@ export declare class GameController { protected logProfileDetails(fullProfile: IAkiProfile): void; getGameConfig(sessionID: string): IGameConfigResponse; getServer(): IServerDetails[]; + getCurrentGroup(sessionId: any): any; getValidGameVersion(): ICheckVersionResponse; } diff --git a/Faupi-HideoutArchitect/server/types/controllers/InraidController.d.ts b/Faupi-HideoutArchitect/server/types/controllers/InraidController.d.ts index f954eff..4b0c21b 100644 --- a/Faupi-HideoutArchitect/server/types/controllers/InraidController.d.ts +++ b/Faupi-HideoutArchitect/server/types/controllers/InraidController.d.ts @@ -61,18 +61,18 @@ export declare class InraidController { */ protected savePmcProgress(sessionID: string, offraidData: ISaveProgressRequestData): void; /** - * Make changes to pmc profile after they left raid dead, - * alter bodypart hp, handle insurance, delete inventory items, remove carried quest items - * @param postRaidSaveRequest post-raid save request - * @param pmcData pmc profile - * @param insuranceEnabled is insurance enabled - * @param preRaidGear gear player had before raid + * Make changes to pmc profile after they've died in raid, + * Alter bodypart hp, handle insurance, delete inventory items, remove carried quest items + * @param postRaidSaveRequest Post-raid save request + * @param pmcData Pmc profile + * @param insuranceEnabled Is insurance enabled + * @param preRaidGear Gear player had before raid * @param sessionID Session id * @returns Updated profile object */ protected performPostRaidActionsWhenDead(postRaidSaveRequest: ISaveProgressRequestData, pmcData: IPmcData, insuranceEnabled: boolean, preRaidGear: Item[], sessionID: string): IPmcData; /** - * Adjust player characters bodypart hp if they left raid early + * Adjust player characters bodypart hp post-raid * @param postRaidSaveRequest post raid data * @param pmcData player profile */ diff --git a/Faupi-HideoutArchitect/server/types/controllers/InventoryController.d.ts b/Faupi-HideoutArchitect/server/types/controllers/InventoryController.d.ts index 129ede3..53bb017 100644 --- a/Faupi-HideoutArchitect/server/types/controllers/InventoryController.d.ts +++ b/Faupi-HideoutArchitect/server/types/controllers/InventoryController.d.ts @@ -112,7 +112,14 @@ export declare class InventoryController { * @returns client response object */ tagItem(pmcData: IPmcData, body: IInventoryTagRequestData, sessionID: string): IItemEventRouterResponse; - bindItem(pmcData: IPmcData, body: IInventoryBindRequestData, sessionID: string): IItemEventRouterResponse; + /** + * Bind an inventory item to the quick access menu at bottom of player screen + * @param pmcData Player profile + * @param bindRequest Reqeust object + * @param sessionID Session id + * @returns IItemEventRouterResponse + */ + bindItem(pmcData: IPmcData, bindRequest: IInventoryBindRequestData, sessionID: string): IItemEventRouterResponse; /** * Handles examining an item * @param pmcData player profile @@ -137,9 +144,36 @@ export declare class InventoryController { * @returns IItemEventRouterResponse */ sortInventory(pmcData: IPmcData, request: IInventorySortRequestData, sessionID: string): IItemEventRouterResponse; - createMapMarker(pmcData: IPmcData, body: IInventoryCreateMarkerRequestData, sessionID: string): IItemEventRouterResponse; - deleteMapMarker(pmcData: IPmcData, body: IInventoryDeleteMarkerRequestData, sessionID: string): IItemEventRouterResponse; - editMapMarker(pmcData: IPmcData, body: IInventoryEditMarkerRequestData, sessionID: string): IItemEventRouterResponse; + /** + * Add note to a map + * @param pmcData Player profile + * @param request Add marker request + * @param sessionID Session id + * @returns IItemEventRouterResponse + */ + createMapMarker(pmcData: IPmcData, request: IInventoryCreateMarkerRequestData, sessionID: string): IItemEventRouterResponse; + /** + * Delete a map marker + * @param pmcData Player profile + * @param request Delete marker request + * @param sessionID Session id + * @returns IItemEventRouterResponse + */ + deleteMapMarker(pmcData: IPmcData, request: IInventoryDeleteMarkerRequestData, sessionID: string): IItemEventRouterResponse; + /** + * Edit an existing map marker + * @param pmcData Player profile + * @param request Edit marker request + * @param sessionID Session id + * @returns IItemEventRouterResponse + */ + editMapMarker(pmcData: IPmcData, request: IInventoryEditMarkerRequestData, sessionID: string): IItemEventRouterResponse; + /** + * Strip out characters from note string that are not: letter/numbers/unicode/spaces + * @param mapNoteText Marker text to sanitise + * @returns Sanitised map marker text + */ + protected sanitiseMapMarkerText(mapNoteText: string): string; /** * Handle event fired when a container is unpacked (currently only the halloween pumpkin) * @param pmcData Profile data diff --git a/Faupi-HideoutArchitect/server/types/controllers/ProfileController.d.ts b/Faupi-HideoutArchitect/server/types/controllers/ProfileController.d.ts index e76785a..9496013 100644 --- a/Faupi-HideoutArchitect/server/types/controllers/ProfileController.d.ts +++ b/Faupi-HideoutArchitect/server/types/controllers/ProfileController.d.ts @@ -1,4 +1,5 @@ import { PlayerScavGenerator } from "../generators/PlayerScavGenerator"; +import { DialogueHelper } from "../helpers/DialogueHelper"; import { ItemHelper } from "../helpers/ItemHelper"; import { ProfileHelper } from "../helpers/ProfileHelper"; import { QuestHelper } from "../helpers/QuestHelper"; @@ -11,6 +12,7 @@ import { IProfileCreateRequestData } from "../models/eft/profile/IProfileCreateR import { ISearchFriendRequestData } from "../models/eft/profile/ISearchFriendRequestData"; import { ISearchFriendResponse } from "../models/eft/profile/ISearchFriendResponse"; import { IValidateNicknameRequestData } from "../models/eft/profile/IValidateNicknameRequestData"; +import { EventOutputHolder } from "../routers/EventOutputHolder"; import { DatabaseServer } from "../servers/DatabaseServer"; import { SaveServer } from "../servers/SaveServer"; import { ProfileFixerService } from "../services/ProfileFixerService"; @@ -24,10 +26,12 @@ export declare class ProfileController { protected itemHelper: ItemHelper; protected profileFixerService: ProfileFixerService; protected playerScavGenerator: PlayerScavGenerator; + protected eventOutputHolder: EventOutputHolder; protected traderHelper: TraderHelper; + protected dialogueHelper: DialogueHelper; protected questHelper: QuestHelper; protected profileHelper: ProfileHelper; - constructor(hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, databaseServer: DatabaseServer, itemHelper: ItemHelper, profileFixerService: ProfileFixerService, playerScavGenerator: PlayerScavGenerator, traderHelper: TraderHelper, questHelper: QuestHelper, profileHelper: ProfileHelper); + constructor(hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, databaseServer: DatabaseServer, itemHelper: ItemHelper, profileFixerService: ProfileFixerService, playerScavGenerator: PlayerScavGenerator, eventOutputHolder: EventOutputHolder, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, questHelper: QuestHelper, profileHelper: ProfileHelper); getMiniProfiles(): IMiniProfile[]; getMiniProfile(sessionID: string): any; getCompleteProfile(sessionID: string): IPmcData[]; diff --git a/Faupi-HideoutArchitect/server/types/controllers/QuestController.d.ts b/Faupi-HideoutArchitect/server/types/controllers/QuestController.d.ts index fe1754d..7e4bd69 100644 --- a/Faupi-HideoutArchitect/server/types/controllers/QuestController.d.ts +++ b/Faupi-HideoutArchitect/server/types/controllers/QuestController.d.ts @@ -60,13 +60,6 @@ export declare class QuestController { * @returns client response */ acceptQuest(pmcData: IPmcData, acceptedQuest: IAcceptQuestRequestData, sessionID: string): IItemEventRouterResponse; - /** - * Get a quests startedMessageText key from db, if no startedMessageText key found, use description key instead - * @param startedMessageTextId startedMessageText property from IQuest - * @param questDescriptionId description property from IQuest - * @returns message id - */ - protected getMessageIdForQuestStart(startedMessageTextId: string, questDescriptionId: string): string; /** * Handle the client accepting a repeatable quest and starting it * Send starting rewards if any to player and @@ -123,7 +116,14 @@ export declare class QuestController { * @param questsToFail quests to fail */ protected failQuests(sessionID: string, pmcData: IPmcData, questsToFail: IQuest[]): void; - handoverQuest(pmcData: IPmcData, body: IHandoverQuestRequestData, sessionID: string): IItemEventRouterResponse; + /** + * + * @param pmcData Player profile + * @param handoverQuestRequest handover item request + * @param sessionID Session id + * @returns IItemEventRouterResponse + */ + handoverQuest(pmcData: IPmcData, handoverQuestRequest: IHandoverQuestRequestData, sessionID: string): IItemEventRouterResponse; /** * Increment a backend counter stored value by an amount, * Create counter if it does not exist diff --git a/Faupi-HideoutArchitect/server/types/controllers/RepeatableQuestController.d.ts b/Faupi-HideoutArchitect/server/types/controllers/RepeatableQuestController.d.ts index dd8dc40..171062d 100644 --- a/Faupi-HideoutArchitect/server/types/controllers/RepeatableQuestController.d.ts +++ b/Faupi-HideoutArchitect/server/types/controllers/RepeatableQuestController.d.ts @@ -12,7 +12,7 @@ import { ITemplateItem } from "../models/eft/common/tables/ITemplateItem"; import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; import { IRepeatableQuestChangeRequest } from "../models/eft/quests/IRepeatableQuestChangeRequest"; import { ELocationName } from "../models/enums/ELocationName"; -import { IQuestConfig, IRepeatableQuestConfig } from "../models/spt/config/IQuestConfig"; +import { IEliminationConfig, IQuestConfig, IRepeatableQuestConfig } from "../models/spt/config/IQuestConfig"; import { ILogger } from "../models/spt/utils/ILogger"; import { EventOutputHolder } from "../routers/EventOutputHolder"; import { ConfigServer } from "../servers/ConfigServer"; @@ -159,7 +159,14 @@ export declare class RepeatableQuestController { */ generateEliminationQuest(pmcLevel: number, traderId: string, questTypePool: IQuestTypePool, repeatableConfig: IRepeatableQuestConfig): IElimination; /** - * Cpnvert a location into an quest code can read (e.g. factory4_day into 55f2d3fd4bdc2d5f408b4567) + * Get the relevant elimination config based on the current players PMC level + * @param pmcLevel Level of PMC character + * @param repeatableConfig Main repeatable config + * @returns IEliminationConfig + */ + protected getEliminationConfigByPmcLevel(pmcLevel: number, repeatableConfig: IRepeatableQuestConfig): IEliminationConfig; + /** + * Convert a location into an quest code can read (e.g. factory4_day into 55f2d3fd4bdc2d5f408b4567) * @param locationKey e.g factory4_day * @returns guid */ @@ -203,10 +210,11 @@ export declare class RepeatableQuestController { * Used to create a quest pool during each cycle of repeatable quest generation. The pool will be subsequently * narrowed down during quest generation to avoid duplicate quests. Like duplicate extractions or elimination quests * where you have to e.g. kill scavs in same locations. - * - * @returns {object} the quest pool + * @param repeatableConfig main repeatable quest config + * @param pmcLevel level of pmc generating quest pool + * @returns IQuestTypePool */ - generateQuestPool(repeatableConfig: IRepeatableQuestConfig): IQuestTypePool; + generateQuestPool(repeatableConfig: IRepeatableQuestConfig, pmcLevel: number): IQuestTypePool; /** * Generate the reward for a mission. A reward can consist of * - Experience diff --git a/Faupi-HideoutArchitect/server/types/controllers/TradeController.d.ts b/Faupi-HideoutArchitect/server/types/controllers/TradeController.d.ts index dc7de19..8a0630b 100644 --- a/Faupi-HideoutArchitect/server/types/controllers/TradeController.d.ts +++ b/Faupi-HideoutArchitect/server/types/controllers/TradeController.d.ts @@ -7,6 +7,7 @@ import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRout import { IProcessBaseTradeRequestData } from "../models/eft/trade/IProcessBaseTradeRequestData"; import { IProcessRagfairTradeRequestData } from "../models/eft/trade/IProcessRagfairTradeRequestData"; import { IRagfairConfig } from "../models/spt/config/IRagfairConfig"; +import { ITraderConfig } from "../models/spt/config/ITraderConfig"; import { ILogger } from "../models/spt/utils/ILogger"; import { EventOutputHolder } from "../routers/EventOutputHolder"; import { ConfigServer } from "../servers/ConfigServer"; @@ -24,8 +25,10 @@ declare class TradeController { protected localisationService: LocalisationService; protected configServer: ConfigServer; protected ragfairConfig: IRagfairConfig; + protected traderConfig: ITraderConfig; constructor(logger: ILogger, eventOutputHolder: EventOutputHolder, tradeHelper: TradeHelper, itemHelper: ItemHelper, profileHelper: ProfileHelper, ragfairServer: RagfairServer, httpResponse: HttpResponseUtil, localisationService: LocalisationService, configServer: ConfigServer); - confirmTrading(pmcData: IPmcData, body: IProcessBaseTradeRequestData, sessionID: string, foundInRaid?: boolean, upd?: Upd): IItemEventRouterResponse; + confirmTrading(pmcData: IPmcData, request: IProcessBaseTradeRequestData, sessionID: string): IItemEventRouterResponse; confirmRagfairTrading(pmcData: IPmcData, body: IProcessRagfairTradeRequestData, sessionID: string): IItemEventRouterResponse; + protected confirmTradingInternal(pmcData: IPmcData, body: IProcessBaseTradeRequestData, sessionID: string, foundInRaid?: boolean, upd?: Upd): IItemEventRouterResponse; } export { TradeController }; diff --git a/Faupi-HideoutArchitect/server/types/controllers/TraderController.d.ts b/Faupi-HideoutArchitect/server/types/controllers/TraderController.d.ts index b67aec9..007901b 100644 --- a/Faupi-HideoutArchitect/server/types/controllers/TraderController.d.ts +++ b/Faupi-HideoutArchitect/server/types/controllers/TraderController.d.ts @@ -2,27 +2,25 @@ import { FenceBaseAssortGenerator } from "../generators/FenceBaseAssortGenerator import { ProfileHelper } from "../helpers/ProfileHelper"; import { TraderAssortHelper } from "../helpers/TraderAssortHelper"; import { TraderHelper } from "../helpers/TraderHelper"; -import { IBarterScheme, ITraderAssort, ITraderBase } from "../models/eft/common/tables/ITrader"; +import { ITraderAssort, ITraderBase } from "../models/eft/common/tables/ITrader"; import { ILogger } from "../models/spt/utils/ILogger"; import { DatabaseServer } from "../servers/DatabaseServer"; import { FenceService } from "../services/FenceService"; import { TraderAssortService } from "../services/TraderAssortService"; import { TraderPurchasePersisterService } from "../services/TraderPurchasePersisterService"; import { JsonUtil } from "../utils/JsonUtil"; -import { TimeUtil } from "../utils/TimeUtil"; export declare class TraderController { protected logger: ILogger; protected databaseServer: DatabaseServer; protected traderAssortHelper: TraderAssortHelper; protected profileHelper: ProfileHelper; protected traderHelper: TraderHelper; - protected timeUtil: TimeUtil; protected traderAssortService: TraderAssortService; protected traderPurchasePersisterService: TraderPurchasePersisterService; protected fenceService: FenceService; protected fenceBaseAssortGenerator: FenceBaseAssortGenerator; protected jsonUtil: JsonUtil; - constructor(logger: ILogger, databaseServer: DatabaseServer, traderAssortHelper: TraderAssortHelper, profileHelper: ProfileHelper, traderHelper: TraderHelper, timeUtil: TimeUtil, traderAssortService: TraderAssortService, traderPurchasePersisterService: TraderPurchasePersisterService, fenceService: FenceService, fenceBaseAssortGenerator: FenceBaseAssortGenerator, jsonUtil: JsonUtil); + constructor(logger: ILogger, databaseServer: DatabaseServer, traderAssortHelper: TraderAssortHelper, profileHelper: ProfileHelper, traderHelper: TraderHelper, traderAssortService: TraderAssortService, traderPurchasePersisterService: TraderPurchasePersisterService, fenceService: FenceService, fenceBaseAssortGenerator: FenceBaseAssortGenerator, jsonUtil: JsonUtil); /** * Runs when onLoad event is fired * Iterate over traders, ensure an unmolested copy of their assorts is stored in traderAssortService @@ -42,7 +40,13 @@ export declare class TraderController { * @returns array if ITraderBase objects */ getAllTraders(sessionID: string): ITraderBase[]; + /** + * Order traders by their traderId (Ttid) + * @param traderA First trader to compare + * @param traderB Second trader to compare + * @returns 1,-1 or 0 + */ + protected sortByTraderId(traderA: ITraderBase, traderB: ITraderBase): number; getTrader(sessionID: string, traderID: string): ITraderBase; getAssort(sessionId: string, traderId: string): ITraderAssort; - getPurchasesData(sessionID: string, traderID: string): Record; } diff --git a/Faupi-HideoutArchitect/server/types/generators/BotEquipmentModGenerator.d.ts b/Faupi-HideoutArchitect/server/types/generators/BotEquipmentModGenerator.d.ts index 6703a36..4a8581c 100644 --- a/Faupi-HideoutArchitect/server/types/generators/BotEquipmentModGenerator.d.ts +++ b/Faupi-HideoutArchitect/server/types/generators/BotEquipmentModGenerator.d.ts @@ -14,6 +14,7 @@ import { DatabaseServer } from "../servers/DatabaseServer"; import { BotEquipmentFilterService } from "../services/BotEquipmentFilterService"; import { BotEquipmentModPoolService } from "../services/BotEquipmentModPoolService"; import { BotModLimits, BotWeaponModLimitService } from "../services/BotWeaponModLimitService"; +import { ItemBaseClassService } from "../services/ItemBaseClassService"; import { ItemFilterService } from "../services/ItemFilterService"; import { LocalisationService } from "../services/LocalisationService"; import { HashUtil } from "../utils/HashUtil"; @@ -28,6 +29,7 @@ export declare class BotEquipmentModGenerator { protected databaseServer: DatabaseServer; protected itemHelper: ItemHelper; protected botEquipmentFilterService: BotEquipmentFilterService; + protected itemBaseClassService: ItemBaseClassService; protected itemFilterService: ItemFilterService; protected profileHelper: ProfileHelper; protected botWeaponModLimitService: BotWeaponModLimitService; @@ -38,7 +40,7 @@ export declare class BotEquipmentModGenerator { protected botEquipmentModPoolService: BotEquipmentModPoolService; protected configServer: ConfigServer; protected botConfig: IBotConfig; - constructor(logger: ILogger, jsonUtil: JsonUtil, hashUtil: HashUtil, randomUtil: RandomUtil, probabilityHelper: ProbabilityHelper, databaseServer: DatabaseServer, itemHelper: ItemHelper, botEquipmentFilterService: BotEquipmentFilterService, itemFilterService: ItemFilterService, profileHelper: ProfileHelper, botWeaponModLimitService: BotWeaponModLimitService, botHelper: BotHelper, botGeneratorHelper: BotGeneratorHelper, botWeaponGeneratorHelper: BotWeaponGeneratorHelper, localisationService: LocalisationService, botEquipmentModPoolService: BotEquipmentModPoolService, configServer: ConfigServer); + constructor(logger: ILogger, jsonUtil: JsonUtil, hashUtil: HashUtil, randomUtil: RandomUtil, probabilityHelper: ProbabilityHelper, databaseServer: DatabaseServer, itemHelper: ItemHelper, botEquipmentFilterService: BotEquipmentFilterService, itemBaseClassService: ItemBaseClassService, itemFilterService: ItemFilterService, profileHelper: ProfileHelper, botWeaponModLimitService: BotWeaponModLimitService, botHelper: BotHelper, botGeneratorHelper: BotGeneratorHelper, botWeaponGeneratorHelper: BotWeaponGeneratorHelper, localisationService: LocalisationService, botEquipmentModPoolService: BotEquipmentModPoolService, configServer: ConfigServer); /** * Check mods are compatible and add to array * @param equipment Equipment item to add mods to diff --git a/Faupi-HideoutArchitect/server/types/generators/BotGenerator.d.ts b/Faupi-HideoutArchitect/server/types/generators/BotGenerator.d.ts index 9581259..8992e9e 100644 --- a/Faupi-HideoutArchitect/server/types/generators/BotGenerator.d.ts +++ b/Faupi-HideoutArchitect/server/types/generators/BotGenerator.d.ts @@ -14,12 +14,14 @@ 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"; import { BotInventoryGenerator } from "./BotInventoryGenerator"; import { BotLevelGenerator } from "./BotLevelGenerator"; export declare class BotGenerator { protected logger: ILogger; protected hashUtil: HashUtil; protected randomUtil: RandomUtil; + protected timeUtil: TimeUtil; protected jsonUtil: JsonUtil; protected profileHelper: ProfileHelper; protected databaseServer: DatabaseServer; @@ -32,7 +34,7 @@ export declare class BotGenerator { protected seasonalEventService: SeasonalEventService; protected configServer: ConfigServer; protected botConfig: IBotConfig; - constructor(logger: ILogger, hashUtil: HashUtil, randomUtil: RandomUtil, jsonUtil: JsonUtil, profileHelper: ProfileHelper, databaseServer: DatabaseServer, botInventoryGenerator: BotInventoryGenerator, botLevelGenerator: BotLevelGenerator, botEquipmentFilterService: BotEquipmentFilterService, weightedRandomHelper: WeightedRandomHelper, botHelper: BotHelper, botDifficultyHelper: BotDifficultyHelper, seasonalEventService: SeasonalEventService, configServer: ConfigServer); + constructor(logger: ILogger, hashUtil: HashUtil, randomUtil: RandomUtil, timeUtil: TimeUtil, jsonUtil: JsonUtil, profileHelper: ProfileHelper, databaseServer: DatabaseServer, botInventoryGenerator: BotInventoryGenerator, botLevelGenerator: BotLevelGenerator, botEquipmentFilterService: BotEquipmentFilterService, weightedRandomHelper: WeightedRandomHelper, botHelper: BotHelper, botDifficultyHelper: BotDifficultyHelper, seasonalEventService: SeasonalEventService, configServer: ConfigServer); /** * Generate a player scav bot object * @param role e.g. assault / pmcbot diff --git a/Faupi-HideoutArchitect/server/types/generators/BotLootGenerator.d.ts b/Faupi-HideoutArchitect/server/types/generators/BotLootGenerator.d.ts index 6273a11..044d407 100644 --- a/Faupi-HideoutArchitect/server/types/generators/BotLootGenerator.d.ts +++ b/Faupi-HideoutArchitect/server/types/generators/BotLootGenerator.d.ts @@ -1,10 +1,11 @@ import { BotGeneratorHelper } from "../helpers/BotGeneratorHelper"; import { BotWeaponGeneratorHelper } from "../helpers/BotWeaponGeneratorHelper"; import { HandbookHelper } from "../helpers/HandbookHelper"; +import { ItemHelper } from "../helpers/ItemHelper"; import { Inventory as PmcInventory } from "../models/eft/common/tables/IBotBase"; import { Chances, Inventory, ItemMinMax, ModsChances } from "../models/eft/common/tables/IBotType"; import { Item } from "../models/eft/common/tables/IItem"; -import { ITemplateItem, Props } from "../models/eft/common/tables/ITemplateItem"; +import { ITemplateItem } from "../models/eft/common/tables/ITemplateItem"; import { IBotConfig } from "../models/spt/config/IBotConfig"; import { ILogger } from "../models/spt/utils/ILogger"; import { ConfigServer } from "../servers/ConfigServer"; @@ -18,6 +19,7 @@ export declare class BotLootGenerator { protected logger: ILogger; protected hashUtil: HashUtil; protected randomUtil: RandomUtil; + protected itemHelper: ItemHelper; protected databaseServer: DatabaseServer; protected handbookHelper: HandbookHelper; protected botGeneratorHelper: BotGeneratorHelper; @@ -27,7 +29,7 @@ export declare class BotLootGenerator { protected localisationService: LocalisationService; protected configServer: ConfigServer; protected botConfig: IBotConfig; - constructor(logger: ILogger, hashUtil: HashUtil, randomUtil: RandomUtil, databaseServer: DatabaseServer, handbookHelper: HandbookHelper, botGeneratorHelper: BotGeneratorHelper, botWeaponGenerator: BotWeaponGenerator, botWeaponGeneratorHelper: BotWeaponGeneratorHelper, botLootCacheService: BotLootCacheService, localisationService: LocalisationService, configServer: ConfigServer); + constructor(logger: ILogger, hashUtil: HashUtil, randomUtil: RandomUtil, itemHelper: ItemHelper, databaseServer: DatabaseServer, handbookHelper: HandbookHelper, botGeneratorHelper: BotGeneratorHelper, botWeaponGenerator: BotWeaponGenerator, botWeaponGeneratorHelper: BotWeaponGeneratorHelper, botLootCacheService: BotLootCacheService, localisationService: LocalisationService, configServer: ConfigServer); /** * Add loot to bots containers * @param sessionId Session id @@ -94,19 +96,6 @@ export declare class BotLootGenerator { * @returns true if item has reached spawn limit */ protected itemHasReachedSpawnLimit(itemTemplate: ITemplateItem, botRole: string, isPmc: boolean, limitCount: Record, itemSpawnLimits: Record): boolean; - /** - * Is the item an ammo box - * @param props props of the item to check - * @returns true if item is an ammo box - */ - protected isAmmoBox(props: Props): boolean; - /** - * Create an object that contains the ammo stack for an ammo box - * @param parentId ammo box id - * @param props ammo box props - * @returns Item object - */ - protected createAmmoForAmmoBox(parentId: string, props: Props): Item; /** * Randomise the stack size of a money object, uses different values for pmc or scavs * @param isPmc is this a PMC diff --git a/Faupi-HideoutArchitect/server/types/generators/BotWeaponGenerator.d.ts b/Faupi-HideoutArchitect/server/types/generators/BotWeaponGenerator.d.ts index a68b82f..3e9fe30 100644 --- a/Faupi-HideoutArchitect/server/types/generators/BotWeaponGenerator.d.ts +++ b/Faupi-HideoutArchitect/server/types/generators/BotWeaponGenerator.d.ts @@ -140,26 +140,27 @@ export declare class BotWeaponGenerator { protected getWeaponCaliber(weaponTemplate: ITemplateItem): string; /** * Fill existing magazines to full, while replacing their contents with specified ammo - * @param weaponMods - * @param magazine - * @param ammoTpl + * @param weaponMods Weapon with children + * @param magazine Magazine item + * @param cartridgeTpl Cartridge to insert into magazine */ - protected fillExistingMagazines(weaponMods: Item[], magazine: Item, ammoTpl: string): void; + protected fillExistingMagazines(weaponMods: Item[], magazine: Item, cartridgeTpl: string): void; /** * Add desired ammo tpl as item to weaponmods array, placed as child to UBGL - * @param weaponMods - * @param ubglMod - * @param ubglAmmoTpl + * @param weaponMods Weapon with children + * @param ubglMod UBGL item + * @param ubglAmmoTpl Grenade ammo tpl */ protected fillUbgl(weaponMods: Item[], ubglMod: Item, ubglAmmoTpl: string): void; /** * Add cartridge item to weapon Item array, if it already exists, update - * @param weaponMods Weapon items array to amend + * @param weaponWithMods Weapon items array to amend * @param magazine magazine item details we're adding cartridges to - * @param chosenAmmo cartridge to put into the magazine + * @param chosenAmmoTpl cartridge to put into the magazine * @param newStackSize how many cartridges should go into the magazine + * @param magazineTemplate magazines db template */ - protected addOrUpdateMagazinesChildWithAmmo(weaponMods: Item[], magazine: Item, chosenAmmo: string, newStackSize: number): void; + protected addOrUpdateMagazinesChildWithAmmo(weaponWithMods: Item[], magazine: Item, chosenAmmoTpl: string, magazineTemplate: ITemplateItem): void; /** * Fill each Camora with a bullet * @param weaponMods Weapon mods to find and update camora mod(s) from diff --git a/Faupi-HideoutArchitect/server/types/generators/LocationGenerator.d.ts b/Faupi-HideoutArchitect/server/types/generators/LocationGenerator.d.ts index a617048..04b1599 100644 --- a/Faupi-HideoutArchitect/server/types/generators/LocationGenerator.d.ts +++ b/Faupi-HideoutArchitect/server/types/generators/LocationGenerator.d.ts @@ -2,7 +2,7 @@ import { ContainerHelper } from "../helpers/ContainerHelper"; import { ItemHelper } from "../helpers/ItemHelper"; import { PresetHelper } from "../helpers/PresetHelper"; import { RagfairServerHelper } from "../helpers/RagfairServerHelper"; -import { ILooseLoot, SpawnpointsForced, SpawnpointTemplate } from "../models/eft/common/ILooseLoot"; +import { ILooseLoot, Spawnpoint, SpawnpointsForced, SpawnpointTemplate } from "../models/eft/common/ILooseLoot"; import { Item } from "../models/eft/common/tables/IItem"; import { IStaticAmmoDetails, IStaticContainerProps, IStaticForcedProps, IStaticLootDetails } from "../models/eft/common/tables/ILootBase"; import { ILocationConfig } from "../models/spt/config/ILocationConfig"; @@ -34,6 +34,15 @@ export declare class LocationGenerator { protected configServer: ConfigServer; protected locationConfig: ILocationConfig; constructor(logger: ILogger, jsonUtil: JsonUtil, objectId: ObjectId, randomUtil: RandomUtil, ragfairServerHelper: RagfairServerHelper, itemHelper: ItemHelper, mathUtil: MathUtil, seasonalEventService: SeasonalEventService, containerHelper: ContainerHelper, presetHelper: PresetHelper, localisationService: LocalisationService, configServer: ConfigServer); + /** + * Choose loot to put into a static container + * @param containerIn + * @param staticForced + * @param staticLootDist + * @param staticAmmoDist + * @param locationName Name of the map to generate static loot for + * @returns IStaticContainerProps + */ generateContainerLoot(containerIn: IStaticContainerProps, staticForced: IStaticForcedProps[], staticLootDist: Record, staticAmmoDist: Record, locationName: string): IStaticContainerProps; protected getLooseLootMultiplerForLocation(location: string): number; protected getStaticLootMultiplerForLocation(location: string): number; @@ -52,5 +61,25 @@ export declare class LocationGenerator { * @param name of map currently generating forced loot for */ protected addForcedLoot(loot: SpawnpointTemplate[], forcedSpawnPoints: SpawnpointsForced[], locationName: string): void; - protected createItem(tpl: string, staticAmmoDist: Record, parentId?: string): IContainerItem; + /** + * Create array of item (with child items) and return + * @param chosenComposedKey Key we want to look up items for + * @param spawnPoint Dynamic spawn point item we want will be placed in + * @returns IContainerItem + */ + protected createDynamicLootItem(chosenComposedKey: string, spawnPoint: Spawnpoint): IContainerItem; + /** + * Replace the _id value for base item + all children items parentid value + * @param itemWithChildren Item with mods to update + * @param newId new id to add on chidren of base item + */ + protected reparentItemAndChildren(itemWithChildren: Item[], newId?: string): void; + /** + * Find an item in array by its _tpl, handle differently if chosenTpl is a weapon + * @param items Items array to search + * @param chosenTpl Tpl we want to get item with + * @returns Item object + */ + protected getItemInArray(items: Item[], chosenTpl: string): Item; + protected createStaticLootItem(tpl: string, staticAmmoDist: Record, parentId?: string): IContainerItem; } diff --git a/Faupi-HideoutArchitect/server/types/generators/PMCLootGenerator.d.ts b/Faupi-HideoutArchitect/server/types/generators/PMCLootGenerator.d.ts index 10918e3..8dd47ef 100644 --- a/Faupi-HideoutArchitect/server/types/generators/PMCLootGenerator.d.ts +++ b/Faupi-HideoutArchitect/server/types/generators/PMCLootGenerator.d.ts @@ -1,4 +1,5 @@ import { ItemHelper } from "../helpers/ItemHelper"; +import { ITemplateItem } from "../models/eft/common/tables/ITemplateItem"; import { IBotConfig } from "../models/spt/config/IBotConfig"; import { ConfigServer } from "../servers/ConfigServer"; import { DatabaseServer } from "../servers/DatabaseServer"; @@ -15,6 +16,7 @@ export declare class PMCLootGenerator { protected itemFilterService: ItemFilterService; protected seasonalEventService: SeasonalEventService; protected pocketLootPool: string[]; + protected vestLootPool: string[]; protected backpackLootPool: string[]; protected botConfig: IBotConfig; constructor(itemHelper: ItemHelper, databaseServer: DatabaseServer, configServer: ConfigServer, itemFilterService: ItemFilterService, seasonalEventService: SeasonalEventService); @@ -23,6 +25,18 @@ export declare class PMCLootGenerator { * @returns string array of tpls */ generatePMCPocketLootPool(): string[]; + /** + * Create an array of loot items a PMC can have in their vests + * @returns string array of tpls + */ + generatePMCVestLootPool(): string[]; + /** + * Check if item has a width/hide that lets it fit into a 1x2 slot + * 1x1 / 1x2 / 2x1 + * @param item Item to check size of + * @returns true if it fits + */ + protected itemFitsInto1By2Slot(item: ITemplateItem): boolean; /** * Create an array of loot items a PMC can have in their backpack * @returns string array of tpls diff --git a/Faupi-HideoutArchitect/server/types/helpers/AssortHelper.d.ts b/Faupi-HideoutArchitect/server/types/helpers/AssortHelper.d.ts index 13512b2..bc66b09 100644 --- a/Faupi-HideoutArchitect/server/types/helpers/AssortHelper.d.ts +++ b/Faupi-HideoutArchitect/server/types/helpers/AssortHelper.d.ts @@ -1,5 +1,6 @@ import { IPmcData } from "../models/eft/common/IPmcData"; import { ITraderAssort } from "../models/eft/common/tables/ITrader"; +import { QuestStatus } from "../models/enums/QuestStatus"; import { ILogger } from "../models/spt/utils/ILogger"; import { DatabaseServer } from "../servers/DatabaseServer"; import { LocalisationService } from "../services/LocalisationService"; @@ -15,12 +16,22 @@ export declare class AssortHelper { /** * Remove assorts from a trader that have not been unlocked yet * @param pmcProfile player profile - * @param traderId traders id - * @param assort assort items from a trader - * @param mergedQuestAssorts An object of quest assort to quest id unlocks for all traders + * @param traderId traders id the assort belongs to + * @param traderAssorts All assort items from same trader + * @param mergedQuestAssorts Dict of quest assort to quest id unlocks for all traders * @returns assort items minus locked quest assorts */ - stripLockedQuestAssort(pmcProfile: IPmcData, traderId: string, assort: ITraderAssort, mergedQuestAssorts: Record>, flea?: boolean): ITraderAssort; + stripLockedQuestAssort(pmcProfile: IPmcData, traderId: string, traderAssorts: ITraderAssort, mergedQuestAssorts: Record>, flea?: boolean): ITraderAssort; + /** + * Get a quest id + the statuses quest can be in to unlock assort + * @param mergedQuestAssorts quest assorts to search for assort id + * @param assortId Assort to look for linked quest id + * @returns quest id + array of quest status the assort should show for + */ + protected getQuestIdAndStatusThatShowAssort(mergedQuestAssorts: Record>, assortId: string): { + questId: string; + status: QuestStatus[]; + }; /** * Remove assorts from a trader that have not been unlocked yet * @param pmcProfile player profile diff --git a/Faupi-HideoutArchitect/server/types/helpers/BotWeaponGeneratorHelper.d.ts b/Faupi-HideoutArchitect/server/types/helpers/BotWeaponGeneratorHelper.d.ts index cefc3bd..8a3784b 100644 --- a/Faupi-HideoutArchitect/server/types/helpers/BotWeaponGeneratorHelper.d.ts +++ b/Faupi-HideoutArchitect/server/types/helpers/BotWeaponGeneratorHelper.d.ts @@ -65,11 +65,11 @@ export declare class BotWeaponGeneratorHelper { /** * TODO - move into BotGeneratorHelper, this is not the class for it * Adds an item with all its children into specified equipmentSlots, wherever it fits. - * @param equipmentSlots + * @param equipmentSlots Slot to add item+children into * @param parentId * @param parentTpl - * @param itemWithChildren - * @param inventory + * @param itemWithChildren Item to add + * @param inventory Inventory to add item+children into * @returns a `boolean` indicating item was added */ addItemWithChildrenToEquipmentSlot(equipmentSlots: string[], parentId: string, parentTpl: string, itemWithChildren: Item[], inventory: Inventory): boolean; diff --git a/Faupi-HideoutArchitect/server/types/helpers/HideoutHelper.d.ts b/Faupi-HideoutArchitect/server/types/helpers/HideoutHelper.d.ts index a5849e3..466b41d 100644 --- a/Faupi-HideoutArchitect/server/types/helpers/HideoutHelper.d.ts +++ b/Faupi-HideoutArchitect/server/types/helpers/HideoutHelper.d.ts @@ -140,8 +140,21 @@ export declare class HideoutHelper { * @returns coin slot count */ protected getBTCSlots(pmcData: IPmcData): number; + /** + * Get a count of bitcoins player miner can hold + */ protected getManagementSkillsSlots(): number; - protected hasManagementSkillSlots(pmcData: IPmcData): boolean; + /** + * Does profile have elite hideout management skill + * @param pmcData Profile to look at + * @returns True if profile has skill + */ + protected hasEliteHideoutManagementSkill(pmcData: IPmcData): boolean; + /** + * Get the hideout management skill from player profile + * @param pmcData Profile to look at + * @returns Hideout management skill object + */ protected getHideoutManagementSkill(pmcData: IPmcData): Common; protected getHideoutManagementConsumptionBonus(pmcData: IPmcData): number; /** diff --git a/Faupi-HideoutArchitect/server/types/helpers/InRaidHelper.d.ts b/Faupi-HideoutArchitect/server/types/helpers/InRaidHelper.d.ts index c69a810..b65d78d 100644 --- a/Faupi-HideoutArchitect/server/types/helpers/InRaidHelper.d.ts +++ b/Faupi-HideoutArchitect/server/types/helpers/InRaidHelper.d.ts @@ -2,24 +2,35 @@ import { IPmcData } from "../models/eft/common/IPmcData"; import { Victim } from "../models/eft/common/tables/IBotBase"; import { Item } from "../models/eft/common/tables/IItem"; import { ISaveProgressRequestData } from "../models/eft/inRaid/ISaveProgressRequestData"; +import { ILostOnDeathConfig } from "../models/spt/config/ILostOnDeathConfig"; import { ILogger } from "../models/spt/utils/ILogger"; +import { ConfigServer } from "../servers/ConfigServer"; import { DatabaseServer } from "../servers/DatabaseServer"; import { SaveServer } from "../servers/SaveServer"; import { LocalisationService } from "../services/LocalisationService"; import { ProfileFixerService } from "../services/ProfileFixerService"; import { JsonUtil } from "../utils/JsonUtil"; import { InventoryHelper } from "./InventoryHelper"; +import { ItemHelper } from "./ItemHelper"; import { PaymentHelper } from "./PaymentHelper"; export declare class InRaidHelper { protected logger: ILogger; protected saveServer: SaveServer; protected jsonUtil: JsonUtil; + protected itemHelper: ItemHelper; protected databaseServer: DatabaseServer; protected inventoryHelper: InventoryHelper; protected paymentHelper: PaymentHelper; protected localisationService: LocalisationService; protected profileFixerService: ProfileFixerService; - constructor(logger: ILogger, saveServer: SaveServer, jsonUtil: JsonUtil, databaseServer: DatabaseServer, inventoryHelper: InventoryHelper, paymentHelper: PaymentHelper, localisationService: LocalisationService, profileFixerService: ProfileFixerService); + protected configServer: ConfigServer; + protected lostOnDeathConfig: ILostOnDeathConfig; + constructor(logger: ILogger, saveServer: SaveServer, jsonUtil: JsonUtil, itemHelper: ItemHelper, databaseServer: DatabaseServer, inventoryHelper: InventoryHelper, paymentHelper: PaymentHelper, localisationService: LocalisationService, profileFixerService: ProfileFixerService, configServer: ConfigServer); + /** + * Should quest items be removed from player inventory on death + * @returns True if items should be removed from inventory + */ + removeQuestItemsOnDeath(): boolean; /** * Check an array of items and add an upd object to money items with a stack count of 1 * Single stack money items have no upd object and thus no StackObjectsCount, causing issues @@ -83,7 +94,7 @@ export declare class InRaidHelper { * Remove equipped items from pre-raid * Add new items found in raid to profile * Store insurance items in profile - * @param sessionID + * @param sessionID Session id * @param pmcData Profile to update * @param postRaidProfile Profile returned by client after a raid * @returns Updated profile @@ -94,15 +105,21 @@ export declare class InRaidHelper { * Used post-raid to remove items after death * @param pmcData Player profile * @param sessionID Session id - * @returns Player profile with pmc inventory cleared */ - deleteInventory(pmcData: IPmcData, sessionID: string): IPmcData; + deleteInventory(pmcData: IPmcData, sessionID: string): void; + /** + * Get items in vest/pocket/backpack inventory containers (excluding children) + * @param pmcData Player profile + * @returns Item array + */ + protected getBaseItemsInRigPocketAndBackpack(pmcData: IPmcData): Item[]; /** * Does the provided items slotId mean its kept on the player after death - * @param slotId slotid of item to check + * @pmcData Player profile + * @itemToCheck Item to check should be kept * @returns true if item is kept after death */ - isItemKeptAfterDeath(slotId: string): boolean; + protected isItemKeptAfterDeath(pmcData: IPmcData, itemToCheck: Item): boolean; /** * Return the equipped items from a players inventory * @param items Players inventory to search through diff --git a/Faupi-HideoutArchitect/server/types/helpers/InventoryHelper.d.ts b/Faupi-HideoutArchitect/server/types/helpers/InventoryHelper.d.ts index 8855d1e..9c31d78 100644 --- a/Faupi-HideoutArchitect/server/types/helpers/InventoryHelper.d.ts +++ b/Faupi-HideoutArchitect/server/types/helpers/InventoryHelper.d.ts @@ -61,12 +61,12 @@ export declare class InventoryHelper { /** * Add ammo to ammo boxes * @param itemToAdd Item to check is ammo box - * @param toDo + * @param parentId Ammo box parent id * @param output IItemEventRouterResponse object * @param sessionID Session id * @param pmcData Profile to add ammobox to */ - protected hydrateAmmoBoxWithAmmo(pmcData: IPmcData, itemToAdd: IAddItemTempObject, toDo: string[][], sessionID: string, output: IItemEventRouterResponse): void; + protected hydrateAmmoBoxWithAmmo(pmcData: IPmcData, itemToAdd: IAddItemTempObject, parentId: string, sessionID: string, output: IItemEventRouterResponse): void; /** * * @param assortItems Items to add to inventory @@ -111,7 +111,13 @@ export declare class InventoryHelper { /** * Internal helper function to move item within the same profile_f. */ - moveItemInternal(inventoryItems: Item[], body: IInventoryMoveRequestData): void; + moveItemInternal(pmcData: IPmcData, inventoryItems: Item[], moveRequest: IInventoryMoveRequestData): void; + /** + * Update fast panel bindings when an item is moved into a container that doesnt allow quick slot access + * @param pmcData Player profile + * @param itemBeingMoved item being moved + */ + protected updateFastPanelBinding(pmcData: IPmcData, itemBeingMoved: Item): void; /** * Internal helper function to handle cartridges in inventory if any of them exist. */ diff --git a/Faupi-HideoutArchitect/server/types/helpers/ItemHelper.d.ts b/Faupi-HideoutArchitect/server/types/helpers/ItemHelper.d.ts index de424d2..bd4893c 100644 --- a/Faupi-HideoutArchitect/server/types/helpers/ItemHelper.d.ts +++ b/Faupi-HideoutArchitect/server/types/helpers/ItemHelper.d.ts @@ -193,31 +193,53 @@ declare class ItemHelper { replaceIDs(pmcData: IPmcData, items: Item[], insuredItems?: InsuredItem[], fastPanel?: any): any[]; /** * WARNING, SLOW. Recursively loop down through an items hierarchy to see if any of the ids match the supplied list, return true if any do - * @param {string} tpl - * @param {Array} tplsToCheck - * @returns boolean + * @param {string} tpl Items tpl to check parents of + * @param {Array} tplsToCheck Tpl values to check if parents of item match + * @returns boolean Match found */ doesItemOrParentsIdMatch(tpl: string, tplsToCheck: string[]): boolean; /** - * Return true if item is a quest item - * @param {string} tpl - * @returns boolean + * Check if item is quest item + * @param tpl Items tpl to check quest status of + * @returns true if item is flagged as quest item */ isQuestItem(tpl: string): boolean; /** * Get the inventory size of an item - * @param items + * @param items Item with children * @param rootItemId * @returns ItemSize object (width and height) */ getItemSize(items: Item[], rootItemId: string): ItemHelper.ItemSize; /** * Get a random cartridge from an items Filter property - * @param item - * @returns + * @param item Db item template to look up Cartridge filter values from + * @returns Caliber of cartridge */ getRandomCompatibleCaliberTemplateId(item: ITemplateItem): string; - createRandomMagCartridges(magTemplate: ITemplateItem, parentId: string, staticAmmoDist: Record, caliber?: string): Item; + /** + * Add cartridges to the ammo box with correct max stack sizes + * @param ammoBox Box to add cartridges to + * @param ammoBoxDetails Item template from items db + */ + addCartridgesToAmmoBox(ammoBox: Item[], ammoBoxDetails: ITemplateItem): void; + /** + * Add child items (cartridges) to a magazine + * @param magazine Magazine to add child items to + * @param magTemplate Db template of magazine + * @param staticAmmoDist Cartridge distribution + * @param caliber Caliber of cartridge to add to magazine + * @param minSizePercent % the magazine must be filled to + */ + fillMagazineWithRandomCartridge(magazine: Item[], magTemplate: ITemplateItem, staticAmmoDist: Record, caliber?: string, minSizePercent?: number): void; + /** + * Add child items to a magazine of a specific cartridge + * @param magazine Magazine to add child items to + * @param magTemplate Db template of magazine + * @param cartridgeTpl Cartridge to add to magazine + * @param minSizePercent % the magazine must be filled to + */ + fillMagazineWithCartridge(magazine: Item[], magTemplate: ITemplateItem, cartridgeTpl: string, minSizePercent?: number): void; protected getRandomValidCaliber(magTemplate: ITemplateItem): string; protected drawAmmoTpl(caliber: string, staticAmmoDist: Record): string; /** diff --git a/Faupi-HideoutArchitect/server/types/helpers/ProfileHelper.d.ts b/Faupi-HideoutArchitect/server/types/helpers/ProfileHelper.d.ts index 79652ad..28d3d23 100644 --- a/Faupi-HideoutArchitect/server/types/helpers/ProfileHelper.d.ts +++ b/Faupi-HideoutArchitect/server/types/helpers/ProfileHelper.d.ts @@ -20,7 +20,12 @@ export declare class ProfileHelper { protected itemHelper: ItemHelper; protected profileSnapshotService: ProfileSnapshotService; constructor(logger: ILogger, jsonUtil: JsonUtil, watermark: Watermark, timeUtil: TimeUtil, saveServer: SaveServer, databaseServer: DatabaseServer, itemHelper: ItemHelper, profileSnapshotService: ProfileSnapshotService); - resetProfileQuestCondition(sessionID: string, conditionId: string): void; + /** + * Remove/reset started quest condtions in player profile + * @param sessionID Session id + * @param conditionIds Condition ids that need to be reset/removed + */ + resetProfileQuestCondition(sessionID: string, conditionIds: string[]): void; /** * Get all profiles from server * @returns Dictionary of profiles diff --git a/Faupi-HideoutArchitect/server/types/helpers/QuestHelper.d.ts b/Faupi-HideoutArchitect/server/types/helpers/QuestHelper.d.ts index de7cba2..1ec9fe8 100644 --- a/Faupi-HideoutArchitect/server/types/helpers/QuestHelper.d.ts +++ b/Faupi-HideoutArchitect/server/types/helpers/QuestHelper.d.ts @@ -40,7 +40,7 @@ export declare class QuestHelper { protected questConfig: IQuestConfig; constructor(logger: ILogger, jsonUtil: JsonUtil, timeUtil: TimeUtil, hashUtil: HashUtil, itemHelper: ItemHelper, eventOutputHolder: EventOutputHolder, databaseServer: DatabaseServer, localeService: LocaleService, ragfairServerHelper: RagfairServerHelper, dialogueHelper: DialogueHelper, profileHelper: ProfileHelper, paymentHelper: PaymentHelper, localisationService: LocalisationService, traderHelper: TraderHelper, configServer: ConfigServer); /** - * Get status of a quest by quest id + * Get status of a quest in player profile by its id * @param pmcData Profile to search * @param questID Quest id to look up * @returns QuestStatus enum @@ -160,6 +160,13 @@ export declare class QuestHelper { * @returns IQuest object */ getQuestFromDb(questId: string, pmcData: IPmcData): IQuest; + /** + * Get a quests startedMessageText key from db, if no startedMessageText key found, use description key instead + * @param startedMessageTextId startedMessageText property from IQuest + * @param questDescriptionId description property from IQuest + * @returns message id + */ + getMessageIdForQuestStart(startedMessageTextId: string, questDescriptionId: string): string; /** * Get the locale Id from locale db for a quest message * @param questMessageId Quest message id to look up @@ -204,7 +211,7 @@ export declare class QuestHelper { * @param itemTpl item tpl to look for * @returns 'FindItem' condition id */ - getFindItemIdForQuestHandIn(itemTpl: string): string; + getFindItemIdForQuestHandIn(itemTpl: string): string[]; /** * Add all quests to a profile with the provided statuses * @param pmcProfile profile to update diff --git a/Faupi-HideoutArchitect/server/types/helpers/RagfairOfferHelper.d.ts b/Faupi-HideoutArchitect/server/types/helpers/RagfairOfferHelper.d.ts index 3d0d570..0e92762 100644 --- a/Faupi-HideoutArchitect/server/types/helpers/RagfairOfferHelper.d.ts +++ b/Faupi-HideoutArchitect/server/types/helpers/RagfairOfferHelper.d.ts @@ -47,7 +47,22 @@ export declare class RagfairOfferHelper { protected questConfig: IQuestConfig; constructor(logger: ILogger, timeUtil: TimeUtil, hashUtil: HashUtil, eventOutputHolder: EventOutputHolder, databaseServer: DatabaseServer, traderHelper: TraderHelper, saveServer: SaveServer, dialogueHelper: DialogueHelper, itemHelper: ItemHelper, paymentHelper: PaymentHelper, presetHelper: PresetHelper, profileHelper: ProfileHelper, ragfairServerHelper: RagfairServerHelper, ragfairSortHelper: RagfairSortHelper, ragfairHelper: RagfairHelper, ragfairOfferService: RagfairOfferService, localeService: LocaleService, configServer: ConfigServer); getValidOffers(searchRequest: ISearchRequestData, itemsToAdd: string[], traderAssorts: Record, pmcProfile: IPmcData): IRagfairOffer[]; - getOffersForBuild(info: ISearchRequestData, itemsToAdd: string[], assorts: Record, pmcProfile: IPmcData): IRagfairOffer[]; + /** + * Get offers from flea/traders specifically when building weapon preset + * @param searchRequest Search request data + * @param itemsToAdd string array of item tpls to search for + * @param traderAssorts All trader assorts player can access/buy + * @param pmcProfile Player profile + * @returns ITraderAssort + */ + getOffersForBuild(searchRequest: ISearchRequestData, itemsToAdd: string[], traderAssorts: Record, pmcProfile: IPmcData): IRagfairOffer[]; + /** + * Check if offer item is quest locked for current player by looking at sptQuestLocked property in traders barter_scheme + * @param offer Offer to check is quest locked + * @param traderAssorts all trader assorts for player + * @returns true if quest locked + */ + traderOfferItemQuestLocked(offer: IRagfairOffer, traderAssorts: Record): boolean; /** * Has a traders offer ran out of stock to sell to player * @param offer Offer to check stock of diff --git a/Faupi-HideoutArchitect/server/types/helpers/TraderHelper.d.ts b/Faupi-HideoutArchitect/server/types/helpers/TraderHelper.d.ts index 49aea28..fddacba 100644 --- a/Faupi-HideoutArchitect/server/types/helpers/TraderHelper.d.ts +++ b/Faupi-HideoutArchitect/server/types/helpers/TraderHelper.d.ts @@ -1,7 +1,5 @@ -import { FenceLevel } from "../models/eft/common/IGlobals"; import { IPmcData } from "../models/eft/common/IPmcData"; -import { Item } from "../models/eft/common/tables/IItem"; -import { IBarterScheme, ITraderAssort, ITraderBase, LoyaltyLevel } from "../models/eft/common/tables/ITrader"; +import { ITraderAssort, ITraderBase, LoyaltyLevel } from "../models/eft/common/tables/ITrader"; import { ITraderConfig } from "../models/spt/config/ITraderConfig"; import { ILogger } from "../models/spt/utils/ILogger"; import { ConfigServer } from "../servers/ConfigServer"; @@ -12,16 +10,12 @@ import { LocalisationService } from "../services/LocalisationService"; import { PlayerService } from "../services/PlayerService"; import { TimeUtil } from "../utils/TimeUtil"; import { HandbookHelper } from "./HandbookHelper"; -import { ItemHelper } from "./ItemHelper"; -import { PaymentHelper } from "./PaymentHelper"; import { ProfileHelper } from "./ProfileHelper"; export declare class TraderHelper { protected logger: ILogger; protected databaseServer: DatabaseServer; protected saveServer: SaveServer; protected profileHelper: ProfileHelper; - protected paymentHelper: PaymentHelper; - protected itemHelper: ItemHelper; protected handbookHelper: HandbookHelper; protected playerService: PlayerService; protected localisationService: LocalisationService; @@ -31,7 +25,7 @@ export declare class TraderHelper { protected traderConfig: ITraderConfig; /** Dictionary of item tpl and the highest trader rouble price */ protected highestTraderPriceItems: Record; - constructor(logger: ILogger, databaseServer: DatabaseServer, saveServer: SaveServer, profileHelper: ProfileHelper, paymentHelper: PaymentHelper, itemHelper: ItemHelper, handbookHelper: HandbookHelper, playerService: PlayerService, localisationService: LocalisationService, fenceService: FenceService, timeUtil: TimeUtil, configServer: ConfigServer); + constructor(logger: ILogger, databaseServer: DatabaseServer, saveServer: SaveServer, profileHelper: ProfileHelper, handbookHelper: HandbookHelper, playerService: PlayerService, localisationService: LocalisationService, fenceService: FenceService, timeUtil: TimeUtil, configServer: ConfigServer); getTrader(traderID: string, sessionID: string): ITraderBase; getTraderAssortsById(traderId: string): ITraderAssort; /** @@ -48,62 +42,6 @@ export declare class TraderHelper { * @param sessionId Session id */ setTraderUnlockedState(traderId: string, status: boolean, sessionId: string): void; - /** - * Get a list of items and their prices from player inventory that can be sold to a trader - * @param traderID trader id being traded with - * @param sessionID session id - * @returns IBarterScheme[][] - */ - getPurchasesData(traderID: string, sessionID: string): Record; - /** - * Should item be skipped when selling to trader according to its sell categories and other checks - * @param pmcData Profile - * @param item Item to be checked is sellable to trader - * @param sellCategory categories trader will buy - * @param traderId Trader item is being checked can be sold to - * @returns true if should NOT be sold to trader - */ - protected isItemUnSellableToTrader(pmcData: IPmcData, item: Item, sellCategory: string[], traderId: string): boolean; - /** - * Check if item has durability so low it precludes it from being sold to the trader (inclusive) - * @param item Item to check durability of - * @param traderId Trader item is sold to - * @returns - */ - protected itemIsBelowSellableDurabilityThreshhold(item: Item, traderId: string): boolean; - /** - * Get the percentage threshold value a trader will buy armor/weapons above - * @param traderId Trader to look up - * @returns percentage - */ - protected getTraderDurabiltyPurchaseThreshold(traderId: string): number; - /** - * Get the price of passed in item and all of its attached children (mods) - * Take into account bonuses/adjustments e.g. discounts - * @param pmcData profile data - * @param item item to calculate price of - * @param buyPriceCoefficient - * @param fenceInfo fence data - * @param traderBase trader details - * @param currencyTpl Currency to get price as - * @returns price of item + children - */ - protected getAdjustedItemPrice(pmcData: IPmcData, item: Item, buyPriceCoefficient: number, fenceInfo: FenceLevel, traderBase: ITraderBase, currencyTpl: string): number; - /** - * Get the raw price of item+child items from handbook without any modification - * @param pmcData profile data - * @param item item to calculate price of - * @returns price as number - */ - protected getRawItemPrice(pmcData: IPmcData, item: Item): number; - /** - * Get discount modifier for desired trader - * @param trader Trader to get discount for - * @param buyPriceCoefficient - * @param fenceInfo fence info, needed if getting fence modifier value - * @returns discount modifier value - */ - protected getTraderDiscount(trader: ITraderBase, buyPriceCoefficient: number, fenceInfo: FenceLevel): number; /** * Add standing to a trader and level them up if exp goes over level threshold * @param sessionId Session id @@ -129,13 +67,6 @@ export declare class TraderHelper { * @returns Time in seconds */ getTraderUpdateSeconds(traderId: string): number; - /** - * check if an item is allowed to be sold to a trader - * @param categoriesTraderBuys array of allowed categories - * @param tplToCheck itemTpl of inventory - * @returns boolean if item can be sold to trader - */ - doesTraderBuyItem(categoriesTraderBuys: string[], tplToCheck: string): boolean; getLoyaltyLevel(traderID: string, pmcData: IPmcData): LoyaltyLevel; /** * Store the purchase of an assort from a trader in the player profile diff --git a/Faupi-HideoutArchitect/server/types/loaders/PostAkiModLoader.d.ts b/Faupi-HideoutArchitect/server/types/loaders/PostAkiModLoader.d.ts index 5df8c6c..848e9f3 100644 --- a/Faupi-HideoutArchitect/server/types/loaders/PostAkiModLoader.d.ts +++ b/Faupi-HideoutArchitect/server/types/loaders/PostAkiModLoader.d.ts @@ -1,15 +1,19 @@ import { DependencyContainer } from "tsyringe"; import { IModLoader } from "../models/spt/mod/IModLoader"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { LocalisationService } from "../services/LocalisationService"; import { VFS } from "../utils/VFS"; import { BundleLoader } from "./BundleLoader"; import { ModTypeCheck } from "./ModTypeCheck"; import { PreAkiModLoader } from "./PreAkiModLoader"; export declare class PostAkiModLoader implements IModLoader { + protected logger: ILogger; protected bundleLoader: BundleLoader; protected vfs: VFS; protected preAkiModLoader: PreAkiModLoader; + protected localisationService: LocalisationService; protected modTypeCheck: ModTypeCheck; - constructor(bundleLoader: BundleLoader, vfs: VFS, preAkiModLoader: PreAkiModLoader, modTypeCheck: ModTypeCheck); + constructor(logger: ILogger, bundleLoader: BundleLoader, vfs: VFS, preAkiModLoader: PreAkiModLoader, localisationService: LocalisationService, modTypeCheck: ModTypeCheck); getModPath(mod: string): string; load(): Promise; protected executeMods(container: DependencyContainer): Promise; diff --git a/Faupi-HideoutArchitect/server/types/loaders/PostDBModLoader.d.ts b/Faupi-HideoutArchitect/server/types/loaders/PostDBModLoader.d.ts index c4cda5c..eef160b 100644 --- a/Faupi-HideoutArchitect/server/types/loaders/PostDBModLoader.d.ts +++ b/Faupi-HideoutArchitect/server/types/loaders/PostDBModLoader.d.ts @@ -1,11 +1,15 @@ import { DependencyContainer } from "tsyringe"; import { OnLoad } from "../di/OnLoad"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { LocalisationService } from "../services/LocalisationService"; import { ModTypeCheck } from "./ModTypeCheck"; import { PreAkiModLoader } from "./PreAkiModLoader"; export declare class PostDBModLoader implements OnLoad { + protected logger: ILogger; protected preAkiModLoader: PreAkiModLoader; + protected localisationService: LocalisationService; protected modTypeCheck: ModTypeCheck; - constructor(preAkiModLoader: PreAkiModLoader, modTypeCheck: ModTypeCheck); + constructor(logger: ILogger, preAkiModLoader: PreAkiModLoader, localisationService: LocalisationService, modTypeCheck: ModTypeCheck); onLoad(): Promise; getRoute(): string; getModPath(mod: string): string; diff --git a/Faupi-HideoutArchitect/server/types/models/eft/common/IGlobals.d.ts b/Faupi-HideoutArchitect/server/types/models/eft/common/IGlobals.d.ts index b5ed401..5790cde 100644 --- a/Faupi-HideoutArchitect/server/types/models/eft/common/IGlobals.d.ts +++ b/Faupi-HideoutArchitect/server/types/models/eft/common/IGlobals.d.ts @@ -70,6 +70,7 @@ export interface Config { EventType: string[]; WalkSpeed: xyz; SprintSpeed: xyz; + SquadSettings: ISquadSettings; SkillEnduranceWeightThreshold: number; TeamSearchingTimeout: number; Insurance: Insurance; @@ -803,6 +804,11 @@ export interface RestrictionsInRaid { TemplateId: string; Value: number; } +export interface ISquadSettings { + CountOfRequestsToOnePlayer: number; + SecondsForExpiredRequest: number; + SendRequestDelaySeconds: number; +} export interface Insurance { MaxStorageTimeInHour: number; } diff --git a/Faupi-HideoutArchitect/server/types/models/eft/common/ILooseLoot.d.ts b/Faupi-HideoutArchitect/server/types/models/eft/common/ILooseLoot.d.ts index 14b795e..572ec69 100644 --- a/Faupi-HideoutArchitect/server/types/models/eft/common/ILooseLoot.d.ts +++ b/Faupi-HideoutArchitect/server/types/models/eft/common/ILooseLoot.d.ts @@ -1,3 +1,4 @@ +import { Item } from "./tables/IItem"; export interface ILooseLoot { spawnpointCount: SpawnpointCount; spawnpointsForced: SpawnpointsForced[]; @@ -24,10 +25,6 @@ export interface SpawnpointTemplate { Root: any; Items: Item[]; } -export interface Item { - _id: string; - _tpl?: string; -} export interface Spawnpoint { locationId: string; probability: number; @@ -40,6 +37,9 @@ export interface Xyz { z: number; } export interface ItemDistribution { - tpl: string; + composedKey: ComposedKey; relativeProbability: number; } +export interface ComposedKey { + key: string; +} diff --git a/Faupi-HideoutArchitect/server/types/models/eft/common/tables/IBotBase.d.ts b/Faupi-HideoutArchitect/server/types/models/eft/common/tables/IBotBase.d.ts index dd7c478..82a925b 100644 --- a/Faupi-HideoutArchitect/server/types/models/eft/common/tables/IBotBase.d.ts +++ b/Faupi-HideoutArchitect/server/types/models/eft/common/tables/IBotBase.d.ts @@ -120,9 +120,7 @@ export interface Inventory { sortingTable: string; questRaidItems: string; questStashItems: string; - fastPanel: FastPanel; -} -export interface FastPanel { + fastPanel: Record; } export interface Skills { Common: Common[]; diff --git a/Faupi-HideoutArchitect/server/types/models/eft/common/tables/IQuest.d.ts b/Faupi-HideoutArchitect/server/types/models/eft/common/tables/IQuest.d.ts index 5c939e1..52968b1 100644 --- a/Faupi-HideoutArchitect/server/types/models/eft/common/tables/IQuest.d.ts +++ b/Faupi-HideoutArchitect/server/types/models/eft/common/tables/IQuest.d.ts @@ -46,7 +46,7 @@ export interface AvailableForProps { parentId: string; isEncoded: boolean; dynamicLocale: boolean; - value?: number; + value?: string | number; compareMethod?: string; visibilityConditions?: VisibilityCondition[]; target?: string | string[]; diff --git a/Faupi-HideoutArchitect/server/types/models/eft/hideout/IHideoutProduction.d.ts b/Faupi-HideoutArchitect/server/types/models/eft/hideout/IHideoutProduction.d.ts index 2367e08..8bed3cc 100644 --- a/Faupi-HideoutArchitect/server/types/models/eft/hideout/IHideoutProduction.d.ts +++ b/Faupi-HideoutArchitect/server/types/models/eft/hideout/IHideoutProduction.d.ts @@ -20,4 +20,5 @@ export interface Requirement { areaType?: number; requiredLevel?: number; resource?: number; + questId?: string; } diff --git a/Faupi-HideoutArchitect/server/types/models/eft/match/IEndOfflineRaidRequestData.d.ts b/Faupi-HideoutArchitect/server/types/models/eft/match/IEndOfflineRaidRequestData.d.ts index 811e9a2..9368c32 100644 --- a/Faupi-HideoutArchitect/server/types/models/eft/match/IEndOfflineRaidRequestData.d.ts +++ b/Faupi-HideoutArchitect/server/types/models/eft/match/IEndOfflineRaidRequestData.d.ts @@ -1,6 +1,6 @@ export interface IEndOfflineRaidRequestData { crc: number; exitStatus: string; - exitName: any; + exitName: string; raidSeconds: number; } diff --git a/Faupi-HideoutArchitect/server/types/models/eft/match/IGetRaidConfigurationRequestData.d.ts b/Faupi-HideoutArchitect/server/types/models/eft/match/IGetRaidConfigurationRequestData.d.ts index cbcc2f6..ed3dfab 100644 --- a/Faupi-HideoutArchitect/server/types/models/eft/match/IGetRaidConfigurationRequestData.d.ts +++ b/Faupi-HideoutArchitect/server/types/models/eft/match/IGetRaidConfigurationRequestData.d.ts @@ -1,4 +1,7 @@ export interface IGetRaidConfigurationRequestData { + keyId: string; + side: string; + location: string; timeVariant: string; raidMode: string; metabolismDisabled: boolean; @@ -6,7 +9,6 @@ export interface IGetRaidConfigurationRequestData { timeAndWeatherSettings: TimeAndWeatherSettings; botSettings: BotSettings; wavesSettings: WavesSettings; - location: string; } export interface TimeAndWeatherSettings { isRandomTime: boolean; diff --git a/Faupi-HideoutArchitect/server/types/models/eft/presetBuild/IPresetBuildActionRequestData.d.ts b/Faupi-HideoutArchitect/server/types/models/eft/presetBuild/IPresetBuildActionRequestData.d.ts index 99c61f1..42549e6 100644 --- a/Faupi-HideoutArchitect/server/types/models/eft/presetBuild/IPresetBuildActionRequestData.d.ts +++ b/Faupi-HideoutArchitect/server/types/models/eft/presetBuild/IPresetBuildActionRequestData.d.ts @@ -1,3 +1,4 @@ +import { Upd } from "../common/tables/IItem"; export interface IPresetBuildActionRequestData { Action: string; id: string; @@ -12,14 +13,3 @@ export interface Item { parentId?: string; slotId?: string; } -export interface Upd { - Repairable: Repairable; - FireMode: FireMode; -} -export interface Repairable { - MaxDurability: number; - Durability: number; -} -export interface FireMode { - FireMode: string; -} diff --git a/Faupi-HideoutArchitect/server/types/models/eft/profile/IGetProfileSettingsRequest.d.ts b/Faupi-HideoutArchitect/server/types/models/eft/profile/IGetProfileSettingsRequest.d.ts new file mode 100644 index 0000000..8168615 --- /dev/null +++ b/Faupi-HideoutArchitect/server/types/models/eft/profile/IGetProfileSettingsRequest.d.ts @@ -0,0 +1,3 @@ +export interface IGetProfileSettingsRequest { + squadInviteRestriction: boolean; +} diff --git a/Faupi-HideoutArchitect/server/types/models/enums/ConfigTypes.d.ts b/Faupi-HideoutArchitect/server/types/models/enums/ConfigTypes.d.ts index 9c48b68..d849010 100644 --- a/Faupi-HideoutArchitect/server/types/models/enums/ConfigTypes.d.ts +++ b/Faupi-HideoutArchitect/server/types/models/enums/ConfigTypes.d.ts @@ -19,5 +19,6 @@ export declare enum ConfigTypes { SCAVCASE = "aki-scavcase", TRADER = "aki-trader", WEATHER = "aki-weather", - SEASONAL_EVENT = "aki-seasonalevents" + SEASONAL_EVENT = "aki-seasonalevents", + LOST_ON_DEATH = "aki-lostondeath" } diff --git a/Faupi-HideoutArchitect/server/types/models/spt/callbacks/ITraderCallbacks.d.ts b/Faupi-HideoutArchitect/server/types/models/spt/callbacks/ITraderCallbacks.d.ts index e0d7d06..b784408 100644 --- a/Faupi-HideoutArchitect/server/types/models/spt/callbacks/ITraderCallbacks.d.ts +++ b/Faupi-HideoutArchitect/server/types/models/spt/callbacks/ITraderCallbacks.d.ts @@ -1,10 +1,9 @@ import { IEmptyRequestData } from "../../eft/common/IEmptyRequestData"; -import { IBarterScheme, ITraderAssort, ITraderBase } from "../../eft/common/tables/ITrader"; +import { ITraderAssort, ITraderBase } from "../../eft/common/tables/ITrader"; import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; export interface ITraderCallbacks { load(): void; getTraderSettings(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; - getProfilePurchases(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData>; getTrader(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; getAssort(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; update(): boolean; diff --git a/Faupi-HideoutArchitect/server/types/models/spt/config/IHttpConfig.d.ts b/Faupi-HideoutArchitect/server/types/models/spt/config/IHttpConfig.d.ts index 3fe4787..c34c11d 100644 --- a/Faupi-HideoutArchitect/server/types/models/spt/config/IHttpConfig.d.ts +++ b/Faupi-HideoutArchitect/server/types/models/spt/config/IHttpConfig.d.ts @@ -4,4 +4,5 @@ export interface IHttpConfig extends IBaseConfig { kind: "aki-http"; ip: string; port: number; + logRequests: boolean; } diff --git a/Faupi-HideoutArchitect/server/types/models/spt/config/ILocationConfig.d.ts b/Faupi-HideoutArchitect/server/types/models/spt/config/ILocationConfig.d.ts index f808ad8..bcd91cc 100644 --- a/Faupi-HideoutArchitect/server/types/models/spt/config/ILocationConfig.d.ts +++ b/Faupi-HideoutArchitect/server/types/models/spt/config/ILocationConfig.d.ts @@ -2,9 +2,9 @@ import { BossLocationSpawn, Wave } from "../../../models/eft/common/ILocationBas import { IBaseConfig } from "./IBaseConfig"; export interface ILocationConfig extends IBaseConfig { kind: "aki-location"; - fixEmptyBotWaves: boolean; - fixRoguesTakingAllSpawnsOnLighthouse: boolean; - lighthouseRogueSpawnTimeSeconds: number; + fixEmptyBotWavesSettings: IFixEmptyBotWavesSettings; + rogueLighthouseSpawnTimeSettings: IRogueLighthouseSpawnTimeSettings; + splitWaveIntoSingleSpawnsSettings: ISplitWaveSettings; looseLootMultiplier: LootMultiplier; staticLootMultiplier: LootMultiplier; customWaves: CustomWaves; @@ -12,6 +12,21 @@ export interface ILocationConfig extends IBaseConfig { openZones: Record; /** Key = map id, value = item tpls that should only have one forced loot spawn position */ forcedLootSingleSpawnById: Record; + /** How many attempts should be taken to fit an item into a container before giving up */ + fitLootIntoContainerAttempts: number; +} +export interface IFixEmptyBotWavesSettings { + enabled: boolean; + ignoreMaps: string[]; +} +export interface IRogueLighthouseSpawnTimeSettings { + enabled: boolean; + waitTimeSeconds: number; +} +export interface ISplitWaveSettings { + enabled: boolean; + ignoreMaps: string[]; + waveSizeThreshold: number; } export interface CustomWaves { boss: Record; diff --git a/Faupi-HideoutArchitect/server/types/models/spt/config/ILostOnDeathConfig.d.ts b/Faupi-HideoutArchitect/server/types/models/spt/config/ILostOnDeathConfig.d.ts new file mode 100644 index 0000000..b557afe --- /dev/null +++ b/Faupi-HideoutArchitect/server/types/models/spt/config/ILostOnDeathConfig.d.ts @@ -0,0 +1,21 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface ILostOnDeathConfig extends IBaseConfig { + kind: "aki-lostondeath"; + equipment: Equipment; + specialSlotItems: boolean; + questItems: boolean; +} +export interface Equipment { + ArmBand: boolean; + Headwear: boolean; + Earpiece: boolean; + FaceCover: boolean; + ArmorVest: boolean; + Eyewear: boolean; + TacticalVest: boolean; + Backpack: boolean; + Holster: boolean; + FirstPrimaryWeapon: boolean; + SecondPrimaryWeapon: boolean; + Scabbard: boolean; +} diff --git a/Faupi-HideoutArchitect/server/types/models/spt/config/IPmcConfig.d.ts b/Faupi-HideoutArchitect/server/types/models/spt/config/IPmcConfig.d.ts index 979122c..87098da 100644 --- a/Faupi-HideoutArchitect/server/types/models/spt/config/IPmcConfig.d.ts +++ b/Faupi-HideoutArchitect/server/types/models/spt/config/IPmcConfig.d.ts @@ -1,5 +1,8 @@ import { MinMax } from "../../common/MinMax"; export interface IPmcConfig { + vestLoot: SlotLootSettings; + pocketLoot: SlotLootSettings; + backpackLoot: SlotLootSettings; dynamicLoot: DynamicLoot; useDifficultyOverride: boolean; difficulty: string; @@ -22,8 +25,11 @@ export interface PmcTypes { usec: string; bear: string; } -export interface DynamicLoot { +export interface SlotLootSettings { whitelist: string[]; blacklist: string[]; moneyStackLimits: Record; } +export interface DynamicLoot { + moneyStackLimits: Record; +} diff --git a/Faupi-HideoutArchitect/server/types/models/spt/config/IQuestConfig.d.ts b/Faupi-HideoutArchitect/server/types/models/spt/config/IQuestConfig.d.ts index 9adfaba..94c00fd 100644 --- a/Faupi-HideoutArchitect/server/types/models/spt/config/IQuestConfig.d.ts +++ b/Faupi-HideoutArchitect/server/types/models/spt/config/IQuestConfig.d.ts @@ -1,3 +1,4 @@ +import { MinMax } from "../../../models/common/MinMax"; import { ELocationName } from "../../enums/ELocationName"; import { IBaseConfig } from "./IBaseConfig"; export interface IQuestConfig extends IBaseConfig { @@ -50,7 +51,7 @@ export interface ITraderWhitelist { export interface IRepeatableQuestTypesConfig { Exploration: IExploration; Completion: ICompletion; - Elimination: IElimination; + Elimination: IEliminationConfig[]; } export interface IExploration { maxExtracts: number; @@ -68,7 +69,8 @@ export interface ICompletion { useWhitelist: boolean; useBlacklist: boolean; } -export interface IElimination { +export interface IEliminationConfig { + levelRange: MinMax; targets: ITarget[]; bodyPartProb: number; bodyParts: IBodyPart[]; @@ -80,11 +82,6 @@ export interface IElimination { maxKills: number; minKills: number; } -export interface IProbabilityObject { - key: string; - relativeProbability: number; - data?: any; -} export interface ITarget extends IProbabilityObject { data: IBossInfo; } @@ -94,3 +91,8 @@ export interface IBossInfo { export interface IBodyPart extends IProbabilityObject { data: string[]; } +export interface IProbabilityObject { + key: string; + relativeProbability: number; + data?: any; +} diff --git a/Faupi-HideoutArchitect/server/types/models/spt/config/IRagfairConfig.d.ts b/Faupi-HideoutArchitect/server/types/models/spt/config/IRagfairConfig.d.ts index 3fa04de..75357d0 100644 --- a/Faupi-HideoutArchitect/server/types/models/spt/config/IRagfairConfig.d.ts +++ b/Faupi-HideoutArchitect/server/types/models/spt/config/IRagfairConfig.d.ts @@ -30,6 +30,8 @@ export interface Reputation { } export interface Dynamic { purchasesAreFoundInRaid: boolean; + /** Use the highest trader price for an offer if its greater than the price in templates/prices.json */ + useTraderPriceForOffersIfHigher: boolean; barter: Barter; offerAdjustment: OfferAdjustment; expiredOfferThreshold: number; diff --git a/Faupi-HideoutArchitect/server/types/models/spt/config/ITraderConfig.d.ts b/Faupi-HideoutArchitect/server/types/models/spt/config/ITraderConfig.d.ts index 56c7d35..832f22a 100644 --- a/Faupi-HideoutArchitect/server/types/models/spt/config/ITraderConfig.d.ts +++ b/Faupi-HideoutArchitect/server/types/models/spt/config/ITraderConfig.d.ts @@ -3,9 +3,8 @@ import { IBaseConfig } from "./IBaseConfig"; export interface ITraderConfig extends IBaseConfig { kind: "aki-trader"; updateTime: UpdateTime[]; + purchasesAreFoundInRaid: boolean; updateTimeDefault: number; - /** What % of max durability an item needs to sell to a trader*/ - durabilityPurchaseThreshhold: Record; traderPriceMultipler: number; persistPurchaseDataInProfile: boolean; fence: FenceConfig; diff --git a/Faupi-HideoutArchitect/server/types/models/spt/mod/NewItemDetails.d.ts b/Faupi-HideoutArchitect/server/types/models/spt/mod/NewItemDetails.d.ts index fc69a06..9e37cc9 100644 --- a/Faupi-HideoutArchitect/server/types/models/spt/mod/NewItemDetails.d.ts +++ b/Faupi-HideoutArchitect/server/types/models/spt/mod/NewItemDetails.d.ts @@ -4,6 +4,8 @@ export declare abstract class NewItemDetailsBase { fleaPriceRoubles: number; /** Price of the item in the handbook */ handbookPriceRoubles: number; + /** Handbook ParentId for the new item */ + handbookParentId: string; /** * A dictionary for locale settings, key = langauge (e.g. en,cn,es-mx,jp,fr) * If a language is not included, the first item in the array will be used in its place diff --git a/Faupi-HideoutArchitect/server/types/services/InsuranceService.d.ts b/Faupi-HideoutArchitect/server/types/services/InsuranceService.d.ts index 886a298..55baa1a 100644 --- a/Faupi-HideoutArchitect/server/types/services/InsuranceService.d.ts +++ b/Faupi-HideoutArchitect/server/types/services/InsuranceService.d.ts @@ -63,8 +63,16 @@ export declare class InsuranceService { * @param offraidData post-raid request object * @param preRaidGear gear player wore prior to raid * @param sessionID Session id + * @param playerDied did the player die in raid + */ + storeLostGear(pmcData: IPmcData, offraidData: ISaveProgressRequestData, preRaidGear: Item[], sessionID: string, playerDied: boolean): void; + /** + * Store insured items on pmc death inside insurance array in player profile + * @param pmcData Player profile + * @param offraidData Player gear post-raid + * @param preRaidGear Player gear before raid + * @param sessionID Session id */ - storeLostGear(pmcData: IPmcData, offraidData: ISaveProgressRequestData, preRaidGear: Item[], sessionID: string): void; storeInsuredItemsForReturn(pmcData: IPmcData, offraidData: ISaveProgressRequestData, preRaidGear: Item[], sessionID: string): void; /** * Add gear item to InsuredItems array in player profile diff --git a/Faupi-MunitionsExpert/Built/Faupi-MunitionsExpert 1.7.0/bepInEx/plugins/Faupi-MunitionsExpert/Faupi-MunitionsExpert.dll b/Faupi-MunitionsExpert/Built/Faupi-MunitionsExpert 1.7.1/bepInEx/plugins/Faupi-MunitionsExpert/Faupi-MunitionsExpert.dll similarity index 93% rename from Faupi-MunitionsExpert/Built/Faupi-MunitionsExpert 1.7.0/bepInEx/plugins/Faupi-MunitionsExpert/Faupi-MunitionsExpert.dll rename to Faupi-MunitionsExpert/Built/Faupi-MunitionsExpert 1.7.1/bepInEx/plugins/Faupi-MunitionsExpert/Faupi-MunitionsExpert.dll index cd6718a..85dedc0 100644 Binary files a/Faupi-MunitionsExpert/Built/Faupi-MunitionsExpert 1.7.0/bepInEx/plugins/Faupi-MunitionsExpert/Faupi-MunitionsExpert.dll and b/Faupi-MunitionsExpert/Built/Faupi-MunitionsExpert 1.7.1/bepInEx/plugins/Faupi-MunitionsExpert/Faupi-MunitionsExpert.dll differ diff --git a/Faupi-MunitionsExpert/Built/Faupi-MunitionsExpert 1.7.0/bepInEx/plugins/Faupi-MunitionsExpert/armorDamage.png b/Faupi-MunitionsExpert/Built/Faupi-MunitionsExpert 1.7.1/bepInEx/plugins/Faupi-MunitionsExpert/armorDamage.png similarity index 100% rename from Faupi-MunitionsExpert/Built/Faupi-MunitionsExpert 1.7.0/bepInEx/plugins/Faupi-MunitionsExpert/armorDamage.png rename to Faupi-MunitionsExpert/Built/Faupi-MunitionsExpert 1.7.1/bepInEx/plugins/Faupi-MunitionsExpert/armorDamage.png diff --git a/Faupi-MunitionsExpert/Built/Faupi-MunitionsExpert 1.7.0/bepInEx/plugins/Faupi-MunitionsExpert/ricochet.png b/Faupi-MunitionsExpert/Built/Faupi-MunitionsExpert 1.7.1/bepInEx/plugins/Faupi-MunitionsExpert/ricochet.png similarity index 100% rename from Faupi-MunitionsExpert/Built/Faupi-MunitionsExpert 1.7.0/bepInEx/plugins/Faupi-MunitionsExpert/ricochet.png rename to Faupi-MunitionsExpert/Built/Faupi-MunitionsExpert 1.7.1/bepInEx/plugins/Faupi-MunitionsExpert/ricochet.png diff --git a/Faupi-MunitionsExpert/Built/Faupi-MunitionsExpert 1.7.0/user/mods/Faupi-MunitionsExpert 1.7.0/LICENSE.txt b/Faupi-MunitionsExpert/Built/Faupi-MunitionsExpert 1.7.1/user/mods/Faupi-MunitionsExpert 1.7.1/LICENSE.txt similarity index 100% rename from Faupi-MunitionsExpert/Built/Faupi-MunitionsExpert 1.7.0/user/mods/Faupi-MunitionsExpert 1.7.0/LICENSE.txt rename to Faupi-MunitionsExpert/Built/Faupi-MunitionsExpert 1.7.1/user/mods/Faupi-MunitionsExpert 1.7.1/LICENSE.txt diff --git a/Faupi-MunitionsExpert/Built/Faupi-MunitionsExpert 1.7.0/user/mods/Faupi-MunitionsExpert 1.7.0/package.json b/Faupi-MunitionsExpert/Built/Faupi-MunitionsExpert 1.7.1/user/mods/Faupi-MunitionsExpert 1.7.1/package.json similarity index 91% rename from Faupi-MunitionsExpert/Built/Faupi-MunitionsExpert 1.7.0/user/mods/Faupi-MunitionsExpert 1.7.0/package.json rename to Faupi-MunitionsExpert/Built/Faupi-MunitionsExpert 1.7.1/user/mods/Faupi-MunitionsExpert 1.7.1/package.json index 3155503..390baa3 100644 --- a/Faupi-MunitionsExpert/Built/Faupi-MunitionsExpert 1.7.0/user/mods/Faupi-MunitionsExpert 1.7.0/package.json +++ b/Faupi-MunitionsExpert/Built/Faupi-MunitionsExpert 1.7.1/user/mods/Faupi-MunitionsExpert 1.7.1/package.json @@ -2,10 +2,10 @@ "name": "MunitionsExpert", "author": "Faupi", "updatedBy": "CWX", - "version": "1.7.0", + "version": "1.7.1", "license": "NCSA Open Source", "main": "./src/MunitionsExpert.js", - "akiVersion": "3.5.0", + "akiVersion": "3.5.2", "scripts": { "setup": "npm i", "build": "node ./packageBuild.ts" diff --git a/Faupi-MunitionsExpert/Built/Faupi-MunitionsExpert 1.7.0/user/mods/Faupi-MunitionsExpert 1.7.0/src/MunitionsExpert.ts b/Faupi-MunitionsExpert/Built/Faupi-MunitionsExpert 1.7.1/user/mods/Faupi-MunitionsExpert 1.7.1/src/MunitionsExpert.ts similarity index 100% rename from Faupi-MunitionsExpert/Built/Faupi-MunitionsExpert 1.7.0/user/mods/Faupi-MunitionsExpert 1.7.0/src/MunitionsExpert.ts rename to Faupi-MunitionsExpert/Built/Faupi-MunitionsExpert 1.7.1/user/mods/Faupi-MunitionsExpert 1.7.1/src/MunitionsExpert.ts diff --git a/Faupi-MunitionsExpert/Built/Faupi-MunitionsExpert 1.7.0/user/mods/Faupi-MunitionsExpert 1.7.0/src/config.json b/Faupi-MunitionsExpert/Built/Faupi-MunitionsExpert 1.7.1/user/mods/Faupi-MunitionsExpert 1.7.1/src/config.json similarity index 100% rename from Faupi-MunitionsExpert/Built/Faupi-MunitionsExpert 1.7.0/user/mods/Faupi-MunitionsExpert 1.7.0/src/config.json rename to Faupi-MunitionsExpert/Built/Faupi-MunitionsExpert 1.7.1/user/mods/Faupi-MunitionsExpert 1.7.1/src/config.json diff --git a/Faupi-MunitionsExpert/MunitionsExpert/MunitionsExpert.sln.DotSettings.user b/Faupi-MunitionsExpert/MunitionsExpert/MunitionsExpert.sln.DotSettings.user new file mode 100644 index 0000000..a9d920c --- /dev/null +++ b/Faupi-MunitionsExpert/MunitionsExpert/MunitionsExpert.sln.DotSettings.user @@ -0,0 +1,12 @@ + + True + True + True + True + True + True + True + True + True + True + True \ No newline at end of file diff --git a/Faupi-MunitionsExpert/MunitionsExpert/MunitionsExpert/MunitionsExpert.csproj b/Faupi-MunitionsExpert/MunitionsExpert/MunitionsExpert/MunitionsExpert.csproj index 111517c..40a0272 100644 --- a/Faupi-MunitionsExpert/MunitionsExpert/MunitionsExpert/MunitionsExpert.csproj +++ b/Faupi-MunitionsExpert/MunitionsExpert/MunitionsExpert/MunitionsExpert.csproj @@ -7,37 +7,37 @@ - ..\..\..\Shared\AKI\Aki.Common.dll + ..\..\..\..\Shared\Aki.Common.dll - ..\..\..\Shared\AKI\Aki.Reflection.dll + ..\..\..\..\Shared\Aki.Reflection.dll - ..\..\..\Shared\EFT\Assembly-CSharp.dll + ..\..\..\..\Shared\Assembly-CSharp.dll - ..\..\..\Shared\BepInEx\BepInEx.dll + ..\..\..\..\Shared\BepInEx.dll - ..\..\..\Shared\EFT\Comfort.dll + ..\..\..\..\Shared\Comfort.dll - ..\..\..\Shared\EFT\Newtonsoft.Json.dll + ..\..\..\..\Shared\Newtonsoft.Json.dll - ..\..\..\Shared\EFT\UnityEngine.dll + ..\..\..\..\Shared\UnityEngine.dll - ..\..\..\Shared\EFT\UnityEngine.CoreModule.dll + ..\..\..\..\Shared\UnityEngine.CoreModule.dll - ..\..\..\Shared\EFT\UnityEngine.UnityWebRequestModule.dll + ..\..\..\..\Shared\UnityEngine.UnityWebRequestModule.dll - ..\..\..\Shared\EFT\UnityEngine.UnityWebRequestTextureModule.dll + ..\..\..\..\Shared\UnityEngine.UnityWebRequestTextureModule.dll - ..\..\..\Shared\EFT\UnityEngine.UnityWebRequestWWWModule.dll + ..\..\..\..\Shared\UnityEngine.UnityWebRequestWWWModule.dll diff --git a/Faupi-MunitionsExpert/MunitionsExpert/MunitionsExpert/MunitionsExpertPlugin.cs b/Faupi-MunitionsExpert/MunitionsExpert/MunitionsExpert/MunitionsExpertPlugin.cs index a113c90..a71c926 100644 --- a/Faupi-MunitionsExpert/MunitionsExpert/MunitionsExpert/MunitionsExpertPlugin.cs +++ b/Faupi-MunitionsExpert/MunitionsExpert/MunitionsExpert/MunitionsExpertPlugin.cs @@ -11,7 +11,7 @@ using UnityEngine.Networking; namespace MunitionsExpert { - [BepInPlugin("com.Faupi.MunitionsExpert", "Faupi-MunitionsExpert", "1.7.0")] + [BepInPlugin("com.Faupi.MunitionsExpert", "Faupi-MunitionsExpert", "1.7.1")] public class MunitionsExpertPlugin : BaseUnityPlugin { public static Dictionary iconCache = new Dictionary(); diff --git a/Faupi-MunitionsExpert/server/package.json b/Faupi-MunitionsExpert/server/package.json index 3155503..390baa3 100644 --- a/Faupi-MunitionsExpert/server/package.json +++ b/Faupi-MunitionsExpert/server/package.json @@ -2,10 +2,10 @@ "name": "MunitionsExpert", "author": "Faupi", "updatedBy": "CWX", - "version": "1.7.0", + "version": "1.7.1", "license": "NCSA Open Source", "main": "./src/MunitionsExpert.js", - "akiVersion": "3.5.0", + "akiVersion": "3.5.2", "scripts": { "setup": "npm i", "build": "node ./packageBuild.ts" diff --git a/Faupi-MunitionsExpert/server/types/callbacks/GameCallbacks.d.ts b/Faupi-MunitionsExpert/server/types/callbacks/GameCallbacks.d.ts index 3a6b7e6..30cf074 100644 --- a/Faupi-MunitionsExpert/server/types/callbacks/GameCallbacks.d.ts +++ b/Faupi-MunitionsExpert/server/types/callbacks/GameCallbacks.d.ts @@ -39,6 +39,7 @@ declare class GameCallbacks { */ getGameConfig(url: string, info: IGameEmptyCrcRequestData, sessionID: string): IGetBodyResponseData; getServer(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getCurrentGroup(url: string, info: IEmptyRequestData, sessionID: string): any; validateGameVersion(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; /** * Handle client/game/keepalive diff --git a/Faupi-MunitionsExpert/server/types/callbacks/ProfileCallbacks.d.ts b/Faupi-MunitionsExpert/server/types/callbacks/ProfileCallbacks.d.ts index 183bb0a..9a5848e 100644 --- a/Faupi-MunitionsExpert/server/types/callbacks/ProfileCallbacks.d.ts +++ b/Faupi-MunitionsExpert/server/types/callbacks/ProfileCallbacks.d.ts @@ -5,6 +5,7 @@ import { IGetBodyResponseData } from "../models/eft/httpResponse/IGetBodyRespons import { INullResponseData } from "../models/eft/httpResponse/INullResponseData"; import { IGetMiniProfileRequestData } from "../models/eft/launcher/IGetMiniProfileRequestData"; import { GetProfileStatusResponseData } from "../models/eft/profile/GetProfileStatusResponseData"; +import { IGetProfileSettingsRequest } from "../models/eft/profile/IGetProfileSettingsRequest"; import { IProfileChangeNicknameRequestData } from "../models/eft/profile/IProfileChangeNicknameRequestData"; import { IProfileChangeVoiceRequestData } from "../models/eft/profile/IProfileChangeVoiceRequestData"; import { IProfileCreateRequestData } from "../models/eft/profile/IProfileCreateRequestData"; @@ -64,6 +65,7 @@ export declare class ProfileCallbacks { * @returns */ getProfileStatus(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getProfileSettings(url: string, info: IGetProfileSettingsRequest, sessionId: string): IGetBodyResponseData; searchFriend(url: string, info: ISearchFriendRequestData, sessionID: string): IGetBodyResponseData; getMiniProfile(url: string, info: IGetMiniProfileRequestData, sessionID: string): string; getAllMiniProfiles(url: string, info: any, sessionID: string): string; diff --git a/Faupi-MunitionsExpert/server/types/callbacks/TraderCallbacks.d.ts b/Faupi-MunitionsExpert/server/types/callbacks/TraderCallbacks.d.ts index 8df1049..1e75add 100644 --- a/Faupi-MunitionsExpert/server/types/callbacks/TraderCallbacks.d.ts +++ b/Faupi-MunitionsExpert/server/types/callbacks/TraderCallbacks.d.ts @@ -2,7 +2,7 @@ import { OnLoad } from "../di/OnLoad"; import { OnUpdate } from "../di/OnUpdate"; import { TraderController } from "../controllers/TraderController"; import { IEmptyRequestData } from "../models/eft/common/IEmptyRequestData"; -import { IBarterScheme, ITraderAssort, ITraderBase } from "../models/eft/common/tables/ITrader"; +import { ITraderAssort, ITraderBase } from "../models/eft/common/tables/ITrader"; import { IGetBodyResponseData } from "../models/eft/httpResponse/IGetBodyResponseData"; import { HttpResponseUtil } from "../utils/HttpResponseUtil"; export declare class TraderCallbacks implements OnLoad, OnUpdate { @@ -13,11 +13,6 @@ export declare class TraderCallbacks implements OnLoad, OnUpdate { onUpdate(): Promise; getRoute(): string; getTraderSettings(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; - /** - * Handle client/trading/api/getUserAssortPrice/trader - * @returns - */ - getProfilePurchases(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData>; getTrader(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; getAssort(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; } diff --git a/Faupi-MunitionsExpert/server/types/context/ApplicationContext.d.ts b/Faupi-MunitionsExpert/server/types/context/ApplicationContext.d.ts index 28bbdf7..0a81be0 100644 --- a/Faupi-MunitionsExpert/server/types/context/ApplicationContext.d.ts +++ b/Faupi-MunitionsExpert/server/types/context/ApplicationContext.d.ts @@ -8,6 +8,8 @@ export declare class ApplicationContext { * * const registerPlayerInfo = this.applicationContext.getLatestValue(ContextVariableType.REGISTER_PLAYER_REQUEST).getValue(); * + * const activePlayerSessionId = this.applicationContext.getLatestValue(ContextVariableType.SESSION_ID).getValue(); + * * const matchInfo = this.applicationContext.getLatestValue(ContextVariableType.MATCH_INFO).getValue(); * @param type * @returns diff --git a/Faupi-MunitionsExpert/server/types/controllers/GameController.d.ts b/Faupi-MunitionsExpert/server/types/controllers/GameController.d.ts index 44264dc..e47d5fa 100644 --- a/Faupi-MunitionsExpert/server/types/controllers/GameController.d.ts +++ b/Faupi-MunitionsExpert/server/types/controllers/GameController.d.ts @@ -20,10 +20,12 @@ import { LocalisationService } from "../services/LocalisationService"; import { OpenZoneService } from "../services/OpenZoneService"; import { ProfileFixerService } from "../services/ProfileFixerService"; import { SeasonalEventService } from "../services/SeasonalEventService"; +import { JsonUtil } from "../utils/JsonUtil"; import { TimeUtil } from "../utils/TimeUtil"; export declare class GameController { protected logger: ILogger; protected databaseServer: DatabaseServer; + protected jsonUtil: JsonUtil; protected timeUtil: TimeUtil; protected preAkiModLoader: PreAkiModLoader; protected httpServerHelper: HttpServerHelper; @@ -39,7 +41,7 @@ export declare class GameController { protected httpConfig: IHttpConfig; protected coreConfig: ICoreConfig; protected locationConfig: ILocationConfig; - constructor(logger: ILogger, databaseServer: DatabaseServer, timeUtil: TimeUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, applicationContext: ApplicationContext, configServer: ConfigServer); + constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, applicationContext: ApplicationContext, configServer: ConfigServer); gameStart(_url: string, _info: IEmptyRequestData, sessionID: string, startTimeStampMS: number): void; /** * When player logs in, iterate over all active effects and reduce timer @@ -55,6 +57,10 @@ export declare class GameController { * Make Rogues spawn later to allow for scavs to spawn first instead of rogues filling up all spawn positions */ protected fixRoguesSpawningInstantlyOnLighthouse(): void; + /** + * Find and split waves with large numbers of bots into smaller waves - BSG appears to reduce the size of these waves to one bot when they're waiting to spawn for too long + */ + protected splitBotWavesIntoSingleWaves(): void; /** * Get a list of installed mods and save their details to the profile being used * @param fullProfile Profile to add mod details to @@ -76,5 +82,6 @@ export declare class GameController { protected logProfileDetails(fullProfile: IAkiProfile): void; getGameConfig(sessionID: string): IGameConfigResponse; getServer(): IServerDetails[]; + getCurrentGroup(sessionId: any): any; getValidGameVersion(): ICheckVersionResponse; } diff --git a/Faupi-MunitionsExpert/server/types/controllers/InraidController.d.ts b/Faupi-MunitionsExpert/server/types/controllers/InraidController.d.ts index f954eff..4b0c21b 100644 --- a/Faupi-MunitionsExpert/server/types/controllers/InraidController.d.ts +++ b/Faupi-MunitionsExpert/server/types/controllers/InraidController.d.ts @@ -61,18 +61,18 @@ export declare class InraidController { */ protected savePmcProgress(sessionID: string, offraidData: ISaveProgressRequestData): void; /** - * Make changes to pmc profile after they left raid dead, - * alter bodypart hp, handle insurance, delete inventory items, remove carried quest items - * @param postRaidSaveRequest post-raid save request - * @param pmcData pmc profile - * @param insuranceEnabled is insurance enabled - * @param preRaidGear gear player had before raid + * Make changes to pmc profile after they've died in raid, + * Alter bodypart hp, handle insurance, delete inventory items, remove carried quest items + * @param postRaidSaveRequest Post-raid save request + * @param pmcData Pmc profile + * @param insuranceEnabled Is insurance enabled + * @param preRaidGear Gear player had before raid * @param sessionID Session id * @returns Updated profile object */ protected performPostRaidActionsWhenDead(postRaidSaveRequest: ISaveProgressRequestData, pmcData: IPmcData, insuranceEnabled: boolean, preRaidGear: Item[], sessionID: string): IPmcData; /** - * Adjust player characters bodypart hp if they left raid early + * Adjust player characters bodypart hp post-raid * @param postRaidSaveRequest post raid data * @param pmcData player profile */ diff --git a/Faupi-MunitionsExpert/server/types/controllers/InventoryController.d.ts b/Faupi-MunitionsExpert/server/types/controllers/InventoryController.d.ts index 129ede3..53bb017 100644 --- a/Faupi-MunitionsExpert/server/types/controllers/InventoryController.d.ts +++ b/Faupi-MunitionsExpert/server/types/controllers/InventoryController.d.ts @@ -112,7 +112,14 @@ export declare class InventoryController { * @returns client response object */ tagItem(pmcData: IPmcData, body: IInventoryTagRequestData, sessionID: string): IItemEventRouterResponse; - bindItem(pmcData: IPmcData, body: IInventoryBindRequestData, sessionID: string): IItemEventRouterResponse; + /** + * Bind an inventory item to the quick access menu at bottom of player screen + * @param pmcData Player profile + * @param bindRequest Reqeust object + * @param sessionID Session id + * @returns IItemEventRouterResponse + */ + bindItem(pmcData: IPmcData, bindRequest: IInventoryBindRequestData, sessionID: string): IItemEventRouterResponse; /** * Handles examining an item * @param pmcData player profile @@ -137,9 +144,36 @@ export declare class InventoryController { * @returns IItemEventRouterResponse */ sortInventory(pmcData: IPmcData, request: IInventorySortRequestData, sessionID: string): IItemEventRouterResponse; - createMapMarker(pmcData: IPmcData, body: IInventoryCreateMarkerRequestData, sessionID: string): IItemEventRouterResponse; - deleteMapMarker(pmcData: IPmcData, body: IInventoryDeleteMarkerRequestData, sessionID: string): IItemEventRouterResponse; - editMapMarker(pmcData: IPmcData, body: IInventoryEditMarkerRequestData, sessionID: string): IItemEventRouterResponse; + /** + * Add note to a map + * @param pmcData Player profile + * @param request Add marker request + * @param sessionID Session id + * @returns IItemEventRouterResponse + */ + createMapMarker(pmcData: IPmcData, request: IInventoryCreateMarkerRequestData, sessionID: string): IItemEventRouterResponse; + /** + * Delete a map marker + * @param pmcData Player profile + * @param request Delete marker request + * @param sessionID Session id + * @returns IItemEventRouterResponse + */ + deleteMapMarker(pmcData: IPmcData, request: IInventoryDeleteMarkerRequestData, sessionID: string): IItemEventRouterResponse; + /** + * Edit an existing map marker + * @param pmcData Player profile + * @param request Edit marker request + * @param sessionID Session id + * @returns IItemEventRouterResponse + */ + editMapMarker(pmcData: IPmcData, request: IInventoryEditMarkerRequestData, sessionID: string): IItemEventRouterResponse; + /** + * Strip out characters from note string that are not: letter/numbers/unicode/spaces + * @param mapNoteText Marker text to sanitise + * @returns Sanitised map marker text + */ + protected sanitiseMapMarkerText(mapNoteText: string): string; /** * Handle event fired when a container is unpacked (currently only the halloween pumpkin) * @param pmcData Profile data diff --git a/Faupi-MunitionsExpert/server/types/controllers/ProfileController.d.ts b/Faupi-MunitionsExpert/server/types/controllers/ProfileController.d.ts index e76785a..9496013 100644 --- a/Faupi-MunitionsExpert/server/types/controllers/ProfileController.d.ts +++ b/Faupi-MunitionsExpert/server/types/controllers/ProfileController.d.ts @@ -1,4 +1,5 @@ import { PlayerScavGenerator } from "../generators/PlayerScavGenerator"; +import { DialogueHelper } from "../helpers/DialogueHelper"; import { ItemHelper } from "../helpers/ItemHelper"; import { ProfileHelper } from "../helpers/ProfileHelper"; import { QuestHelper } from "../helpers/QuestHelper"; @@ -11,6 +12,7 @@ import { IProfileCreateRequestData } from "../models/eft/profile/IProfileCreateR import { ISearchFriendRequestData } from "../models/eft/profile/ISearchFriendRequestData"; import { ISearchFriendResponse } from "../models/eft/profile/ISearchFriendResponse"; import { IValidateNicknameRequestData } from "../models/eft/profile/IValidateNicknameRequestData"; +import { EventOutputHolder } from "../routers/EventOutputHolder"; import { DatabaseServer } from "../servers/DatabaseServer"; import { SaveServer } from "../servers/SaveServer"; import { ProfileFixerService } from "../services/ProfileFixerService"; @@ -24,10 +26,12 @@ export declare class ProfileController { protected itemHelper: ItemHelper; protected profileFixerService: ProfileFixerService; protected playerScavGenerator: PlayerScavGenerator; + protected eventOutputHolder: EventOutputHolder; protected traderHelper: TraderHelper; + protected dialogueHelper: DialogueHelper; protected questHelper: QuestHelper; protected profileHelper: ProfileHelper; - constructor(hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, databaseServer: DatabaseServer, itemHelper: ItemHelper, profileFixerService: ProfileFixerService, playerScavGenerator: PlayerScavGenerator, traderHelper: TraderHelper, questHelper: QuestHelper, profileHelper: ProfileHelper); + constructor(hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, databaseServer: DatabaseServer, itemHelper: ItemHelper, profileFixerService: ProfileFixerService, playerScavGenerator: PlayerScavGenerator, eventOutputHolder: EventOutputHolder, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, questHelper: QuestHelper, profileHelper: ProfileHelper); getMiniProfiles(): IMiniProfile[]; getMiniProfile(sessionID: string): any; getCompleteProfile(sessionID: string): IPmcData[]; diff --git a/Faupi-MunitionsExpert/server/types/controllers/QuestController.d.ts b/Faupi-MunitionsExpert/server/types/controllers/QuestController.d.ts index fe1754d..7e4bd69 100644 --- a/Faupi-MunitionsExpert/server/types/controllers/QuestController.d.ts +++ b/Faupi-MunitionsExpert/server/types/controllers/QuestController.d.ts @@ -60,13 +60,6 @@ export declare class QuestController { * @returns client response */ acceptQuest(pmcData: IPmcData, acceptedQuest: IAcceptQuestRequestData, sessionID: string): IItemEventRouterResponse; - /** - * Get a quests startedMessageText key from db, if no startedMessageText key found, use description key instead - * @param startedMessageTextId startedMessageText property from IQuest - * @param questDescriptionId description property from IQuest - * @returns message id - */ - protected getMessageIdForQuestStart(startedMessageTextId: string, questDescriptionId: string): string; /** * Handle the client accepting a repeatable quest and starting it * Send starting rewards if any to player and @@ -123,7 +116,14 @@ export declare class QuestController { * @param questsToFail quests to fail */ protected failQuests(sessionID: string, pmcData: IPmcData, questsToFail: IQuest[]): void; - handoverQuest(pmcData: IPmcData, body: IHandoverQuestRequestData, sessionID: string): IItemEventRouterResponse; + /** + * + * @param pmcData Player profile + * @param handoverQuestRequest handover item request + * @param sessionID Session id + * @returns IItemEventRouterResponse + */ + handoverQuest(pmcData: IPmcData, handoverQuestRequest: IHandoverQuestRequestData, sessionID: string): IItemEventRouterResponse; /** * Increment a backend counter stored value by an amount, * Create counter if it does not exist diff --git a/Faupi-MunitionsExpert/server/types/controllers/RepeatableQuestController.d.ts b/Faupi-MunitionsExpert/server/types/controllers/RepeatableQuestController.d.ts index dd8dc40..171062d 100644 --- a/Faupi-MunitionsExpert/server/types/controllers/RepeatableQuestController.d.ts +++ b/Faupi-MunitionsExpert/server/types/controllers/RepeatableQuestController.d.ts @@ -12,7 +12,7 @@ import { ITemplateItem } from "../models/eft/common/tables/ITemplateItem"; import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; import { IRepeatableQuestChangeRequest } from "../models/eft/quests/IRepeatableQuestChangeRequest"; import { ELocationName } from "../models/enums/ELocationName"; -import { IQuestConfig, IRepeatableQuestConfig } from "../models/spt/config/IQuestConfig"; +import { IEliminationConfig, IQuestConfig, IRepeatableQuestConfig } from "../models/spt/config/IQuestConfig"; import { ILogger } from "../models/spt/utils/ILogger"; import { EventOutputHolder } from "../routers/EventOutputHolder"; import { ConfigServer } from "../servers/ConfigServer"; @@ -159,7 +159,14 @@ export declare class RepeatableQuestController { */ generateEliminationQuest(pmcLevel: number, traderId: string, questTypePool: IQuestTypePool, repeatableConfig: IRepeatableQuestConfig): IElimination; /** - * Cpnvert a location into an quest code can read (e.g. factory4_day into 55f2d3fd4bdc2d5f408b4567) + * Get the relevant elimination config based on the current players PMC level + * @param pmcLevel Level of PMC character + * @param repeatableConfig Main repeatable config + * @returns IEliminationConfig + */ + protected getEliminationConfigByPmcLevel(pmcLevel: number, repeatableConfig: IRepeatableQuestConfig): IEliminationConfig; + /** + * Convert a location into an quest code can read (e.g. factory4_day into 55f2d3fd4bdc2d5f408b4567) * @param locationKey e.g factory4_day * @returns guid */ @@ -203,10 +210,11 @@ export declare class RepeatableQuestController { * Used to create a quest pool during each cycle of repeatable quest generation. The pool will be subsequently * narrowed down during quest generation to avoid duplicate quests. Like duplicate extractions or elimination quests * where you have to e.g. kill scavs in same locations. - * - * @returns {object} the quest pool + * @param repeatableConfig main repeatable quest config + * @param pmcLevel level of pmc generating quest pool + * @returns IQuestTypePool */ - generateQuestPool(repeatableConfig: IRepeatableQuestConfig): IQuestTypePool; + generateQuestPool(repeatableConfig: IRepeatableQuestConfig, pmcLevel: number): IQuestTypePool; /** * Generate the reward for a mission. A reward can consist of * - Experience diff --git a/Faupi-MunitionsExpert/server/types/controllers/TradeController.d.ts b/Faupi-MunitionsExpert/server/types/controllers/TradeController.d.ts index dc7de19..8a0630b 100644 --- a/Faupi-MunitionsExpert/server/types/controllers/TradeController.d.ts +++ b/Faupi-MunitionsExpert/server/types/controllers/TradeController.d.ts @@ -7,6 +7,7 @@ import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRout import { IProcessBaseTradeRequestData } from "../models/eft/trade/IProcessBaseTradeRequestData"; import { IProcessRagfairTradeRequestData } from "../models/eft/trade/IProcessRagfairTradeRequestData"; import { IRagfairConfig } from "../models/spt/config/IRagfairConfig"; +import { ITraderConfig } from "../models/spt/config/ITraderConfig"; import { ILogger } from "../models/spt/utils/ILogger"; import { EventOutputHolder } from "../routers/EventOutputHolder"; import { ConfigServer } from "../servers/ConfigServer"; @@ -24,8 +25,10 @@ declare class TradeController { protected localisationService: LocalisationService; protected configServer: ConfigServer; protected ragfairConfig: IRagfairConfig; + protected traderConfig: ITraderConfig; constructor(logger: ILogger, eventOutputHolder: EventOutputHolder, tradeHelper: TradeHelper, itemHelper: ItemHelper, profileHelper: ProfileHelper, ragfairServer: RagfairServer, httpResponse: HttpResponseUtil, localisationService: LocalisationService, configServer: ConfigServer); - confirmTrading(pmcData: IPmcData, body: IProcessBaseTradeRequestData, sessionID: string, foundInRaid?: boolean, upd?: Upd): IItemEventRouterResponse; + confirmTrading(pmcData: IPmcData, request: IProcessBaseTradeRequestData, sessionID: string): IItemEventRouterResponse; confirmRagfairTrading(pmcData: IPmcData, body: IProcessRagfairTradeRequestData, sessionID: string): IItemEventRouterResponse; + protected confirmTradingInternal(pmcData: IPmcData, body: IProcessBaseTradeRequestData, sessionID: string, foundInRaid?: boolean, upd?: Upd): IItemEventRouterResponse; } export { TradeController }; diff --git a/Faupi-MunitionsExpert/server/types/controllers/TraderController.d.ts b/Faupi-MunitionsExpert/server/types/controllers/TraderController.d.ts index b67aec9..007901b 100644 --- a/Faupi-MunitionsExpert/server/types/controllers/TraderController.d.ts +++ b/Faupi-MunitionsExpert/server/types/controllers/TraderController.d.ts @@ -2,27 +2,25 @@ import { FenceBaseAssortGenerator } from "../generators/FenceBaseAssortGenerator import { ProfileHelper } from "../helpers/ProfileHelper"; import { TraderAssortHelper } from "../helpers/TraderAssortHelper"; import { TraderHelper } from "../helpers/TraderHelper"; -import { IBarterScheme, ITraderAssort, ITraderBase } from "../models/eft/common/tables/ITrader"; +import { ITraderAssort, ITraderBase } from "../models/eft/common/tables/ITrader"; import { ILogger } from "../models/spt/utils/ILogger"; import { DatabaseServer } from "../servers/DatabaseServer"; import { FenceService } from "../services/FenceService"; import { TraderAssortService } from "../services/TraderAssortService"; import { TraderPurchasePersisterService } from "../services/TraderPurchasePersisterService"; import { JsonUtil } from "../utils/JsonUtil"; -import { TimeUtil } from "../utils/TimeUtil"; export declare class TraderController { protected logger: ILogger; protected databaseServer: DatabaseServer; protected traderAssortHelper: TraderAssortHelper; protected profileHelper: ProfileHelper; protected traderHelper: TraderHelper; - protected timeUtil: TimeUtil; protected traderAssortService: TraderAssortService; protected traderPurchasePersisterService: TraderPurchasePersisterService; protected fenceService: FenceService; protected fenceBaseAssortGenerator: FenceBaseAssortGenerator; protected jsonUtil: JsonUtil; - constructor(logger: ILogger, databaseServer: DatabaseServer, traderAssortHelper: TraderAssortHelper, profileHelper: ProfileHelper, traderHelper: TraderHelper, timeUtil: TimeUtil, traderAssortService: TraderAssortService, traderPurchasePersisterService: TraderPurchasePersisterService, fenceService: FenceService, fenceBaseAssortGenerator: FenceBaseAssortGenerator, jsonUtil: JsonUtil); + constructor(logger: ILogger, databaseServer: DatabaseServer, traderAssortHelper: TraderAssortHelper, profileHelper: ProfileHelper, traderHelper: TraderHelper, traderAssortService: TraderAssortService, traderPurchasePersisterService: TraderPurchasePersisterService, fenceService: FenceService, fenceBaseAssortGenerator: FenceBaseAssortGenerator, jsonUtil: JsonUtil); /** * Runs when onLoad event is fired * Iterate over traders, ensure an unmolested copy of their assorts is stored in traderAssortService @@ -42,7 +40,13 @@ export declare class TraderController { * @returns array if ITraderBase objects */ getAllTraders(sessionID: string): ITraderBase[]; + /** + * Order traders by their traderId (Ttid) + * @param traderA First trader to compare + * @param traderB Second trader to compare + * @returns 1,-1 or 0 + */ + protected sortByTraderId(traderA: ITraderBase, traderB: ITraderBase): number; getTrader(sessionID: string, traderID: string): ITraderBase; getAssort(sessionId: string, traderId: string): ITraderAssort; - getPurchasesData(sessionID: string, traderID: string): Record; } diff --git a/Faupi-MunitionsExpert/server/types/generators/BotEquipmentModGenerator.d.ts b/Faupi-MunitionsExpert/server/types/generators/BotEquipmentModGenerator.d.ts index 6703a36..4a8581c 100644 --- a/Faupi-MunitionsExpert/server/types/generators/BotEquipmentModGenerator.d.ts +++ b/Faupi-MunitionsExpert/server/types/generators/BotEquipmentModGenerator.d.ts @@ -14,6 +14,7 @@ import { DatabaseServer } from "../servers/DatabaseServer"; import { BotEquipmentFilterService } from "../services/BotEquipmentFilterService"; import { BotEquipmentModPoolService } from "../services/BotEquipmentModPoolService"; import { BotModLimits, BotWeaponModLimitService } from "../services/BotWeaponModLimitService"; +import { ItemBaseClassService } from "../services/ItemBaseClassService"; import { ItemFilterService } from "../services/ItemFilterService"; import { LocalisationService } from "../services/LocalisationService"; import { HashUtil } from "../utils/HashUtil"; @@ -28,6 +29,7 @@ export declare class BotEquipmentModGenerator { protected databaseServer: DatabaseServer; protected itemHelper: ItemHelper; protected botEquipmentFilterService: BotEquipmentFilterService; + protected itemBaseClassService: ItemBaseClassService; protected itemFilterService: ItemFilterService; protected profileHelper: ProfileHelper; protected botWeaponModLimitService: BotWeaponModLimitService; @@ -38,7 +40,7 @@ export declare class BotEquipmentModGenerator { protected botEquipmentModPoolService: BotEquipmentModPoolService; protected configServer: ConfigServer; protected botConfig: IBotConfig; - constructor(logger: ILogger, jsonUtil: JsonUtil, hashUtil: HashUtil, randomUtil: RandomUtil, probabilityHelper: ProbabilityHelper, databaseServer: DatabaseServer, itemHelper: ItemHelper, botEquipmentFilterService: BotEquipmentFilterService, itemFilterService: ItemFilterService, profileHelper: ProfileHelper, botWeaponModLimitService: BotWeaponModLimitService, botHelper: BotHelper, botGeneratorHelper: BotGeneratorHelper, botWeaponGeneratorHelper: BotWeaponGeneratorHelper, localisationService: LocalisationService, botEquipmentModPoolService: BotEquipmentModPoolService, configServer: ConfigServer); + constructor(logger: ILogger, jsonUtil: JsonUtil, hashUtil: HashUtil, randomUtil: RandomUtil, probabilityHelper: ProbabilityHelper, databaseServer: DatabaseServer, itemHelper: ItemHelper, botEquipmentFilterService: BotEquipmentFilterService, itemBaseClassService: ItemBaseClassService, itemFilterService: ItemFilterService, profileHelper: ProfileHelper, botWeaponModLimitService: BotWeaponModLimitService, botHelper: BotHelper, botGeneratorHelper: BotGeneratorHelper, botWeaponGeneratorHelper: BotWeaponGeneratorHelper, localisationService: LocalisationService, botEquipmentModPoolService: BotEquipmentModPoolService, configServer: ConfigServer); /** * Check mods are compatible and add to array * @param equipment Equipment item to add mods to diff --git a/Faupi-MunitionsExpert/server/types/generators/BotGenerator.d.ts b/Faupi-MunitionsExpert/server/types/generators/BotGenerator.d.ts index 9581259..8992e9e 100644 --- a/Faupi-MunitionsExpert/server/types/generators/BotGenerator.d.ts +++ b/Faupi-MunitionsExpert/server/types/generators/BotGenerator.d.ts @@ -14,12 +14,14 @@ 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"; import { BotInventoryGenerator } from "./BotInventoryGenerator"; import { BotLevelGenerator } from "./BotLevelGenerator"; export declare class BotGenerator { protected logger: ILogger; protected hashUtil: HashUtil; protected randomUtil: RandomUtil; + protected timeUtil: TimeUtil; protected jsonUtil: JsonUtil; protected profileHelper: ProfileHelper; protected databaseServer: DatabaseServer; @@ -32,7 +34,7 @@ export declare class BotGenerator { protected seasonalEventService: SeasonalEventService; protected configServer: ConfigServer; protected botConfig: IBotConfig; - constructor(logger: ILogger, hashUtil: HashUtil, randomUtil: RandomUtil, jsonUtil: JsonUtil, profileHelper: ProfileHelper, databaseServer: DatabaseServer, botInventoryGenerator: BotInventoryGenerator, botLevelGenerator: BotLevelGenerator, botEquipmentFilterService: BotEquipmentFilterService, weightedRandomHelper: WeightedRandomHelper, botHelper: BotHelper, botDifficultyHelper: BotDifficultyHelper, seasonalEventService: SeasonalEventService, configServer: ConfigServer); + constructor(logger: ILogger, hashUtil: HashUtil, randomUtil: RandomUtil, timeUtil: TimeUtil, jsonUtil: JsonUtil, profileHelper: ProfileHelper, databaseServer: DatabaseServer, botInventoryGenerator: BotInventoryGenerator, botLevelGenerator: BotLevelGenerator, botEquipmentFilterService: BotEquipmentFilterService, weightedRandomHelper: WeightedRandomHelper, botHelper: BotHelper, botDifficultyHelper: BotDifficultyHelper, seasonalEventService: SeasonalEventService, configServer: ConfigServer); /** * Generate a player scav bot object * @param role e.g. assault / pmcbot diff --git a/Faupi-MunitionsExpert/server/types/generators/BotLootGenerator.d.ts b/Faupi-MunitionsExpert/server/types/generators/BotLootGenerator.d.ts index 6273a11..044d407 100644 --- a/Faupi-MunitionsExpert/server/types/generators/BotLootGenerator.d.ts +++ b/Faupi-MunitionsExpert/server/types/generators/BotLootGenerator.d.ts @@ -1,10 +1,11 @@ import { BotGeneratorHelper } from "../helpers/BotGeneratorHelper"; import { BotWeaponGeneratorHelper } from "../helpers/BotWeaponGeneratorHelper"; import { HandbookHelper } from "../helpers/HandbookHelper"; +import { ItemHelper } from "../helpers/ItemHelper"; import { Inventory as PmcInventory } from "../models/eft/common/tables/IBotBase"; import { Chances, Inventory, ItemMinMax, ModsChances } from "../models/eft/common/tables/IBotType"; import { Item } from "../models/eft/common/tables/IItem"; -import { ITemplateItem, Props } from "../models/eft/common/tables/ITemplateItem"; +import { ITemplateItem } from "../models/eft/common/tables/ITemplateItem"; import { IBotConfig } from "../models/spt/config/IBotConfig"; import { ILogger } from "../models/spt/utils/ILogger"; import { ConfigServer } from "../servers/ConfigServer"; @@ -18,6 +19,7 @@ export declare class BotLootGenerator { protected logger: ILogger; protected hashUtil: HashUtil; protected randomUtil: RandomUtil; + protected itemHelper: ItemHelper; protected databaseServer: DatabaseServer; protected handbookHelper: HandbookHelper; protected botGeneratorHelper: BotGeneratorHelper; @@ -27,7 +29,7 @@ export declare class BotLootGenerator { protected localisationService: LocalisationService; protected configServer: ConfigServer; protected botConfig: IBotConfig; - constructor(logger: ILogger, hashUtil: HashUtil, randomUtil: RandomUtil, databaseServer: DatabaseServer, handbookHelper: HandbookHelper, botGeneratorHelper: BotGeneratorHelper, botWeaponGenerator: BotWeaponGenerator, botWeaponGeneratorHelper: BotWeaponGeneratorHelper, botLootCacheService: BotLootCacheService, localisationService: LocalisationService, configServer: ConfigServer); + constructor(logger: ILogger, hashUtil: HashUtil, randomUtil: RandomUtil, itemHelper: ItemHelper, databaseServer: DatabaseServer, handbookHelper: HandbookHelper, botGeneratorHelper: BotGeneratorHelper, botWeaponGenerator: BotWeaponGenerator, botWeaponGeneratorHelper: BotWeaponGeneratorHelper, botLootCacheService: BotLootCacheService, localisationService: LocalisationService, configServer: ConfigServer); /** * Add loot to bots containers * @param sessionId Session id @@ -94,19 +96,6 @@ export declare class BotLootGenerator { * @returns true if item has reached spawn limit */ protected itemHasReachedSpawnLimit(itemTemplate: ITemplateItem, botRole: string, isPmc: boolean, limitCount: Record, itemSpawnLimits: Record): boolean; - /** - * Is the item an ammo box - * @param props props of the item to check - * @returns true if item is an ammo box - */ - protected isAmmoBox(props: Props): boolean; - /** - * Create an object that contains the ammo stack for an ammo box - * @param parentId ammo box id - * @param props ammo box props - * @returns Item object - */ - protected createAmmoForAmmoBox(parentId: string, props: Props): Item; /** * Randomise the stack size of a money object, uses different values for pmc or scavs * @param isPmc is this a PMC diff --git a/Faupi-MunitionsExpert/server/types/generators/BotWeaponGenerator.d.ts b/Faupi-MunitionsExpert/server/types/generators/BotWeaponGenerator.d.ts index a68b82f..3e9fe30 100644 --- a/Faupi-MunitionsExpert/server/types/generators/BotWeaponGenerator.d.ts +++ b/Faupi-MunitionsExpert/server/types/generators/BotWeaponGenerator.d.ts @@ -140,26 +140,27 @@ export declare class BotWeaponGenerator { protected getWeaponCaliber(weaponTemplate: ITemplateItem): string; /** * Fill existing magazines to full, while replacing their contents with specified ammo - * @param weaponMods - * @param magazine - * @param ammoTpl + * @param weaponMods Weapon with children + * @param magazine Magazine item + * @param cartridgeTpl Cartridge to insert into magazine */ - protected fillExistingMagazines(weaponMods: Item[], magazine: Item, ammoTpl: string): void; + protected fillExistingMagazines(weaponMods: Item[], magazine: Item, cartridgeTpl: string): void; /** * Add desired ammo tpl as item to weaponmods array, placed as child to UBGL - * @param weaponMods - * @param ubglMod - * @param ubglAmmoTpl + * @param weaponMods Weapon with children + * @param ubglMod UBGL item + * @param ubglAmmoTpl Grenade ammo tpl */ protected fillUbgl(weaponMods: Item[], ubglMod: Item, ubglAmmoTpl: string): void; /** * Add cartridge item to weapon Item array, if it already exists, update - * @param weaponMods Weapon items array to amend + * @param weaponWithMods Weapon items array to amend * @param magazine magazine item details we're adding cartridges to - * @param chosenAmmo cartridge to put into the magazine + * @param chosenAmmoTpl cartridge to put into the magazine * @param newStackSize how many cartridges should go into the magazine + * @param magazineTemplate magazines db template */ - protected addOrUpdateMagazinesChildWithAmmo(weaponMods: Item[], magazine: Item, chosenAmmo: string, newStackSize: number): void; + protected addOrUpdateMagazinesChildWithAmmo(weaponWithMods: Item[], magazine: Item, chosenAmmoTpl: string, magazineTemplate: ITemplateItem): void; /** * Fill each Camora with a bullet * @param weaponMods Weapon mods to find and update camora mod(s) from diff --git a/Faupi-MunitionsExpert/server/types/generators/LocationGenerator.d.ts b/Faupi-MunitionsExpert/server/types/generators/LocationGenerator.d.ts index a617048..04b1599 100644 --- a/Faupi-MunitionsExpert/server/types/generators/LocationGenerator.d.ts +++ b/Faupi-MunitionsExpert/server/types/generators/LocationGenerator.d.ts @@ -2,7 +2,7 @@ import { ContainerHelper } from "../helpers/ContainerHelper"; import { ItemHelper } from "../helpers/ItemHelper"; import { PresetHelper } from "../helpers/PresetHelper"; import { RagfairServerHelper } from "../helpers/RagfairServerHelper"; -import { ILooseLoot, SpawnpointsForced, SpawnpointTemplate } from "../models/eft/common/ILooseLoot"; +import { ILooseLoot, Spawnpoint, SpawnpointsForced, SpawnpointTemplate } from "../models/eft/common/ILooseLoot"; import { Item } from "../models/eft/common/tables/IItem"; import { IStaticAmmoDetails, IStaticContainerProps, IStaticForcedProps, IStaticLootDetails } from "../models/eft/common/tables/ILootBase"; import { ILocationConfig } from "../models/spt/config/ILocationConfig"; @@ -34,6 +34,15 @@ export declare class LocationGenerator { protected configServer: ConfigServer; protected locationConfig: ILocationConfig; constructor(logger: ILogger, jsonUtil: JsonUtil, objectId: ObjectId, randomUtil: RandomUtil, ragfairServerHelper: RagfairServerHelper, itemHelper: ItemHelper, mathUtil: MathUtil, seasonalEventService: SeasonalEventService, containerHelper: ContainerHelper, presetHelper: PresetHelper, localisationService: LocalisationService, configServer: ConfigServer); + /** + * Choose loot to put into a static container + * @param containerIn + * @param staticForced + * @param staticLootDist + * @param staticAmmoDist + * @param locationName Name of the map to generate static loot for + * @returns IStaticContainerProps + */ generateContainerLoot(containerIn: IStaticContainerProps, staticForced: IStaticForcedProps[], staticLootDist: Record, staticAmmoDist: Record, locationName: string): IStaticContainerProps; protected getLooseLootMultiplerForLocation(location: string): number; protected getStaticLootMultiplerForLocation(location: string): number; @@ -52,5 +61,25 @@ export declare class LocationGenerator { * @param name of map currently generating forced loot for */ protected addForcedLoot(loot: SpawnpointTemplate[], forcedSpawnPoints: SpawnpointsForced[], locationName: string): void; - protected createItem(tpl: string, staticAmmoDist: Record, parentId?: string): IContainerItem; + /** + * Create array of item (with child items) and return + * @param chosenComposedKey Key we want to look up items for + * @param spawnPoint Dynamic spawn point item we want will be placed in + * @returns IContainerItem + */ + protected createDynamicLootItem(chosenComposedKey: string, spawnPoint: Spawnpoint): IContainerItem; + /** + * Replace the _id value for base item + all children items parentid value + * @param itemWithChildren Item with mods to update + * @param newId new id to add on chidren of base item + */ + protected reparentItemAndChildren(itemWithChildren: Item[], newId?: string): void; + /** + * Find an item in array by its _tpl, handle differently if chosenTpl is a weapon + * @param items Items array to search + * @param chosenTpl Tpl we want to get item with + * @returns Item object + */ + protected getItemInArray(items: Item[], chosenTpl: string): Item; + protected createStaticLootItem(tpl: string, staticAmmoDist: Record, parentId?: string): IContainerItem; } diff --git a/Faupi-MunitionsExpert/server/types/generators/PMCLootGenerator.d.ts b/Faupi-MunitionsExpert/server/types/generators/PMCLootGenerator.d.ts index 10918e3..8dd47ef 100644 --- a/Faupi-MunitionsExpert/server/types/generators/PMCLootGenerator.d.ts +++ b/Faupi-MunitionsExpert/server/types/generators/PMCLootGenerator.d.ts @@ -1,4 +1,5 @@ import { ItemHelper } from "../helpers/ItemHelper"; +import { ITemplateItem } from "../models/eft/common/tables/ITemplateItem"; import { IBotConfig } from "../models/spt/config/IBotConfig"; import { ConfigServer } from "../servers/ConfigServer"; import { DatabaseServer } from "../servers/DatabaseServer"; @@ -15,6 +16,7 @@ export declare class PMCLootGenerator { protected itemFilterService: ItemFilterService; protected seasonalEventService: SeasonalEventService; protected pocketLootPool: string[]; + protected vestLootPool: string[]; protected backpackLootPool: string[]; protected botConfig: IBotConfig; constructor(itemHelper: ItemHelper, databaseServer: DatabaseServer, configServer: ConfigServer, itemFilterService: ItemFilterService, seasonalEventService: SeasonalEventService); @@ -23,6 +25,18 @@ export declare class PMCLootGenerator { * @returns string array of tpls */ generatePMCPocketLootPool(): string[]; + /** + * Create an array of loot items a PMC can have in their vests + * @returns string array of tpls + */ + generatePMCVestLootPool(): string[]; + /** + * Check if item has a width/hide that lets it fit into a 1x2 slot + * 1x1 / 1x2 / 2x1 + * @param item Item to check size of + * @returns true if it fits + */ + protected itemFitsInto1By2Slot(item: ITemplateItem): boolean; /** * Create an array of loot items a PMC can have in their backpack * @returns string array of tpls diff --git a/Faupi-MunitionsExpert/server/types/helpers/AssortHelper.d.ts b/Faupi-MunitionsExpert/server/types/helpers/AssortHelper.d.ts index 13512b2..bc66b09 100644 --- a/Faupi-MunitionsExpert/server/types/helpers/AssortHelper.d.ts +++ b/Faupi-MunitionsExpert/server/types/helpers/AssortHelper.d.ts @@ -1,5 +1,6 @@ import { IPmcData } from "../models/eft/common/IPmcData"; import { ITraderAssort } from "../models/eft/common/tables/ITrader"; +import { QuestStatus } from "../models/enums/QuestStatus"; import { ILogger } from "../models/spt/utils/ILogger"; import { DatabaseServer } from "../servers/DatabaseServer"; import { LocalisationService } from "../services/LocalisationService"; @@ -15,12 +16,22 @@ export declare class AssortHelper { /** * Remove assorts from a trader that have not been unlocked yet * @param pmcProfile player profile - * @param traderId traders id - * @param assort assort items from a trader - * @param mergedQuestAssorts An object of quest assort to quest id unlocks for all traders + * @param traderId traders id the assort belongs to + * @param traderAssorts All assort items from same trader + * @param mergedQuestAssorts Dict of quest assort to quest id unlocks for all traders * @returns assort items minus locked quest assorts */ - stripLockedQuestAssort(pmcProfile: IPmcData, traderId: string, assort: ITraderAssort, mergedQuestAssorts: Record>, flea?: boolean): ITraderAssort; + stripLockedQuestAssort(pmcProfile: IPmcData, traderId: string, traderAssorts: ITraderAssort, mergedQuestAssorts: Record>, flea?: boolean): ITraderAssort; + /** + * Get a quest id + the statuses quest can be in to unlock assort + * @param mergedQuestAssorts quest assorts to search for assort id + * @param assortId Assort to look for linked quest id + * @returns quest id + array of quest status the assort should show for + */ + protected getQuestIdAndStatusThatShowAssort(mergedQuestAssorts: Record>, assortId: string): { + questId: string; + status: QuestStatus[]; + }; /** * Remove assorts from a trader that have not been unlocked yet * @param pmcProfile player profile diff --git a/Faupi-MunitionsExpert/server/types/helpers/BotWeaponGeneratorHelper.d.ts b/Faupi-MunitionsExpert/server/types/helpers/BotWeaponGeneratorHelper.d.ts index cefc3bd..8a3784b 100644 --- a/Faupi-MunitionsExpert/server/types/helpers/BotWeaponGeneratorHelper.d.ts +++ b/Faupi-MunitionsExpert/server/types/helpers/BotWeaponGeneratorHelper.d.ts @@ -65,11 +65,11 @@ export declare class BotWeaponGeneratorHelper { /** * TODO - move into BotGeneratorHelper, this is not the class for it * Adds an item with all its children into specified equipmentSlots, wherever it fits. - * @param equipmentSlots + * @param equipmentSlots Slot to add item+children into * @param parentId * @param parentTpl - * @param itemWithChildren - * @param inventory + * @param itemWithChildren Item to add + * @param inventory Inventory to add item+children into * @returns a `boolean` indicating item was added */ addItemWithChildrenToEquipmentSlot(equipmentSlots: string[], parentId: string, parentTpl: string, itemWithChildren: Item[], inventory: Inventory): boolean; diff --git a/Faupi-MunitionsExpert/server/types/helpers/HideoutHelper.d.ts b/Faupi-MunitionsExpert/server/types/helpers/HideoutHelper.d.ts index a5849e3..466b41d 100644 --- a/Faupi-MunitionsExpert/server/types/helpers/HideoutHelper.d.ts +++ b/Faupi-MunitionsExpert/server/types/helpers/HideoutHelper.d.ts @@ -140,8 +140,21 @@ export declare class HideoutHelper { * @returns coin slot count */ protected getBTCSlots(pmcData: IPmcData): number; + /** + * Get a count of bitcoins player miner can hold + */ protected getManagementSkillsSlots(): number; - protected hasManagementSkillSlots(pmcData: IPmcData): boolean; + /** + * Does profile have elite hideout management skill + * @param pmcData Profile to look at + * @returns True if profile has skill + */ + protected hasEliteHideoutManagementSkill(pmcData: IPmcData): boolean; + /** + * Get the hideout management skill from player profile + * @param pmcData Profile to look at + * @returns Hideout management skill object + */ protected getHideoutManagementSkill(pmcData: IPmcData): Common; protected getHideoutManagementConsumptionBonus(pmcData: IPmcData): number; /** diff --git a/Faupi-MunitionsExpert/server/types/helpers/InRaidHelper.d.ts b/Faupi-MunitionsExpert/server/types/helpers/InRaidHelper.d.ts index c69a810..b65d78d 100644 --- a/Faupi-MunitionsExpert/server/types/helpers/InRaidHelper.d.ts +++ b/Faupi-MunitionsExpert/server/types/helpers/InRaidHelper.d.ts @@ -2,24 +2,35 @@ import { IPmcData } from "../models/eft/common/IPmcData"; import { Victim } from "../models/eft/common/tables/IBotBase"; import { Item } from "../models/eft/common/tables/IItem"; import { ISaveProgressRequestData } from "../models/eft/inRaid/ISaveProgressRequestData"; +import { ILostOnDeathConfig } from "../models/spt/config/ILostOnDeathConfig"; import { ILogger } from "../models/spt/utils/ILogger"; +import { ConfigServer } from "../servers/ConfigServer"; import { DatabaseServer } from "../servers/DatabaseServer"; import { SaveServer } from "../servers/SaveServer"; import { LocalisationService } from "../services/LocalisationService"; import { ProfileFixerService } from "../services/ProfileFixerService"; import { JsonUtil } from "../utils/JsonUtil"; import { InventoryHelper } from "./InventoryHelper"; +import { ItemHelper } from "./ItemHelper"; import { PaymentHelper } from "./PaymentHelper"; export declare class InRaidHelper { protected logger: ILogger; protected saveServer: SaveServer; protected jsonUtil: JsonUtil; + protected itemHelper: ItemHelper; protected databaseServer: DatabaseServer; protected inventoryHelper: InventoryHelper; protected paymentHelper: PaymentHelper; protected localisationService: LocalisationService; protected profileFixerService: ProfileFixerService; - constructor(logger: ILogger, saveServer: SaveServer, jsonUtil: JsonUtil, databaseServer: DatabaseServer, inventoryHelper: InventoryHelper, paymentHelper: PaymentHelper, localisationService: LocalisationService, profileFixerService: ProfileFixerService); + protected configServer: ConfigServer; + protected lostOnDeathConfig: ILostOnDeathConfig; + constructor(logger: ILogger, saveServer: SaveServer, jsonUtil: JsonUtil, itemHelper: ItemHelper, databaseServer: DatabaseServer, inventoryHelper: InventoryHelper, paymentHelper: PaymentHelper, localisationService: LocalisationService, profileFixerService: ProfileFixerService, configServer: ConfigServer); + /** + * Should quest items be removed from player inventory on death + * @returns True if items should be removed from inventory + */ + removeQuestItemsOnDeath(): boolean; /** * Check an array of items and add an upd object to money items with a stack count of 1 * Single stack money items have no upd object and thus no StackObjectsCount, causing issues @@ -83,7 +94,7 @@ export declare class InRaidHelper { * Remove equipped items from pre-raid * Add new items found in raid to profile * Store insurance items in profile - * @param sessionID + * @param sessionID Session id * @param pmcData Profile to update * @param postRaidProfile Profile returned by client after a raid * @returns Updated profile @@ -94,15 +105,21 @@ export declare class InRaidHelper { * Used post-raid to remove items after death * @param pmcData Player profile * @param sessionID Session id - * @returns Player profile with pmc inventory cleared */ - deleteInventory(pmcData: IPmcData, sessionID: string): IPmcData; + deleteInventory(pmcData: IPmcData, sessionID: string): void; + /** + * Get items in vest/pocket/backpack inventory containers (excluding children) + * @param pmcData Player profile + * @returns Item array + */ + protected getBaseItemsInRigPocketAndBackpack(pmcData: IPmcData): Item[]; /** * Does the provided items slotId mean its kept on the player after death - * @param slotId slotid of item to check + * @pmcData Player profile + * @itemToCheck Item to check should be kept * @returns true if item is kept after death */ - isItemKeptAfterDeath(slotId: string): boolean; + protected isItemKeptAfterDeath(pmcData: IPmcData, itemToCheck: Item): boolean; /** * Return the equipped items from a players inventory * @param items Players inventory to search through diff --git a/Faupi-MunitionsExpert/server/types/helpers/InventoryHelper.d.ts b/Faupi-MunitionsExpert/server/types/helpers/InventoryHelper.d.ts index 8855d1e..9c31d78 100644 --- a/Faupi-MunitionsExpert/server/types/helpers/InventoryHelper.d.ts +++ b/Faupi-MunitionsExpert/server/types/helpers/InventoryHelper.d.ts @@ -61,12 +61,12 @@ export declare class InventoryHelper { /** * Add ammo to ammo boxes * @param itemToAdd Item to check is ammo box - * @param toDo + * @param parentId Ammo box parent id * @param output IItemEventRouterResponse object * @param sessionID Session id * @param pmcData Profile to add ammobox to */ - protected hydrateAmmoBoxWithAmmo(pmcData: IPmcData, itemToAdd: IAddItemTempObject, toDo: string[][], sessionID: string, output: IItemEventRouterResponse): void; + protected hydrateAmmoBoxWithAmmo(pmcData: IPmcData, itemToAdd: IAddItemTempObject, parentId: string, sessionID: string, output: IItemEventRouterResponse): void; /** * * @param assortItems Items to add to inventory @@ -111,7 +111,13 @@ export declare class InventoryHelper { /** * Internal helper function to move item within the same profile_f. */ - moveItemInternal(inventoryItems: Item[], body: IInventoryMoveRequestData): void; + moveItemInternal(pmcData: IPmcData, inventoryItems: Item[], moveRequest: IInventoryMoveRequestData): void; + /** + * Update fast panel bindings when an item is moved into a container that doesnt allow quick slot access + * @param pmcData Player profile + * @param itemBeingMoved item being moved + */ + protected updateFastPanelBinding(pmcData: IPmcData, itemBeingMoved: Item): void; /** * Internal helper function to handle cartridges in inventory if any of them exist. */ diff --git a/Faupi-MunitionsExpert/server/types/helpers/ItemHelper.d.ts b/Faupi-MunitionsExpert/server/types/helpers/ItemHelper.d.ts index de424d2..bd4893c 100644 --- a/Faupi-MunitionsExpert/server/types/helpers/ItemHelper.d.ts +++ b/Faupi-MunitionsExpert/server/types/helpers/ItemHelper.d.ts @@ -193,31 +193,53 @@ declare class ItemHelper { replaceIDs(pmcData: IPmcData, items: Item[], insuredItems?: InsuredItem[], fastPanel?: any): any[]; /** * WARNING, SLOW. Recursively loop down through an items hierarchy to see if any of the ids match the supplied list, return true if any do - * @param {string} tpl - * @param {Array} tplsToCheck - * @returns boolean + * @param {string} tpl Items tpl to check parents of + * @param {Array} tplsToCheck Tpl values to check if parents of item match + * @returns boolean Match found */ doesItemOrParentsIdMatch(tpl: string, tplsToCheck: string[]): boolean; /** - * Return true if item is a quest item - * @param {string} tpl - * @returns boolean + * Check if item is quest item + * @param tpl Items tpl to check quest status of + * @returns true if item is flagged as quest item */ isQuestItem(tpl: string): boolean; /** * Get the inventory size of an item - * @param items + * @param items Item with children * @param rootItemId * @returns ItemSize object (width and height) */ getItemSize(items: Item[], rootItemId: string): ItemHelper.ItemSize; /** * Get a random cartridge from an items Filter property - * @param item - * @returns + * @param item Db item template to look up Cartridge filter values from + * @returns Caliber of cartridge */ getRandomCompatibleCaliberTemplateId(item: ITemplateItem): string; - createRandomMagCartridges(magTemplate: ITemplateItem, parentId: string, staticAmmoDist: Record, caliber?: string): Item; + /** + * Add cartridges to the ammo box with correct max stack sizes + * @param ammoBox Box to add cartridges to + * @param ammoBoxDetails Item template from items db + */ + addCartridgesToAmmoBox(ammoBox: Item[], ammoBoxDetails: ITemplateItem): void; + /** + * Add child items (cartridges) to a magazine + * @param magazine Magazine to add child items to + * @param magTemplate Db template of magazine + * @param staticAmmoDist Cartridge distribution + * @param caliber Caliber of cartridge to add to magazine + * @param minSizePercent % the magazine must be filled to + */ + fillMagazineWithRandomCartridge(magazine: Item[], magTemplate: ITemplateItem, staticAmmoDist: Record, caliber?: string, minSizePercent?: number): void; + /** + * Add child items to a magazine of a specific cartridge + * @param magazine Magazine to add child items to + * @param magTemplate Db template of magazine + * @param cartridgeTpl Cartridge to add to magazine + * @param minSizePercent % the magazine must be filled to + */ + fillMagazineWithCartridge(magazine: Item[], magTemplate: ITemplateItem, cartridgeTpl: string, minSizePercent?: number): void; protected getRandomValidCaliber(magTemplate: ITemplateItem): string; protected drawAmmoTpl(caliber: string, staticAmmoDist: Record): string; /** diff --git a/Faupi-MunitionsExpert/server/types/helpers/ProfileHelper.d.ts b/Faupi-MunitionsExpert/server/types/helpers/ProfileHelper.d.ts index 79652ad..28d3d23 100644 --- a/Faupi-MunitionsExpert/server/types/helpers/ProfileHelper.d.ts +++ b/Faupi-MunitionsExpert/server/types/helpers/ProfileHelper.d.ts @@ -20,7 +20,12 @@ export declare class ProfileHelper { protected itemHelper: ItemHelper; protected profileSnapshotService: ProfileSnapshotService; constructor(logger: ILogger, jsonUtil: JsonUtil, watermark: Watermark, timeUtil: TimeUtil, saveServer: SaveServer, databaseServer: DatabaseServer, itemHelper: ItemHelper, profileSnapshotService: ProfileSnapshotService); - resetProfileQuestCondition(sessionID: string, conditionId: string): void; + /** + * Remove/reset started quest condtions in player profile + * @param sessionID Session id + * @param conditionIds Condition ids that need to be reset/removed + */ + resetProfileQuestCondition(sessionID: string, conditionIds: string[]): void; /** * Get all profiles from server * @returns Dictionary of profiles diff --git a/Faupi-MunitionsExpert/server/types/helpers/QuestHelper.d.ts b/Faupi-MunitionsExpert/server/types/helpers/QuestHelper.d.ts index de7cba2..1ec9fe8 100644 --- a/Faupi-MunitionsExpert/server/types/helpers/QuestHelper.d.ts +++ b/Faupi-MunitionsExpert/server/types/helpers/QuestHelper.d.ts @@ -40,7 +40,7 @@ export declare class QuestHelper { protected questConfig: IQuestConfig; constructor(logger: ILogger, jsonUtil: JsonUtil, timeUtil: TimeUtil, hashUtil: HashUtil, itemHelper: ItemHelper, eventOutputHolder: EventOutputHolder, databaseServer: DatabaseServer, localeService: LocaleService, ragfairServerHelper: RagfairServerHelper, dialogueHelper: DialogueHelper, profileHelper: ProfileHelper, paymentHelper: PaymentHelper, localisationService: LocalisationService, traderHelper: TraderHelper, configServer: ConfigServer); /** - * Get status of a quest by quest id + * Get status of a quest in player profile by its id * @param pmcData Profile to search * @param questID Quest id to look up * @returns QuestStatus enum @@ -160,6 +160,13 @@ export declare class QuestHelper { * @returns IQuest object */ getQuestFromDb(questId: string, pmcData: IPmcData): IQuest; + /** + * Get a quests startedMessageText key from db, if no startedMessageText key found, use description key instead + * @param startedMessageTextId startedMessageText property from IQuest + * @param questDescriptionId description property from IQuest + * @returns message id + */ + getMessageIdForQuestStart(startedMessageTextId: string, questDescriptionId: string): string; /** * Get the locale Id from locale db for a quest message * @param questMessageId Quest message id to look up @@ -204,7 +211,7 @@ export declare class QuestHelper { * @param itemTpl item tpl to look for * @returns 'FindItem' condition id */ - getFindItemIdForQuestHandIn(itemTpl: string): string; + getFindItemIdForQuestHandIn(itemTpl: string): string[]; /** * Add all quests to a profile with the provided statuses * @param pmcProfile profile to update diff --git a/Faupi-MunitionsExpert/server/types/helpers/RagfairOfferHelper.d.ts b/Faupi-MunitionsExpert/server/types/helpers/RagfairOfferHelper.d.ts index 3d0d570..0e92762 100644 --- a/Faupi-MunitionsExpert/server/types/helpers/RagfairOfferHelper.d.ts +++ b/Faupi-MunitionsExpert/server/types/helpers/RagfairOfferHelper.d.ts @@ -47,7 +47,22 @@ export declare class RagfairOfferHelper { protected questConfig: IQuestConfig; constructor(logger: ILogger, timeUtil: TimeUtil, hashUtil: HashUtil, eventOutputHolder: EventOutputHolder, databaseServer: DatabaseServer, traderHelper: TraderHelper, saveServer: SaveServer, dialogueHelper: DialogueHelper, itemHelper: ItemHelper, paymentHelper: PaymentHelper, presetHelper: PresetHelper, profileHelper: ProfileHelper, ragfairServerHelper: RagfairServerHelper, ragfairSortHelper: RagfairSortHelper, ragfairHelper: RagfairHelper, ragfairOfferService: RagfairOfferService, localeService: LocaleService, configServer: ConfigServer); getValidOffers(searchRequest: ISearchRequestData, itemsToAdd: string[], traderAssorts: Record, pmcProfile: IPmcData): IRagfairOffer[]; - getOffersForBuild(info: ISearchRequestData, itemsToAdd: string[], assorts: Record, pmcProfile: IPmcData): IRagfairOffer[]; + /** + * Get offers from flea/traders specifically when building weapon preset + * @param searchRequest Search request data + * @param itemsToAdd string array of item tpls to search for + * @param traderAssorts All trader assorts player can access/buy + * @param pmcProfile Player profile + * @returns ITraderAssort + */ + getOffersForBuild(searchRequest: ISearchRequestData, itemsToAdd: string[], traderAssorts: Record, pmcProfile: IPmcData): IRagfairOffer[]; + /** + * Check if offer item is quest locked for current player by looking at sptQuestLocked property in traders barter_scheme + * @param offer Offer to check is quest locked + * @param traderAssorts all trader assorts for player + * @returns true if quest locked + */ + traderOfferItemQuestLocked(offer: IRagfairOffer, traderAssorts: Record): boolean; /** * Has a traders offer ran out of stock to sell to player * @param offer Offer to check stock of diff --git a/Faupi-MunitionsExpert/server/types/helpers/TraderHelper.d.ts b/Faupi-MunitionsExpert/server/types/helpers/TraderHelper.d.ts index 49aea28..fddacba 100644 --- a/Faupi-MunitionsExpert/server/types/helpers/TraderHelper.d.ts +++ b/Faupi-MunitionsExpert/server/types/helpers/TraderHelper.d.ts @@ -1,7 +1,5 @@ -import { FenceLevel } from "../models/eft/common/IGlobals"; import { IPmcData } from "../models/eft/common/IPmcData"; -import { Item } from "../models/eft/common/tables/IItem"; -import { IBarterScheme, ITraderAssort, ITraderBase, LoyaltyLevel } from "../models/eft/common/tables/ITrader"; +import { ITraderAssort, ITraderBase, LoyaltyLevel } from "../models/eft/common/tables/ITrader"; import { ITraderConfig } from "../models/spt/config/ITraderConfig"; import { ILogger } from "../models/spt/utils/ILogger"; import { ConfigServer } from "../servers/ConfigServer"; @@ -12,16 +10,12 @@ import { LocalisationService } from "../services/LocalisationService"; import { PlayerService } from "../services/PlayerService"; import { TimeUtil } from "../utils/TimeUtil"; import { HandbookHelper } from "./HandbookHelper"; -import { ItemHelper } from "./ItemHelper"; -import { PaymentHelper } from "./PaymentHelper"; import { ProfileHelper } from "./ProfileHelper"; export declare class TraderHelper { protected logger: ILogger; protected databaseServer: DatabaseServer; protected saveServer: SaveServer; protected profileHelper: ProfileHelper; - protected paymentHelper: PaymentHelper; - protected itemHelper: ItemHelper; protected handbookHelper: HandbookHelper; protected playerService: PlayerService; protected localisationService: LocalisationService; @@ -31,7 +25,7 @@ export declare class TraderHelper { protected traderConfig: ITraderConfig; /** Dictionary of item tpl and the highest trader rouble price */ protected highestTraderPriceItems: Record; - constructor(logger: ILogger, databaseServer: DatabaseServer, saveServer: SaveServer, profileHelper: ProfileHelper, paymentHelper: PaymentHelper, itemHelper: ItemHelper, handbookHelper: HandbookHelper, playerService: PlayerService, localisationService: LocalisationService, fenceService: FenceService, timeUtil: TimeUtil, configServer: ConfigServer); + constructor(logger: ILogger, databaseServer: DatabaseServer, saveServer: SaveServer, profileHelper: ProfileHelper, handbookHelper: HandbookHelper, playerService: PlayerService, localisationService: LocalisationService, fenceService: FenceService, timeUtil: TimeUtil, configServer: ConfigServer); getTrader(traderID: string, sessionID: string): ITraderBase; getTraderAssortsById(traderId: string): ITraderAssort; /** @@ -48,62 +42,6 @@ export declare class TraderHelper { * @param sessionId Session id */ setTraderUnlockedState(traderId: string, status: boolean, sessionId: string): void; - /** - * Get a list of items and their prices from player inventory that can be sold to a trader - * @param traderID trader id being traded with - * @param sessionID session id - * @returns IBarterScheme[][] - */ - getPurchasesData(traderID: string, sessionID: string): Record; - /** - * Should item be skipped when selling to trader according to its sell categories and other checks - * @param pmcData Profile - * @param item Item to be checked is sellable to trader - * @param sellCategory categories trader will buy - * @param traderId Trader item is being checked can be sold to - * @returns true if should NOT be sold to trader - */ - protected isItemUnSellableToTrader(pmcData: IPmcData, item: Item, sellCategory: string[], traderId: string): boolean; - /** - * Check if item has durability so low it precludes it from being sold to the trader (inclusive) - * @param item Item to check durability of - * @param traderId Trader item is sold to - * @returns - */ - protected itemIsBelowSellableDurabilityThreshhold(item: Item, traderId: string): boolean; - /** - * Get the percentage threshold value a trader will buy armor/weapons above - * @param traderId Trader to look up - * @returns percentage - */ - protected getTraderDurabiltyPurchaseThreshold(traderId: string): number; - /** - * Get the price of passed in item and all of its attached children (mods) - * Take into account bonuses/adjustments e.g. discounts - * @param pmcData profile data - * @param item item to calculate price of - * @param buyPriceCoefficient - * @param fenceInfo fence data - * @param traderBase trader details - * @param currencyTpl Currency to get price as - * @returns price of item + children - */ - protected getAdjustedItemPrice(pmcData: IPmcData, item: Item, buyPriceCoefficient: number, fenceInfo: FenceLevel, traderBase: ITraderBase, currencyTpl: string): number; - /** - * Get the raw price of item+child items from handbook without any modification - * @param pmcData profile data - * @param item item to calculate price of - * @returns price as number - */ - protected getRawItemPrice(pmcData: IPmcData, item: Item): number; - /** - * Get discount modifier for desired trader - * @param trader Trader to get discount for - * @param buyPriceCoefficient - * @param fenceInfo fence info, needed if getting fence modifier value - * @returns discount modifier value - */ - protected getTraderDiscount(trader: ITraderBase, buyPriceCoefficient: number, fenceInfo: FenceLevel): number; /** * Add standing to a trader and level them up if exp goes over level threshold * @param sessionId Session id @@ -129,13 +67,6 @@ export declare class TraderHelper { * @returns Time in seconds */ getTraderUpdateSeconds(traderId: string): number; - /** - * check if an item is allowed to be sold to a trader - * @param categoriesTraderBuys array of allowed categories - * @param tplToCheck itemTpl of inventory - * @returns boolean if item can be sold to trader - */ - doesTraderBuyItem(categoriesTraderBuys: string[], tplToCheck: string): boolean; getLoyaltyLevel(traderID: string, pmcData: IPmcData): LoyaltyLevel; /** * Store the purchase of an assort from a trader in the player profile diff --git a/Faupi-MunitionsExpert/server/types/loaders/PostAkiModLoader.d.ts b/Faupi-MunitionsExpert/server/types/loaders/PostAkiModLoader.d.ts index 5df8c6c..848e9f3 100644 --- a/Faupi-MunitionsExpert/server/types/loaders/PostAkiModLoader.d.ts +++ b/Faupi-MunitionsExpert/server/types/loaders/PostAkiModLoader.d.ts @@ -1,15 +1,19 @@ import { DependencyContainer } from "tsyringe"; import { IModLoader } from "../models/spt/mod/IModLoader"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { LocalisationService } from "../services/LocalisationService"; import { VFS } from "../utils/VFS"; import { BundleLoader } from "./BundleLoader"; import { ModTypeCheck } from "./ModTypeCheck"; import { PreAkiModLoader } from "./PreAkiModLoader"; export declare class PostAkiModLoader implements IModLoader { + protected logger: ILogger; protected bundleLoader: BundleLoader; protected vfs: VFS; protected preAkiModLoader: PreAkiModLoader; + protected localisationService: LocalisationService; protected modTypeCheck: ModTypeCheck; - constructor(bundleLoader: BundleLoader, vfs: VFS, preAkiModLoader: PreAkiModLoader, modTypeCheck: ModTypeCheck); + constructor(logger: ILogger, bundleLoader: BundleLoader, vfs: VFS, preAkiModLoader: PreAkiModLoader, localisationService: LocalisationService, modTypeCheck: ModTypeCheck); getModPath(mod: string): string; load(): Promise; protected executeMods(container: DependencyContainer): Promise; diff --git a/Faupi-MunitionsExpert/server/types/loaders/PostDBModLoader.d.ts b/Faupi-MunitionsExpert/server/types/loaders/PostDBModLoader.d.ts index c4cda5c..eef160b 100644 --- a/Faupi-MunitionsExpert/server/types/loaders/PostDBModLoader.d.ts +++ b/Faupi-MunitionsExpert/server/types/loaders/PostDBModLoader.d.ts @@ -1,11 +1,15 @@ import { DependencyContainer } from "tsyringe"; import { OnLoad } from "../di/OnLoad"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { LocalisationService } from "../services/LocalisationService"; import { ModTypeCheck } from "./ModTypeCheck"; import { PreAkiModLoader } from "./PreAkiModLoader"; export declare class PostDBModLoader implements OnLoad { + protected logger: ILogger; protected preAkiModLoader: PreAkiModLoader; + protected localisationService: LocalisationService; protected modTypeCheck: ModTypeCheck; - constructor(preAkiModLoader: PreAkiModLoader, modTypeCheck: ModTypeCheck); + constructor(logger: ILogger, preAkiModLoader: PreAkiModLoader, localisationService: LocalisationService, modTypeCheck: ModTypeCheck); onLoad(): Promise; getRoute(): string; getModPath(mod: string): string; diff --git a/Faupi-MunitionsExpert/server/types/models/eft/common/IGlobals.d.ts b/Faupi-MunitionsExpert/server/types/models/eft/common/IGlobals.d.ts index b5ed401..5790cde 100644 --- a/Faupi-MunitionsExpert/server/types/models/eft/common/IGlobals.d.ts +++ b/Faupi-MunitionsExpert/server/types/models/eft/common/IGlobals.d.ts @@ -70,6 +70,7 @@ export interface Config { EventType: string[]; WalkSpeed: xyz; SprintSpeed: xyz; + SquadSettings: ISquadSettings; SkillEnduranceWeightThreshold: number; TeamSearchingTimeout: number; Insurance: Insurance; @@ -803,6 +804,11 @@ export interface RestrictionsInRaid { TemplateId: string; Value: number; } +export interface ISquadSettings { + CountOfRequestsToOnePlayer: number; + SecondsForExpiredRequest: number; + SendRequestDelaySeconds: number; +} export interface Insurance { MaxStorageTimeInHour: number; } diff --git a/Faupi-MunitionsExpert/server/types/models/eft/common/ILooseLoot.d.ts b/Faupi-MunitionsExpert/server/types/models/eft/common/ILooseLoot.d.ts index 14b795e..572ec69 100644 --- a/Faupi-MunitionsExpert/server/types/models/eft/common/ILooseLoot.d.ts +++ b/Faupi-MunitionsExpert/server/types/models/eft/common/ILooseLoot.d.ts @@ -1,3 +1,4 @@ +import { Item } from "./tables/IItem"; export interface ILooseLoot { spawnpointCount: SpawnpointCount; spawnpointsForced: SpawnpointsForced[]; @@ -24,10 +25,6 @@ export interface SpawnpointTemplate { Root: any; Items: Item[]; } -export interface Item { - _id: string; - _tpl?: string; -} export interface Spawnpoint { locationId: string; probability: number; @@ -40,6 +37,9 @@ export interface Xyz { z: number; } export interface ItemDistribution { - tpl: string; + composedKey: ComposedKey; relativeProbability: number; } +export interface ComposedKey { + key: string; +} diff --git a/Faupi-MunitionsExpert/server/types/models/eft/common/tables/IBotBase.d.ts b/Faupi-MunitionsExpert/server/types/models/eft/common/tables/IBotBase.d.ts index dd7c478..82a925b 100644 --- a/Faupi-MunitionsExpert/server/types/models/eft/common/tables/IBotBase.d.ts +++ b/Faupi-MunitionsExpert/server/types/models/eft/common/tables/IBotBase.d.ts @@ -120,9 +120,7 @@ export interface Inventory { sortingTable: string; questRaidItems: string; questStashItems: string; - fastPanel: FastPanel; -} -export interface FastPanel { + fastPanel: Record; } export interface Skills { Common: Common[]; diff --git a/Faupi-MunitionsExpert/server/types/models/eft/common/tables/IQuest.d.ts b/Faupi-MunitionsExpert/server/types/models/eft/common/tables/IQuest.d.ts index 5c939e1..52968b1 100644 --- a/Faupi-MunitionsExpert/server/types/models/eft/common/tables/IQuest.d.ts +++ b/Faupi-MunitionsExpert/server/types/models/eft/common/tables/IQuest.d.ts @@ -46,7 +46,7 @@ export interface AvailableForProps { parentId: string; isEncoded: boolean; dynamicLocale: boolean; - value?: number; + value?: string | number; compareMethod?: string; visibilityConditions?: VisibilityCondition[]; target?: string | string[]; diff --git a/Faupi-MunitionsExpert/server/types/models/eft/hideout/IHideoutProduction.d.ts b/Faupi-MunitionsExpert/server/types/models/eft/hideout/IHideoutProduction.d.ts index 2367e08..8bed3cc 100644 --- a/Faupi-MunitionsExpert/server/types/models/eft/hideout/IHideoutProduction.d.ts +++ b/Faupi-MunitionsExpert/server/types/models/eft/hideout/IHideoutProduction.d.ts @@ -20,4 +20,5 @@ export interface Requirement { areaType?: number; requiredLevel?: number; resource?: number; + questId?: string; } diff --git a/Faupi-MunitionsExpert/server/types/models/eft/match/IEndOfflineRaidRequestData.d.ts b/Faupi-MunitionsExpert/server/types/models/eft/match/IEndOfflineRaidRequestData.d.ts index 811e9a2..9368c32 100644 --- a/Faupi-MunitionsExpert/server/types/models/eft/match/IEndOfflineRaidRequestData.d.ts +++ b/Faupi-MunitionsExpert/server/types/models/eft/match/IEndOfflineRaidRequestData.d.ts @@ -1,6 +1,6 @@ export interface IEndOfflineRaidRequestData { crc: number; exitStatus: string; - exitName: any; + exitName: string; raidSeconds: number; } diff --git a/Faupi-MunitionsExpert/server/types/models/eft/match/IGetRaidConfigurationRequestData.d.ts b/Faupi-MunitionsExpert/server/types/models/eft/match/IGetRaidConfigurationRequestData.d.ts index cbcc2f6..ed3dfab 100644 --- a/Faupi-MunitionsExpert/server/types/models/eft/match/IGetRaidConfigurationRequestData.d.ts +++ b/Faupi-MunitionsExpert/server/types/models/eft/match/IGetRaidConfigurationRequestData.d.ts @@ -1,4 +1,7 @@ export interface IGetRaidConfigurationRequestData { + keyId: string; + side: string; + location: string; timeVariant: string; raidMode: string; metabolismDisabled: boolean; @@ -6,7 +9,6 @@ export interface IGetRaidConfigurationRequestData { timeAndWeatherSettings: TimeAndWeatherSettings; botSettings: BotSettings; wavesSettings: WavesSettings; - location: string; } export interface TimeAndWeatherSettings { isRandomTime: boolean; diff --git a/Faupi-MunitionsExpert/server/types/models/eft/presetBuild/IPresetBuildActionRequestData.d.ts b/Faupi-MunitionsExpert/server/types/models/eft/presetBuild/IPresetBuildActionRequestData.d.ts index 99c61f1..42549e6 100644 --- a/Faupi-MunitionsExpert/server/types/models/eft/presetBuild/IPresetBuildActionRequestData.d.ts +++ b/Faupi-MunitionsExpert/server/types/models/eft/presetBuild/IPresetBuildActionRequestData.d.ts @@ -1,3 +1,4 @@ +import { Upd } from "../common/tables/IItem"; export interface IPresetBuildActionRequestData { Action: string; id: string; @@ -12,14 +13,3 @@ export interface Item { parentId?: string; slotId?: string; } -export interface Upd { - Repairable: Repairable; - FireMode: FireMode; -} -export interface Repairable { - MaxDurability: number; - Durability: number; -} -export interface FireMode { - FireMode: string; -} diff --git a/Faupi-MunitionsExpert/server/types/models/eft/profile/IGetProfileSettingsRequest.d.ts b/Faupi-MunitionsExpert/server/types/models/eft/profile/IGetProfileSettingsRequest.d.ts new file mode 100644 index 0000000..8168615 --- /dev/null +++ b/Faupi-MunitionsExpert/server/types/models/eft/profile/IGetProfileSettingsRequest.d.ts @@ -0,0 +1,3 @@ +export interface IGetProfileSettingsRequest { + squadInviteRestriction: boolean; +} diff --git a/Faupi-MunitionsExpert/server/types/models/enums/ConfigTypes.d.ts b/Faupi-MunitionsExpert/server/types/models/enums/ConfigTypes.d.ts index 9c48b68..d849010 100644 --- a/Faupi-MunitionsExpert/server/types/models/enums/ConfigTypes.d.ts +++ b/Faupi-MunitionsExpert/server/types/models/enums/ConfigTypes.d.ts @@ -19,5 +19,6 @@ export declare enum ConfigTypes { SCAVCASE = "aki-scavcase", TRADER = "aki-trader", WEATHER = "aki-weather", - SEASONAL_EVENT = "aki-seasonalevents" + SEASONAL_EVENT = "aki-seasonalevents", + LOST_ON_DEATH = "aki-lostondeath" } diff --git a/Faupi-MunitionsExpert/server/types/models/spt/callbacks/ITraderCallbacks.d.ts b/Faupi-MunitionsExpert/server/types/models/spt/callbacks/ITraderCallbacks.d.ts index e0d7d06..b784408 100644 --- a/Faupi-MunitionsExpert/server/types/models/spt/callbacks/ITraderCallbacks.d.ts +++ b/Faupi-MunitionsExpert/server/types/models/spt/callbacks/ITraderCallbacks.d.ts @@ -1,10 +1,9 @@ import { IEmptyRequestData } from "../../eft/common/IEmptyRequestData"; -import { IBarterScheme, ITraderAssort, ITraderBase } from "../../eft/common/tables/ITrader"; +import { ITraderAssort, ITraderBase } from "../../eft/common/tables/ITrader"; import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; export interface ITraderCallbacks { load(): void; getTraderSettings(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; - getProfilePurchases(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData>; getTrader(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; getAssort(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; update(): boolean; diff --git a/Faupi-MunitionsExpert/server/types/models/spt/config/IHttpConfig.d.ts b/Faupi-MunitionsExpert/server/types/models/spt/config/IHttpConfig.d.ts index 3fe4787..c34c11d 100644 --- a/Faupi-MunitionsExpert/server/types/models/spt/config/IHttpConfig.d.ts +++ b/Faupi-MunitionsExpert/server/types/models/spt/config/IHttpConfig.d.ts @@ -4,4 +4,5 @@ export interface IHttpConfig extends IBaseConfig { kind: "aki-http"; ip: string; port: number; + logRequests: boolean; } diff --git a/Faupi-MunitionsExpert/server/types/models/spt/config/ILocationConfig.d.ts b/Faupi-MunitionsExpert/server/types/models/spt/config/ILocationConfig.d.ts index f808ad8..bcd91cc 100644 --- a/Faupi-MunitionsExpert/server/types/models/spt/config/ILocationConfig.d.ts +++ b/Faupi-MunitionsExpert/server/types/models/spt/config/ILocationConfig.d.ts @@ -2,9 +2,9 @@ import { BossLocationSpawn, Wave } from "../../../models/eft/common/ILocationBas import { IBaseConfig } from "./IBaseConfig"; export interface ILocationConfig extends IBaseConfig { kind: "aki-location"; - fixEmptyBotWaves: boolean; - fixRoguesTakingAllSpawnsOnLighthouse: boolean; - lighthouseRogueSpawnTimeSeconds: number; + fixEmptyBotWavesSettings: IFixEmptyBotWavesSettings; + rogueLighthouseSpawnTimeSettings: IRogueLighthouseSpawnTimeSettings; + splitWaveIntoSingleSpawnsSettings: ISplitWaveSettings; looseLootMultiplier: LootMultiplier; staticLootMultiplier: LootMultiplier; customWaves: CustomWaves; @@ -12,6 +12,21 @@ export interface ILocationConfig extends IBaseConfig { openZones: Record; /** Key = map id, value = item tpls that should only have one forced loot spawn position */ forcedLootSingleSpawnById: Record; + /** How many attempts should be taken to fit an item into a container before giving up */ + fitLootIntoContainerAttempts: number; +} +export interface IFixEmptyBotWavesSettings { + enabled: boolean; + ignoreMaps: string[]; +} +export interface IRogueLighthouseSpawnTimeSettings { + enabled: boolean; + waitTimeSeconds: number; +} +export interface ISplitWaveSettings { + enabled: boolean; + ignoreMaps: string[]; + waveSizeThreshold: number; } export interface CustomWaves { boss: Record; diff --git a/Faupi-MunitionsExpert/server/types/models/spt/config/ILostOnDeathConfig.d.ts b/Faupi-MunitionsExpert/server/types/models/spt/config/ILostOnDeathConfig.d.ts new file mode 100644 index 0000000..b557afe --- /dev/null +++ b/Faupi-MunitionsExpert/server/types/models/spt/config/ILostOnDeathConfig.d.ts @@ -0,0 +1,21 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface ILostOnDeathConfig extends IBaseConfig { + kind: "aki-lostondeath"; + equipment: Equipment; + specialSlotItems: boolean; + questItems: boolean; +} +export interface Equipment { + ArmBand: boolean; + Headwear: boolean; + Earpiece: boolean; + FaceCover: boolean; + ArmorVest: boolean; + Eyewear: boolean; + TacticalVest: boolean; + Backpack: boolean; + Holster: boolean; + FirstPrimaryWeapon: boolean; + SecondPrimaryWeapon: boolean; + Scabbard: boolean; +} diff --git a/Faupi-MunitionsExpert/server/types/models/spt/config/IPmcConfig.d.ts b/Faupi-MunitionsExpert/server/types/models/spt/config/IPmcConfig.d.ts index 979122c..87098da 100644 --- a/Faupi-MunitionsExpert/server/types/models/spt/config/IPmcConfig.d.ts +++ b/Faupi-MunitionsExpert/server/types/models/spt/config/IPmcConfig.d.ts @@ -1,5 +1,8 @@ import { MinMax } from "../../common/MinMax"; export interface IPmcConfig { + vestLoot: SlotLootSettings; + pocketLoot: SlotLootSettings; + backpackLoot: SlotLootSettings; dynamicLoot: DynamicLoot; useDifficultyOverride: boolean; difficulty: string; @@ -22,8 +25,11 @@ export interface PmcTypes { usec: string; bear: string; } -export interface DynamicLoot { +export interface SlotLootSettings { whitelist: string[]; blacklist: string[]; moneyStackLimits: Record; } +export interface DynamicLoot { + moneyStackLimits: Record; +} diff --git a/Faupi-MunitionsExpert/server/types/models/spt/config/IQuestConfig.d.ts b/Faupi-MunitionsExpert/server/types/models/spt/config/IQuestConfig.d.ts index 9adfaba..94c00fd 100644 --- a/Faupi-MunitionsExpert/server/types/models/spt/config/IQuestConfig.d.ts +++ b/Faupi-MunitionsExpert/server/types/models/spt/config/IQuestConfig.d.ts @@ -1,3 +1,4 @@ +import { MinMax } from "../../../models/common/MinMax"; import { ELocationName } from "../../enums/ELocationName"; import { IBaseConfig } from "./IBaseConfig"; export interface IQuestConfig extends IBaseConfig { @@ -50,7 +51,7 @@ export interface ITraderWhitelist { export interface IRepeatableQuestTypesConfig { Exploration: IExploration; Completion: ICompletion; - Elimination: IElimination; + Elimination: IEliminationConfig[]; } export interface IExploration { maxExtracts: number; @@ -68,7 +69,8 @@ export interface ICompletion { useWhitelist: boolean; useBlacklist: boolean; } -export interface IElimination { +export interface IEliminationConfig { + levelRange: MinMax; targets: ITarget[]; bodyPartProb: number; bodyParts: IBodyPart[]; @@ -80,11 +82,6 @@ export interface IElimination { maxKills: number; minKills: number; } -export interface IProbabilityObject { - key: string; - relativeProbability: number; - data?: any; -} export interface ITarget extends IProbabilityObject { data: IBossInfo; } @@ -94,3 +91,8 @@ export interface IBossInfo { export interface IBodyPart extends IProbabilityObject { data: string[]; } +export interface IProbabilityObject { + key: string; + relativeProbability: number; + data?: any; +} diff --git a/Faupi-MunitionsExpert/server/types/models/spt/config/IRagfairConfig.d.ts b/Faupi-MunitionsExpert/server/types/models/spt/config/IRagfairConfig.d.ts index 3fa04de..75357d0 100644 --- a/Faupi-MunitionsExpert/server/types/models/spt/config/IRagfairConfig.d.ts +++ b/Faupi-MunitionsExpert/server/types/models/spt/config/IRagfairConfig.d.ts @@ -30,6 +30,8 @@ export interface Reputation { } export interface Dynamic { purchasesAreFoundInRaid: boolean; + /** Use the highest trader price for an offer if its greater than the price in templates/prices.json */ + useTraderPriceForOffersIfHigher: boolean; barter: Barter; offerAdjustment: OfferAdjustment; expiredOfferThreshold: number; diff --git a/Faupi-MunitionsExpert/server/types/models/spt/config/ITraderConfig.d.ts b/Faupi-MunitionsExpert/server/types/models/spt/config/ITraderConfig.d.ts index 56c7d35..832f22a 100644 --- a/Faupi-MunitionsExpert/server/types/models/spt/config/ITraderConfig.d.ts +++ b/Faupi-MunitionsExpert/server/types/models/spt/config/ITraderConfig.d.ts @@ -3,9 +3,8 @@ import { IBaseConfig } from "./IBaseConfig"; export interface ITraderConfig extends IBaseConfig { kind: "aki-trader"; updateTime: UpdateTime[]; + purchasesAreFoundInRaid: boolean; updateTimeDefault: number; - /** What % of max durability an item needs to sell to a trader*/ - durabilityPurchaseThreshhold: Record; traderPriceMultipler: number; persistPurchaseDataInProfile: boolean; fence: FenceConfig; diff --git a/Faupi-MunitionsExpert/server/types/models/spt/mod/NewItemDetails.d.ts b/Faupi-MunitionsExpert/server/types/models/spt/mod/NewItemDetails.d.ts index fc69a06..9e37cc9 100644 --- a/Faupi-MunitionsExpert/server/types/models/spt/mod/NewItemDetails.d.ts +++ b/Faupi-MunitionsExpert/server/types/models/spt/mod/NewItemDetails.d.ts @@ -4,6 +4,8 @@ export declare abstract class NewItemDetailsBase { fleaPriceRoubles: number; /** Price of the item in the handbook */ handbookPriceRoubles: number; + /** Handbook ParentId for the new item */ + handbookParentId: string; /** * A dictionary for locale settings, key = langauge (e.g. en,cn,es-mx,jp,fr) * If a language is not included, the first item in the array will be used in its place diff --git a/Faupi-MunitionsExpert/server/types/services/InsuranceService.d.ts b/Faupi-MunitionsExpert/server/types/services/InsuranceService.d.ts index 886a298..55baa1a 100644 --- a/Faupi-MunitionsExpert/server/types/services/InsuranceService.d.ts +++ b/Faupi-MunitionsExpert/server/types/services/InsuranceService.d.ts @@ -63,8 +63,16 @@ export declare class InsuranceService { * @param offraidData post-raid request object * @param preRaidGear gear player wore prior to raid * @param sessionID Session id + * @param playerDied did the player die in raid + */ + storeLostGear(pmcData: IPmcData, offraidData: ISaveProgressRequestData, preRaidGear: Item[], sessionID: string, playerDied: boolean): void; + /** + * Store insured items on pmc death inside insurance array in player profile + * @param pmcData Player profile + * @param offraidData Player gear post-raid + * @param preRaidGear Player gear before raid + * @param sessionID Session id */ - storeLostGear(pmcData: IPmcData, offraidData: ISaveProgressRequestData, preRaidGear: Item[], sessionID: string): void; storeInsuredItemsForReturn(pmcData: IPmcData, offraidData: ISaveProgressRequestData, preRaidGear: Item[], sessionID: string): void; /** * Add gear item to InsuredItems array in player profile diff --git a/KcY-SeeItemValue/itemValue/Built/KcY-SeeItemValue 1.5.2/bepInEx/plugins/KcY-SeeItemValue.dll b/KcY-SeeItemValue/itemValue/Built/KcY-SeeItemValue 1.5.3/bepInEx/plugins/KcY-SeeItemValue.dll similarity index 96% rename from KcY-SeeItemValue/itemValue/Built/KcY-SeeItemValue 1.5.2/bepInEx/plugins/KcY-SeeItemValue.dll rename to KcY-SeeItemValue/itemValue/Built/KcY-SeeItemValue 1.5.3/bepInEx/plugins/KcY-SeeItemValue.dll index 293a2ed..c5bfcd2 100644 Binary files a/KcY-SeeItemValue/itemValue/Built/KcY-SeeItemValue 1.5.2/bepInEx/plugins/KcY-SeeItemValue.dll and b/KcY-SeeItemValue/itemValue/Built/KcY-SeeItemValue 1.5.3/bepInEx/plugins/KcY-SeeItemValue.dll differ diff --git a/KcY-SeeItemValue/itemValue/Built/KcY-SeeItemValue 1.5.2/user/mods/KcY-SeeItemValue 1.5.2/LICENSE.txt b/KcY-SeeItemValue/itemValue/Built/KcY-SeeItemValue 1.5.3/user/mods/KcY-SeeItemValue 1.5.3/LICENSE.txt similarity index 100% rename from KcY-SeeItemValue/itemValue/Built/KcY-SeeItemValue 1.5.2/user/mods/KcY-SeeItemValue 1.5.2/LICENSE.txt rename to KcY-SeeItemValue/itemValue/Built/KcY-SeeItemValue 1.5.3/user/mods/KcY-SeeItemValue 1.5.3/LICENSE.txt diff --git a/KcY-SeeItemValue/itemValue/Built/KcY-SeeItemValue 1.5.2/user/mods/KcY-SeeItemValue 1.5.2/package.json b/KcY-SeeItemValue/itemValue/Built/KcY-SeeItemValue 1.5.3/user/mods/KcY-SeeItemValue 1.5.3/package.json similarity index 91% rename from KcY-SeeItemValue/itemValue/Built/KcY-SeeItemValue 1.5.2/user/mods/KcY-SeeItemValue 1.5.2/package.json rename to KcY-SeeItemValue/itemValue/Built/KcY-SeeItemValue 1.5.3/user/mods/KcY-SeeItemValue 1.5.3/package.json index 2313345..4d2bd28 100644 --- a/KcY-SeeItemValue/itemValue/Built/KcY-SeeItemValue 1.5.2/user/mods/KcY-SeeItemValue 1.5.2/package.json +++ b/KcY-SeeItemValue/itemValue/Built/KcY-SeeItemValue 1.5.3/user/mods/KcY-SeeItemValue 1.5.3/package.json @@ -1,10 +1,10 @@ { "name": "SeeItemValue", "author": "KcY", - "version": "1.5.2", + "version": "1.5.3", "license": "NCSA Open Source", "main": "src/mod.js", - "akiVersion": "3.5.0", + "akiVersion": "3.5.2", "UpdatedBy": "CWX", "scripts": { "setup": "npm i", diff --git a/KcY-SeeItemValue/itemValue/Built/KcY-SeeItemValue 1.5.2/user/mods/KcY-SeeItemValue 1.5.2/src/config.json b/KcY-SeeItemValue/itemValue/Built/KcY-SeeItemValue 1.5.3/user/mods/KcY-SeeItemValue 1.5.3/src/config.json similarity index 100% rename from KcY-SeeItemValue/itemValue/Built/KcY-SeeItemValue 1.5.2/user/mods/KcY-SeeItemValue 1.5.2/src/config.json rename to KcY-SeeItemValue/itemValue/Built/KcY-SeeItemValue 1.5.3/user/mods/KcY-SeeItemValue 1.5.3/src/config.json diff --git a/KcY-SeeItemValue/itemValue/Built/KcY-SeeItemValue 1.5.2/user/mods/KcY-SeeItemValue 1.5.2/src/mod.ts b/KcY-SeeItemValue/itemValue/Built/KcY-SeeItemValue 1.5.3/user/mods/KcY-SeeItemValue 1.5.3/src/mod.ts similarity index 100% rename from KcY-SeeItemValue/itemValue/Built/KcY-SeeItemValue 1.5.2/user/mods/KcY-SeeItemValue 1.5.2/src/mod.ts rename to KcY-SeeItemValue/itemValue/Built/KcY-SeeItemValue 1.5.3/user/mods/KcY-SeeItemValue 1.5.3/src/mod.ts diff --git a/KcY-SeeItemValue/itemValue/Program.cs b/KcY-SeeItemValue/itemValue/Program.cs index 0cc32e8..0f6424f 100644 --- a/KcY-SeeItemValue/itemValue/Program.cs +++ b/KcY-SeeItemValue/itemValue/Program.cs @@ -2,7 +2,7 @@ namespace itemValueMod { - [BepInPlugin("com.KcY.SeeItemValue", "KcY-SeeItemValue", "1.5.2")] + [BepInPlugin("com.KcY.SeeItemValue", "KcY-SeeItemValue", "1.5.3")] public class Plugin : BaseUnityPlugin { private void Awake() diff --git a/KcY-SeeItemValue/itemValue/itemValue.sln.DotSettings.user b/KcY-SeeItemValue/itemValue/itemValue.sln.DotSettings.user new file mode 100644 index 0000000..712b6a2 --- /dev/null +++ b/KcY-SeeItemValue/itemValue/itemValue.sln.DotSettings.user @@ -0,0 +1,11 @@ + + True + True + True + True + True + True + True + True + True + True \ No newline at end of file diff --git a/KcY-SeeItemValue/itemValue/itemValueMod.cs b/KcY-SeeItemValue/itemValue/itemValueMod.cs index 0746318..3100f1a 100644 --- a/KcY-SeeItemValue/itemValue/itemValueMod.cs +++ b/KcY-SeeItemValue/itemValue/itemValueMod.cs @@ -196,12 +196,12 @@ namespace itemValueMod var foodDrink = item.GetItemComponent(); if (foodDrink != null && foodDrink.HpPercent != 0) { - GInterface233 ginterface233_0 = (GInterface233)foodDrink.GetType().GetField("ginterface233_0", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(foodDrink); + GInterface234 ginterface234_0 = (GInterface234)foodDrink.GetType().GetField("ginterface234_0", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(foodDrink); DebugMode($" foodDrink Check - HpPercent is: {foodDrink.HpPercent}"); - DebugMode($" foodDrink Check - MaxResource is: {ginterface233_0.MaxResource}"); + DebugMode($" foodDrink Check - MaxResource is: {ginterface234_0.MaxResource}"); - editedPrice *= foodDrink.HpPercent / ginterface233_0.MaxResource; + editedPrice *= foodDrink.HpPercent / ginterface234_0.MaxResource; } DebugMode($" After foodDrink Check - price is: {editedPrice}"); @@ -209,7 +209,7 @@ namespace itemValueMod var keys = item.GetItemComponent(); if (keys != null) { - GInterface237 template = (GInterface237)keys.GetType().GetField("Template", BindingFlags.Public | BindingFlags.Instance).GetValue(keys); + GInterface238 template = (GInterface238)keys.GetType().GetField("Template", BindingFlags.Public | BindingFlags.Instance).GetValue(keys); if (keys.NumberOfUsages > 0) { diff --git a/KcY-SeeItemValue/itemValue/itemValueMod.csproj b/KcY-SeeItemValue/itemValue/itemValueMod.csproj index c874547..02b2e06 100644 --- a/KcY-SeeItemValue/itemValue/itemValueMod.csproj +++ b/KcY-SeeItemValue/itemValue/itemValueMod.csproj @@ -8,35 +8,35 @@ - ..\..\Shared\BepInEx\0Harmony.dll + ..\..\..\Shared\0Harmony.dll - ..\..\Shared\AKI\Aki.Common.dll + ..\..\..\Shared\Aki.Common.dll - ..\..\Shared\AKI\Aki.Reflection.dll + ..\..\..\Shared\Aki.Reflection.dll - ..\..\Shared\EFT\Assembly-CSharp.dll + ..\..\..\Shared\Assembly-CSharp.dll - ..\..\Shared\BepInEx\BepInEx.dll + ..\..\..\Shared\BepInEx.dll - ..\..\Shared\EFT\Comfort.dll + ..\..\..\Shared\Comfort.dll - ..\..\Shared\EFT\ItemComponent.Types.dll + ..\..\..\Shared\ItemComponent.Types.dll - ..\..\Shared\EFT\Newtonsoft.Json.dll + ..\..\..\Shared\Newtonsoft.Json.dll - ..\..\Shared\EFT\UnityEngine.dll + ..\..\..\Shared\UnityEngine.dll - ..\..\Shared\EFT\UnityEngine.CoreModule.dll + ..\..\..\Shared\UnityEngine.CoreModule.dll diff --git a/KcY-SeeItemValue/itemValue/server/dist/package.json b/KcY-SeeItemValue/itemValue/server/dist/package.json index 2313345..4d2bd28 100644 --- a/KcY-SeeItemValue/itemValue/server/dist/package.json +++ b/KcY-SeeItemValue/itemValue/server/dist/package.json @@ -1,10 +1,10 @@ { "name": "SeeItemValue", "author": "KcY", - "version": "1.5.2", + "version": "1.5.3", "license": "NCSA Open Source", "main": "src/mod.js", - "akiVersion": "3.5.0", + "akiVersion": "3.5.2", "UpdatedBy": "CWX", "scripts": { "setup": "npm i", diff --git a/KcY-SeeItemValue/itemValue/server/package.json b/KcY-SeeItemValue/itemValue/server/package.json index 2313345..4d2bd28 100644 --- a/KcY-SeeItemValue/itemValue/server/package.json +++ b/KcY-SeeItemValue/itemValue/server/package.json @@ -1,10 +1,10 @@ { "name": "SeeItemValue", "author": "KcY", - "version": "1.5.2", + "version": "1.5.3", "license": "NCSA Open Source", "main": "src/mod.js", - "akiVersion": "3.5.0", + "akiVersion": "3.5.2", "UpdatedBy": "CWX", "scripts": { "setup": "npm i", diff --git a/KcY-SeeItemValue/itemValue/server/types/callbacks/GameCallbacks.d.ts b/KcY-SeeItemValue/itemValue/server/types/callbacks/GameCallbacks.d.ts index 3a6b7e6..30cf074 100644 --- a/KcY-SeeItemValue/itemValue/server/types/callbacks/GameCallbacks.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/callbacks/GameCallbacks.d.ts @@ -39,6 +39,7 @@ declare class GameCallbacks { */ getGameConfig(url: string, info: IGameEmptyCrcRequestData, sessionID: string): IGetBodyResponseData; getServer(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getCurrentGroup(url: string, info: IEmptyRequestData, sessionID: string): any; validateGameVersion(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; /** * Handle client/game/keepalive diff --git a/KcY-SeeItemValue/itemValue/server/types/callbacks/ProfileCallbacks.d.ts b/KcY-SeeItemValue/itemValue/server/types/callbacks/ProfileCallbacks.d.ts index 183bb0a..9a5848e 100644 --- a/KcY-SeeItemValue/itemValue/server/types/callbacks/ProfileCallbacks.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/callbacks/ProfileCallbacks.d.ts @@ -5,6 +5,7 @@ import { IGetBodyResponseData } from "../models/eft/httpResponse/IGetBodyRespons import { INullResponseData } from "../models/eft/httpResponse/INullResponseData"; import { IGetMiniProfileRequestData } from "../models/eft/launcher/IGetMiniProfileRequestData"; import { GetProfileStatusResponseData } from "../models/eft/profile/GetProfileStatusResponseData"; +import { IGetProfileSettingsRequest } from "../models/eft/profile/IGetProfileSettingsRequest"; import { IProfileChangeNicknameRequestData } from "../models/eft/profile/IProfileChangeNicknameRequestData"; import { IProfileChangeVoiceRequestData } from "../models/eft/profile/IProfileChangeVoiceRequestData"; import { IProfileCreateRequestData } from "../models/eft/profile/IProfileCreateRequestData"; @@ -64,6 +65,7 @@ export declare class ProfileCallbacks { * @returns */ getProfileStatus(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; + getProfileSettings(url: string, info: IGetProfileSettingsRequest, sessionId: string): IGetBodyResponseData; searchFriend(url: string, info: ISearchFriendRequestData, sessionID: string): IGetBodyResponseData; getMiniProfile(url: string, info: IGetMiniProfileRequestData, sessionID: string): string; getAllMiniProfiles(url: string, info: any, sessionID: string): string; diff --git a/KcY-SeeItemValue/itemValue/server/types/callbacks/TraderCallbacks.d.ts b/KcY-SeeItemValue/itemValue/server/types/callbacks/TraderCallbacks.d.ts index 8df1049..1e75add 100644 --- a/KcY-SeeItemValue/itemValue/server/types/callbacks/TraderCallbacks.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/callbacks/TraderCallbacks.d.ts @@ -2,7 +2,7 @@ import { OnLoad } from "../di/OnLoad"; import { OnUpdate } from "../di/OnUpdate"; import { TraderController } from "../controllers/TraderController"; import { IEmptyRequestData } from "../models/eft/common/IEmptyRequestData"; -import { IBarterScheme, ITraderAssort, ITraderBase } from "../models/eft/common/tables/ITrader"; +import { ITraderAssort, ITraderBase } from "../models/eft/common/tables/ITrader"; import { IGetBodyResponseData } from "../models/eft/httpResponse/IGetBodyResponseData"; import { HttpResponseUtil } from "../utils/HttpResponseUtil"; export declare class TraderCallbacks implements OnLoad, OnUpdate { @@ -13,11 +13,6 @@ export declare class TraderCallbacks implements OnLoad, OnUpdate { onUpdate(): Promise; getRoute(): string; getTraderSettings(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; - /** - * Handle client/trading/api/getUserAssortPrice/trader - * @returns - */ - getProfilePurchases(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData>; getTrader(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; getAssort(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; } diff --git a/KcY-SeeItemValue/itemValue/server/types/context/ApplicationContext.d.ts b/KcY-SeeItemValue/itemValue/server/types/context/ApplicationContext.d.ts index 28bbdf7..0a81be0 100644 --- a/KcY-SeeItemValue/itemValue/server/types/context/ApplicationContext.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/context/ApplicationContext.d.ts @@ -8,6 +8,8 @@ export declare class ApplicationContext { * * const registerPlayerInfo = this.applicationContext.getLatestValue(ContextVariableType.REGISTER_PLAYER_REQUEST).getValue(); * + * const activePlayerSessionId = this.applicationContext.getLatestValue(ContextVariableType.SESSION_ID).getValue(); + * * const matchInfo = this.applicationContext.getLatestValue(ContextVariableType.MATCH_INFO).getValue(); * @param type * @returns diff --git a/KcY-SeeItemValue/itemValue/server/types/controllers/GameController.d.ts b/KcY-SeeItemValue/itemValue/server/types/controllers/GameController.d.ts index 44264dc..e47d5fa 100644 --- a/KcY-SeeItemValue/itemValue/server/types/controllers/GameController.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/controllers/GameController.d.ts @@ -20,10 +20,12 @@ import { LocalisationService } from "../services/LocalisationService"; import { OpenZoneService } from "../services/OpenZoneService"; import { ProfileFixerService } from "../services/ProfileFixerService"; import { SeasonalEventService } from "../services/SeasonalEventService"; +import { JsonUtil } from "../utils/JsonUtil"; import { TimeUtil } from "../utils/TimeUtil"; export declare class GameController { protected logger: ILogger; protected databaseServer: DatabaseServer; + protected jsonUtil: JsonUtil; protected timeUtil: TimeUtil; protected preAkiModLoader: PreAkiModLoader; protected httpServerHelper: HttpServerHelper; @@ -39,7 +41,7 @@ export declare class GameController { protected httpConfig: IHttpConfig; protected coreConfig: ICoreConfig; protected locationConfig: ILocationConfig; - constructor(logger: ILogger, databaseServer: DatabaseServer, timeUtil: TimeUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, applicationContext: ApplicationContext, configServer: ConfigServer); + constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, applicationContext: ApplicationContext, configServer: ConfigServer); gameStart(_url: string, _info: IEmptyRequestData, sessionID: string, startTimeStampMS: number): void; /** * When player logs in, iterate over all active effects and reduce timer @@ -55,6 +57,10 @@ export declare class GameController { * Make Rogues spawn later to allow for scavs to spawn first instead of rogues filling up all spawn positions */ protected fixRoguesSpawningInstantlyOnLighthouse(): void; + /** + * Find and split waves with large numbers of bots into smaller waves - BSG appears to reduce the size of these waves to one bot when they're waiting to spawn for too long + */ + protected splitBotWavesIntoSingleWaves(): void; /** * Get a list of installed mods and save their details to the profile being used * @param fullProfile Profile to add mod details to @@ -76,5 +82,6 @@ export declare class GameController { protected logProfileDetails(fullProfile: IAkiProfile): void; getGameConfig(sessionID: string): IGameConfigResponse; getServer(): IServerDetails[]; + getCurrentGroup(sessionId: any): any; getValidGameVersion(): ICheckVersionResponse; } diff --git a/KcY-SeeItemValue/itemValue/server/types/controllers/InraidController.d.ts b/KcY-SeeItemValue/itemValue/server/types/controllers/InraidController.d.ts index f954eff..4b0c21b 100644 --- a/KcY-SeeItemValue/itemValue/server/types/controllers/InraidController.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/controllers/InraidController.d.ts @@ -61,18 +61,18 @@ export declare class InraidController { */ protected savePmcProgress(sessionID: string, offraidData: ISaveProgressRequestData): void; /** - * Make changes to pmc profile after they left raid dead, - * alter bodypart hp, handle insurance, delete inventory items, remove carried quest items - * @param postRaidSaveRequest post-raid save request - * @param pmcData pmc profile - * @param insuranceEnabled is insurance enabled - * @param preRaidGear gear player had before raid + * Make changes to pmc profile after they've died in raid, + * Alter bodypart hp, handle insurance, delete inventory items, remove carried quest items + * @param postRaidSaveRequest Post-raid save request + * @param pmcData Pmc profile + * @param insuranceEnabled Is insurance enabled + * @param preRaidGear Gear player had before raid * @param sessionID Session id * @returns Updated profile object */ protected performPostRaidActionsWhenDead(postRaidSaveRequest: ISaveProgressRequestData, pmcData: IPmcData, insuranceEnabled: boolean, preRaidGear: Item[], sessionID: string): IPmcData; /** - * Adjust player characters bodypart hp if they left raid early + * Adjust player characters bodypart hp post-raid * @param postRaidSaveRequest post raid data * @param pmcData player profile */ diff --git a/KcY-SeeItemValue/itemValue/server/types/controllers/InventoryController.d.ts b/KcY-SeeItemValue/itemValue/server/types/controllers/InventoryController.d.ts index 129ede3..53bb017 100644 --- a/KcY-SeeItemValue/itemValue/server/types/controllers/InventoryController.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/controllers/InventoryController.d.ts @@ -112,7 +112,14 @@ export declare class InventoryController { * @returns client response object */ tagItem(pmcData: IPmcData, body: IInventoryTagRequestData, sessionID: string): IItemEventRouterResponse; - bindItem(pmcData: IPmcData, body: IInventoryBindRequestData, sessionID: string): IItemEventRouterResponse; + /** + * Bind an inventory item to the quick access menu at bottom of player screen + * @param pmcData Player profile + * @param bindRequest Reqeust object + * @param sessionID Session id + * @returns IItemEventRouterResponse + */ + bindItem(pmcData: IPmcData, bindRequest: IInventoryBindRequestData, sessionID: string): IItemEventRouterResponse; /** * Handles examining an item * @param pmcData player profile @@ -137,9 +144,36 @@ export declare class InventoryController { * @returns IItemEventRouterResponse */ sortInventory(pmcData: IPmcData, request: IInventorySortRequestData, sessionID: string): IItemEventRouterResponse; - createMapMarker(pmcData: IPmcData, body: IInventoryCreateMarkerRequestData, sessionID: string): IItemEventRouterResponse; - deleteMapMarker(pmcData: IPmcData, body: IInventoryDeleteMarkerRequestData, sessionID: string): IItemEventRouterResponse; - editMapMarker(pmcData: IPmcData, body: IInventoryEditMarkerRequestData, sessionID: string): IItemEventRouterResponse; + /** + * Add note to a map + * @param pmcData Player profile + * @param request Add marker request + * @param sessionID Session id + * @returns IItemEventRouterResponse + */ + createMapMarker(pmcData: IPmcData, request: IInventoryCreateMarkerRequestData, sessionID: string): IItemEventRouterResponse; + /** + * Delete a map marker + * @param pmcData Player profile + * @param request Delete marker request + * @param sessionID Session id + * @returns IItemEventRouterResponse + */ + deleteMapMarker(pmcData: IPmcData, request: IInventoryDeleteMarkerRequestData, sessionID: string): IItemEventRouterResponse; + /** + * Edit an existing map marker + * @param pmcData Player profile + * @param request Edit marker request + * @param sessionID Session id + * @returns IItemEventRouterResponse + */ + editMapMarker(pmcData: IPmcData, request: IInventoryEditMarkerRequestData, sessionID: string): IItemEventRouterResponse; + /** + * Strip out characters from note string that are not: letter/numbers/unicode/spaces + * @param mapNoteText Marker text to sanitise + * @returns Sanitised map marker text + */ + protected sanitiseMapMarkerText(mapNoteText: string): string; /** * Handle event fired when a container is unpacked (currently only the halloween pumpkin) * @param pmcData Profile data diff --git a/KcY-SeeItemValue/itemValue/server/types/controllers/ProfileController.d.ts b/KcY-SeeItemValue/itemValue/server/types/controllers/ProfileController.d.ts index e76785a..9496013 100644 --- a/KcY-SeeItemValue/itemValue/server/types/controllers/ProfileController.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/controllers/ProfileController.d.ts @@ -1,4 +1,5 @@ import { PlayerScavGenerator } from "../generators/PlayerScavGenerator"; +import { DialogueHelper } from "../helpers/DialogueHelper"; import { ItemHelper } from "../helpers/ItemHelper"; import { ProfileHelper } from "../helpers/ProfileHelper"; import { QuestHelper } from "../helpers/QuestHelper"; @@ -11,6 +12,7 @@ import { IProfileCreateRequestData } from "../models/eft/profile/IProfileCreateR import { ISearchFriendRequestData } from "../models/eft/profile/ISearchFriendRequestData"; import { ISearchFriendResponse } from "../models/eft/profile/ISearchFriendResponse"; import { IValidateNicknameRequestData } from "../models/eft/profile/IValidateNicknameRequestData"; +import { EventOutputHolder } from "../routers/EventOutputHolder"; import { DatabaseServer } from "../servers/DatabaseServer"; import { SaveServer } from "../servers/SaveServer"; import { ProfileFixerService } from "../services/ProfileFixerService"; @@ -24,10 +26,12 @@ export declare class ProfileController { protected itemHelper: ItemHelper; protected profileFixerService: ProfileFixerService; protected playerScavGenerator: PlayerScavGenerator; + protected eventOutputHolder: EventOutputHolder; protected traderHelper: TraderHelper; + protected dialogueHelper: DialogueHelper; protected questHelper: QuestHelper; protected profileHelper: ProfileHelper; - constructor(hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, databaseServer: DatabaseServer, itemHelper: ItemHelper, profileFixerService: ProfileFixerService, playerScavGenerator: PlayerScavGenerator, traderHelper: TraderHelper, questHelper: QuestHelper, profileHelper: ProfileHelper); + constructor(hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, databaseServer: DatabaseServer, itemHelper: ItemHelper, profileFixerService: ProfileFixerService, playerScavGenerator: PlayerScavGenerator, eventOutputHolder: EventOutputHolder, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, questHelper: QuestHelper, profileHelper: ProfileHelper); getMiniProfiles(): IMiniProfile[]; getMiniProfile(sessionID: string): any; getCompleteProfile(sessionID: string): IPmcData[]; diff --git a/KcY-SeeItemValue/itemValue/server/types/controllers/QuestController.d.ts b/KcY-SeeItemValue/itemValue/server/types/controllers/QuestController.d.ts index fe1754d..7e4bd69 100644 --- a/KcY-SeeItemValue/itemValue/server/types/controllers/QuestController.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/controllers/QuestController.d.ts @@ -60,13 +60,6 @@ export declare class QuestController { * @returns client response */ acceptQuest(pmcData: IPmcData, acceptedQuest: IAcceptQuestRequestData, sessionID: string): IItemEventRouterResponse; - /** - * Get a quests startedMessageText key from db, if no startedMessageText key found, use description key instead - * @param startedMessageTextId startedMessageText property from IQuest - * @param questDescriptionId description property from IQuest - * @returns message id - */ - protected getMessageIdForQuestStart(startedMessageTextId: string, questDescriptionId: string): string; /** * Handle the client accepting a repeatable quest and starting it * Send starting rewards if any to player and @@ -123,7 +116,14 @@ export declare class QuestController { * @param questsToFail quests to fail */ protected failQuests(sessionID: string, pmcData: IPmcData, questsToFail: IQuest[]): void; - handoverQuest(pmcData: IPmcData, body: IHandoverQuestRequestData, sessionID: string): IItemEventRouterResponse; + /** + * + * @param pmcData Player profile + * @param handoverQuestRequest handover item request + * @param sessionID Session id + * @returns IItemEventRouterResponse + */ + handoverQuest(pmcData: IPmcData, handoverQuestRequest: IHandoverQuestRequestData, sessionID: string): IItemEventRouterResponse; /** * Increment a backend counter stored value by an amount, * Create counter if it does not exist diff --git a/KcY-SeeItemValue/itemValue/server/types/controllers/RepeatableQuestController.d.ts b/KcY-SeeItemValue/itemValue/server/types/controllers/RepeatableQuestController.d.ts index dd8dc40..171062d 100644 --- a/KcY-SeeItemValue/itemValue/server/types/controllers/RepeatableQuestController.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/controllers/RepeatableQuestController.d.ts @@ -12,7 +12,7 @@ import { ITemplateItem } from "../models/eft/common/tables/ITemplateItem"; import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; import { IRepeatableQuestChangeRequest } from "../models/eft/quests/IRepeatableQuestChangeRequest"; import { ELocationName } from "../models/enums/ELocationName"; -import { IQuestConfig, IRepeatableQuestConfig } from "../models/spt/config/IQuestConfig"; +import { IEliminationConfig, IQuestConfig, IRepeatableQuestConfig } from "../models/spt/config/IQuestConfig"; import { ILogger } from "../models/spt/utils/ILogger"; import { EventOutputHolder } from "../routers/EventOutputHolder"; import { ConfigServer } from "../servers/ConfigServer"; @@ -159,7 +159,14 @@ export declare class RepeatableQuestController { */ generateEliminationQuest(pmcLevel: number, traderId: string, questTypePool: IQuestTypePool, repeatableConfig: IRepeatableQuestConfig): IElimination; /** - * Cpnvert a location into an quest code can read (e.g. factory4_day into 55f2d3fd4bdc2d5f408b4567) + * Get the relevant elimination config based on the current players PMC level + * @param pmcLevel Level of PMC character + * @param repeatableConfig Main repeatable config + * @returns IEliminationConfig + */ + protected getEliminationConfigByPmcLevel(pmcLevel: number, repeatableConfig: IRepeatableQuestConfig): IEliminationConfig; + /** + * Convert a location into an quest code can read (e.g. factory4_day into 55f2d3fd4bdc2d5f408b4567) * @param locationKey e.g factory4_day * @returns guid */ @@ -203,10 +210,11 @@ export declare class RepeatableQuestController { * Used to create a quest pool during each cycle of repeatable quest generation. The pool will be subsequently * narrowed down during quest generation to avoid duplicate quests. Like duplicate extractions or elimination quests * where you have to e.g. kill scavs in same locations. - * - * @returns {object} the quest pool + * @param repeatableConfig main repeatable quest config + * @param pmcLevel level of pmc generating quest pool + * @returns IQuestTypePool */ - generateQuestPool(repeatableConfig: IRepeatableQuestConfig): IQuestTypePool; + generateQuestPool(repeatableConfig: IRepeatableQuestConfig, pmcLevel: number): IQuestTypePool; /** * Generate the reward for a mission. A reward can consist of * - Experience diff --git a/KcY-SeeItemValue/itemValue/server/types/controllers/TradeController.d.ts b/KcY-SeeItemValue/itemValue/server/types/controllers/TradeController.d.ts index dc7de19..8a0630b 100644 --- a/KcY-SeeItemValue/itemValue/server/types/controllers/TradeController.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/controllers/TradeController.d.ts @@ -7,6 +7,7 @@ import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRout import { IProcessBaseTradeRequestData } from "../models/eft/trade/IProcessBaseTradeRequestData"; import { IProcessRagfairTradeRequestData } from "../models/eft/trade/IProcessRagfairTradeRequestData"; import { IRagfairConfig } from "../models/spt/config/IRagfairConfig"; +import { ITraderConfig } from "../models/spt/config/ITraderConfig"; import { ILogger } from "../models/spt/utils/ILogger"; import { EventOutputHolder } from "../routers/EventOutputHolder"; import { ConfigServer } from "../servers/ConfigServer"; @@ -24,8 +25,10 @@ declare class TradeController { protected localisationService: LocalisationService; protected configServer: ConfigServer; protected ragfairConfig: IRagfairConfig; + protected traderConfig: ITraderConfig; constructor(logger: ILogger, eventOutputHolder: EventOutputHolder, tradeHelper: TradeHelper, itemHelper: ItemHelper, profileHelper: ProfileHelper, ragfairServer: RagfairServer, httpResponse: HttpResponseUtil, localisationService: LocalisationService, configServer: ConfigServer); - confirmTrading(pmcData: IPmcData, body: IProcessBaseTradeRequestData, sessionID: string, foundInRaid?: boolean, upd?: Upd): IItemEventRouterResponse; + confirmTrading(pmcData: IPmcData, request: IProcessBaseTradeRequestData, sessionID: string): IItemEventRouterResponse; confirmRagfairTrading(pmcData: IPmcData, body: IProcessRagfairTradeRequestData, sessionID: string): IItemEventRouterResponse; + protected confirmTradingInternal(pmcData: IPmcData, body: IProcessBaseTradeRequestData, sessionID: string, foundInRaid?: boolean, upd?: Upd): IItemEventRouterResponse; } export { TradeController }; diff --git a/KcY-SeeItemValue/itemValue/server/types/controllers/TraderController.d.ts b/KcY-SeeItemValue/itemValue/server/types/controllers/TraderController.d.ts index b67aec9..007901b 100644 --- a/KcY-SeeItemValue/itemValue/server/types/controllers/TraderController.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/controllers/TraderController.d.ts @@ -2,27 +2,25 @@ import { FenceBaseAssortGenerator } from "../generators/FenceBaseAssortGenerator import { ProfileHelper } from "../helpers/ProfileHelper"; import { TraderAssortHelper } from "../helpers/TraderAssortHelper"; import { TraderHelper } from "../helpers/TraderHelper"; -import { IBarterScheme, ITraderAssort, ITraderBase } from "../models/eft/common/tables/ITrader"; +import { ITraderAssort, ITraderBase } from "../models/eft/common/tables/ITrader"; import { ILogger } from "../models/spt/utils/ILogger"; import { DatabaseServer } from "../servers/DatabaseServer"; import { FenceService } from "../services/FenceService"; import { TraderAssortService } from "../services/TraderAssortService"; import { TraderPurchasePersisterService } from "../services/TraderPurchasePersisterService"; import { JsonUtil } from "../utils/JsonUtil"; -import { TimeUtil } from "../utils/TimeUtil"; export declare class TraderController { protected logger: ILogger; protected databaseServer: DatabaseServer; protected traderAssortHelper: TraderAssortHelper; protected profileHelper: ProfileHelper; protected traderHelper: TraderHelper; - protected timeUtil: TimeUtil; protected traderAssortService: TraderAssortService; protected traderPurchasePersisterService: TraderPurchasePersisterService; protected fenceService: FenceService; protected fenceBaseAssortGenerator: FenceBaseAssortGenerator; protected jsonUtil: JsonUtil; - constructor(logger: ILogger, databaseServer: DatabaseServer, traderAssortHelper: TraderAssortHelper, profileHelper: ProfileHelper, traderHelper: TraderHelper, timeUtil: TimeUtil, traderAssortService: TraderAssortService, traderPurchasePersisterService: TraderPurchasePersisterService, fenceService: FenceService, fenceBaseAssortGenerator: FenceBaseAssortGenerator, jsonUtil: JsonUtil); + constructor(logger: ILogger, databaseServer: DatabaseServer, traderAssortHelper: TraderAssortHelper, profileHelper: ProfileHelper, traderHelper: TraderHelper, traderAssortService: TraderAssortService, traderPurchasePersisterService: TraderPurchasePersisterService, fenceService: FenceService, fenceBaseAssortGenerator: FenceBaseAssortGenerator, jsonUtil: JsonUtil); /** * Runs when onLoad event is fired * Iterate over traders, ensure an unmolested copy of their assorts is stored in traderAssortService @@ -42,7 +40,13 @@ export declare class TraderController { * @returns array if ITraderBase objects */ getAllTraders(sessionID: string): ITraderBase[]; + /** + * Order traders by their traderId (Ttid) + * @param traderA First trader to compare + * @param traderB Second trader to compare + * @returns 1,-1 or 0 + */ + protected sortByTraderId(traderA: ITraderBase, traderB: ITraderBase): number; getTrader(sessionID: string, traderID: string): ITraderBase; getAssort(sessionId: string, traderId: string): ITraderAssort; - getPurchasesData(sessionID: string, traderID: string): Record; } diff --git a/KcY-SeeItemValue/itemValue/server/types/generators/BotEquipmentModGenerator.d.ts b/KcY-SeeItemValue/itemValue/server/types/generators/BotEquipmentModGenerator.d.ts index 6703a36..4a8581c 100644 --- a/KcY-SeeItemValue/itemValue/server/types/generators/BotEquipmentModGenerator.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/generators/BotEquipmentModGenerator.d.ts @@ -14,6 +14,7 @@ import { DatabaseServer } from "../servers/DatabaseServer"; import { BotEquipmentFilterService } from "../services/BotEquipmentFilterService"; import { BotEquipmentModPoolService } from "../services/BotEquipmentModPoolService"; import { BotModLimits, BotWeaponModLimitService } from "../services/BotWeaponModLimitService"; +import { ItemBaseClassService } from "../services/ItemBaseClassService"; import { ItemFilterService } from "../services/ItemFilterService"; import { LocalisationService } from "../services/LocalisationService"; import { HashUtil } from "../utils/HashUtil"; @@ -28,6 +29,7 @@ export declare class BotEquipmentModGenerator { protected databaseServer: DatabaseServer; protected itemHelper: ItemHelper; protected botEquipmentFilterService: BotEquipmentFilterService; + protected itemBaseClassService: ItemBaseClassService; protected itemFilterService: ItemFilterService; protected profileHelper: ProfileHelper; protected botWeaponModLimitService: BotWeaponModLimitService; @@ -38,7 +40,7 @@ export declare class BotEquipmentModGenerator { protected botEquipmentModPoolService: BotEquipmentModPoolService; protected configServer: ConfigServer; protected botConfig: IBotConfig; - constructor(logger: ILogger, jsonUtil: JsonUtil, hashUtil: HashUtil, randomUtil: RandomUtil, probabilityHelper: ProbabilityHelper, databaseServer: DatabaseServer, itemHelper: ItemHelper, botEquipmentFilterService: BotEquipmentFilterService, itemFilterService: ItemFilterService, profileHelper: ProfileHelper, botWeaponModLimitService: BotWeaponModLimitService, botHelper: BotHelper, botGeneratorHelper: BotGeneratorHelper, botWeaponGeneratorHelper: BotWeaponGeneratorHelper, localisationService: LocalisationService, botEquipmentModPoolService: BotEquipmentModPoolService, configServer: ConfigServer); + constructor(logger: ILogger, jsonUtil: JsonUtil, hashUtil: HashUtil, randomUtil: RandomUtil, probabilityHelper: ProbabilityHelper, databaseServer: DatabaseServer, itemHelper: ItemHelper, botEquipmentFilterService: BotEquipmentFilterService, itemBaseClassService: ItemBaseClassService, itemFilterService: ItemFilterService, profileHelper: ProfileHelper, botWeaponModLimitService: BotWeaponModLimitService, botHelper: BotHelper, botGeneratorHelper: BotGeneratorHelper, botWeaponGeneratorHelper: BotWeaponGeneratorHelper, localisationService: LocalisationService, botEquipmentModPoolService: BotEquipmentModPoolService, configServer: ConfigServer); /** * Check mods are compatible and add to array * @param equipment Equipment item to add mods to diff --git a/KcY-SeeItemValue/itemValue/server/types/generators/BotGenerator.d.ts b/KcY-SeeItemValue/itemValue/server/types/generators/BotGenerator.d.ts index 9581259..8992e9e 100644 --- a/KcY-SeeItemValue/itemValue/server/types/generators/BotGenerator.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/generators/BotGenerator.d.ts @@ -14,12 +14,14 @@ 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"; import { BotInventoryGenerator } from "./BotInventoryGenerator"; import { BotLevelGenerator } from "./BotLevelGenerator"; export declare class BotGenerator { protected logger: ILogger; protected hashUtil: HashUtil; protected randomUtil: RandomUtil; + protected timeUtil: TimeUtil; protected jsonUtil: JsonUtil; protected profileHelper: ProfileHelper; protected databaseServer: DatabaseServer; @@ -32,7 +34,7 @@ export declare class BotGenerator { protected seasonalEventService: SeasonalEventService; protected configServer: ConfigServer; protected botConfig: IBotConfig; - constructor(logger: ILogger, hashUtil: HashUtil, randomUtil: RandomUtil, jsonUtil: JsonUtil, profileHelper: ProfileHelper, databaseServer: DatabaseServer, botInventoryGenerator: BotInventoryGenerator, botLevelGenerator: BotLevelGenerator, botEquipmentFilterService: BotEquipmentFilterService, weightedRandomHelper: WeightedRandomHelper, botHelper: BotHelper, botDifficultyHelper: BotDifficultyHelper, seasonalEventService: SeasonalEventService, configServer: ConfigServer); + constructor(logger: ILogger, hashUtil: HashUtil, randomUtil: RandomUtil, timeUtil: TimeUtil, jsonUtil: JsonUtil, profileHelper: ProfileHelper, databaseServer: DatabaseServer, botInventoryGenerator: BotInventoryGenerator, botLevelGenerator: BotLevelGenerator, botEquipmentFilterService: BotEquipmentFilterService, weightedRandomHelper: WeightedRandomHelper, botHelper: BotHelper, botDifficultyHelper: BotDifficultyHelper, seasonalEventService: SeasonalEventService, configServer: ConfigServer); /** * Generate a player scav bot object * @param role e.g. assault / pmcbot diff --git a/KcY-SeeItemValue/itemValue/server/types/generators/BotLootGenerator.d.ts b/KcY-SeeItemValue/itemValue/server/types/generators/BotLootGenerator.d.ts index 6273a11..044d407 100644 --- a/KcY-SeeItemValue/itemValue/server/types/generators/BotLootGenerator.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/generators/BotLootGenerator.d.ts @@ -1,10 +1,11 @@ import { BotGeneratorHelper } from "../helpers/BotGeneratorHelper"; import { BotWeaponGeneratorHelper } from "../helpers/BotWeaponGeneratorHelper"; import { HandbookHelper } from "../helpers/HandbookHelper"; +import { ItemHelper } from "../helpers/ItemHelper"; import { Inventory as PmcInventory } from "../models/eft/common/tables/IBotBase"; import { Chances, Inventory, ItemMinMax, ModsChances } from "../models/eft/common/tables/IBotType"; import { Item } from "../models/eft/common/tables/IItem"; -import { ITemplateItem, Props } from "../models/eft/common/tables/ITemplateItem"; +import { ITemplateItem } from "../models/eft/common/tables/ITemplateItem"; import { IBotConfig } from "../models/spt/config/IBotConfig"; import { ILogger } from "../models/spt/utils/ILogger"; import { ConfigServer } from "../servers/ConfigServer"; @@ -18,6 +19,7 @@ export declare class BotLootGenerator { protected logger: ILogger; protected hashUtil: HashUtil; protected randomUtil: RandomUtil; + protected itemHelper: ItemHelper; protected databaseServer: DatabaseServer; protected handbookHelper: HandbookHelper; protected botGeneratorHelper: BotGeneratorHelper; @@ -27,7 +29,7 @@ export declare class BotLootGenerator { protected localisationService: LocalisationService; protected configServer: ConfigServer; protected botConfig: IBotConfig; - constructor(logger: ILogger, hashUtil: HashUtil, randomUtil: RandomUtil, databaseServer: DatabaseServer, handbookHelper: HandbookHelper, botGeneratorHelper: BotGeneratorHelper, botWeaponGenerator: BotWeaponGenerator, botWeaponGeneratorHelper: BotWeaponGeneratorHelper, botLootCacheService: BotLootCacheService, localisationService: LocalisationService, configServer: ConfigServer); + constructor(logger: ILogger, hashUtil: HashUtil, randomUtil: RandomUtil, itemHelper: ItemHelper, databaseServer: DatabaseServer, handbookHelper: HandbookHelper, botGeneratorHelper: BotGeneratorHelper, botWeaponGenerator: BotWeaponGenerator, botWeaponGeneratorHelper: BotWeaponGeneratorHelper, botLootCacheService: BotLootCacheService, localisationService: LocalisationService, configServer: ConfigServer); /** * Add loot to bots containers * @param sessionId Session id @@ -94,19 +96,6 @@ export declare class BotLootGenerator { * @returns true if item has reached spawn limit */ protected itemHasReachedSpawnLimit(itemTemplate: ITemplateItem, botRole: string, isPmc: boolean, limitCount: Record, itemSpawnLimits: Record): boolean; - /** - * Is the item an ammo box - * @param props props of the item to check - * @returns true if item is an ammo box - */ - protected isAmmoBox(props: Props): boolean; - /** - * Create an object that contains the ammo stack for an ammo box - * @param parentId ammo box id - * @param props ammo box props - * @returns Item object - */ - protected createAmmoForAmmoBox(parentId: string, props: Props): Item; /** * Randomise the stack size of a money object, uses different values for pmc or scavs * @param isPmc is this a PMC diff --git a/KcY-SeeItemValue/itemValue/server/types/generators/BotWeaponGenerator.d.ts b/KcY-SeeItemValue/itemValue/server/types/generators/BotWeaponGenerator.d.ts index a68b82f..3e9fe30 100644 --- a/KcY-SeeItemValue/itemValue/server/types/generators/BotWeaponGenerator.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/generators/BotWeaponGenerator.d.ts @@ -140,26 +140,27 @@ export declare class BotWeaponGenerator { protected getWeaponCaliber(weaponTemplate: ITemplateItem): string; /** * Fill existing magazines to full, while replacing their contents with specified ammo - * @param weaponMods - * @param magazine - * @param ammoTpl + * @param weaponMods Weapon with children + * @param magazine Magazine item + * @param cartridgeTpl Cartridge to insert into magazine */ - protected fillExistingMagazines(weaponMods: Item[], magazine: Item, ammoTpl: string): void; + protected fillExistingMagazines(weaponMods: Item[], magazine: Item, cartridgeTpl: string): void; /** * Add desired ammo tpl as item to weaponmods array, placed as child to UBGL - * @param weaponMods - * @param ubglMod - * @param ubglAmmoTpl + * @param weaponMods Weapon with children + * @param ubglMod UBGL item + * @param ubglAmmoTpl Grenade ammo tpl */ protected fillUbgl(weaponMods: Item[], ubglMod: Item, ubglAmmoTpl: string): void; /** * Add cartridge item to weapon Item array, if it already exists, update - * @param weaponMods Weapon items array to amend + * @param weaponWithMods Weapon items array to amend * @param magazine magazine item details we're adding cartridges to - * @param chosenAmmo cartridge to put into the magazine + * @param chosenAmmoTpl cartridge to put into the magazine * @param newStackSize how many cartridges should go into the magazine + * @param magazineTemplate magazines db template */ - protected addOrUpdateMagazinesChildWithAmmo(weaponMods: Item[], magazine: Item, chosenAmmo: string, newStackSize: number): void; + protected addOrUpdateMagazinesChildWithAmmo(weaponWithMods: Item[], magazine: Item, chosenAmmoTpl: string, magazineTemplate: ITemplateItem): void; /** * Fill each Camora with a bullet * @param weaponMods Weapon mods to find and update camora mod(s) from diff --git a/KcY-SeeItemValue/itemValue/server/types/generators/LocationGenerator.d.ts b/KcY-SeeItemValue/itemValue/server/types/generators/LocationGenerator.d.ts index a617048..04b1599 100644 --- a/KcY-SeeItemValue/itemValue/server/types/generators/LocationGenerator.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/generators/LocationGenerator.d.ts @@ -2,7 +2,7 @@ import { ContainerHelper } from "../helpers/ContainerHelper"; import { ItemHelper } from "../helpers/ItemHelper"; import { PresetHelper } from "../helpers/PresetHelper"; import { RagfairServerHelper } from "../helpers/RagfairServerHelper"; -import { ILooseLoot, SpawnpointsForced, SpawnpointTemplate } from "../models/eft/common/ILooseLoot"; +import { ILooseLoot, Spawnpoint, SpawnpointsForced, SpawnpointTemplate } from "../models/eft/common/ILooseLoot"; import { Item } from "../models/eft/common/tables/IItem"; import { IStaticAmmoDetails, IStaticContainerProps, IStaticForcedProps, IStaticLootDetails } from "../models/eft/common/tables/ILootBase"; import { ILocationConfig } from "../models/spt/config/ILocationConfig"; @@ -34,6 +34,15 @@ export declare class LocationGenerator { protected configServer: ConfigServer; protected locationConfig: ILocationConfig; constructor(logger: ILogger, jsonUtil: JsonUtil, objectId: ObjectId, randomUtil: RandomUtil, ragfairServerHelper: RagfairServerHelper, itemHelper: ItemHelper, mathUtil: MathUtil, seasonalEventService: SeasonalEventService, containerHelper: ContainerHelper, presetHelper: PresetHelper, localisationService: LocalisationService, configServer: ConfigServer); + /** + * Choose loot to put into a static container + * @param containerIn + * @param staticForced + * @param staticLootDist + * @param staticAmmoDist + * @param locationName Name of the map to generate static loot for + * @returns IStaticContainerProps + */ generateContainerLoot(containerIn: IStaticContainerProps, staticForced: IStaticForcedProps[], staticLootDist: Record, staticAmmoDist: Record, locationName: string): IStaticContainerProps; protected getLooseLootMultiplerForLocation(location: string): number; protected getStaticLootMultiplerForLocation(location: string): number; @@ -52,5 +61,25 @@ export declare class LocationGenerator { * @param name of map currently generating forced loot for */ protected addForcedLoot(loot: SpawnpointTemplate[], forcedSpawnPoints: SpawnpointsForced[], locationName: string): void; - protected createItem(tpl: string, staticAmmoDist: Record, parentId?: string): IContainerItem; + /** + * Create array of item (with child items) and return + * @param chosenComposedKey Key we want to look up items for + * @param spawnPoint Dynamic spawn point item we want will be placed in + * @returns IContainerItem + */ + protected createDynamicLootItem(chosenComposedKey: string, spawnPoint: Spawnpoint): IContainerItem; + /** + * Replace the _id value for base item + all children items parentid value + * @param itemWithChildren Item with mods to update + * @param newId new id to add on chidren of base item + */ + protected reparentItemAndChildren(itemWithChildren: Item[], newId?: string): void; + /** + * Find an item in array by its _tpl, handle differently if chosenTpl is a weapon + * @param items Items array to search + * @param chosenTpl Tpl we want to get item with + * @returns Item object + */ + protected getItemInArray(items: Item[], chosenTpl: string): Item; + protected createStaticLootItem(tpl: string, staticAmmoDist: Record, parentId?: string): IContainerItem; } diff --git a/KcY-SeeItemValue/itemValue/server/types/generators/PMCLootGenerator.d.ts b/KcY-SeeItemValue/itemValue/server/types/generators/PMCLootGenerator.d.ts index 10918e3..8dd47ef 100644 --- a/KcY-SeeItemValue/itemValue/server/types/generators/PMCLootGenerator.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/generators/PMCLootGenerator.d.ts @@ -1,4 +1,5 @@ import { ItemHelper } from "../helpers/ItemHelper"; +import { ITemplateItem } from "../models/eft/common/tables/ITemplateItem"; import { IBotConfig } from "../models/spt/config/IBotConfig"; import { ConfigServer } from "../servers/ConfigServer"; import { DatabaseServer } from "../servers/DatabaseServer"; @@ -15,6 +16,7 @@ export declare class PMCLootGenerator { protected itemFilterService: ItemFilterService; protected seasonalEventService: SeasonalEventService; protected pocketLootPool: string[]; + protected vestLootPool: string[]; protected backpackLootPool: string[]; protected botConfig: IBotConfig; constructor(itemHelper: ItemHelper, databaseServer: DatabaseServer, configServer: ConfigServer, itemFilterService: ItemFilterService, seasonalEventService: SeasonalEventService); @@ -23,6 +25,18 @@ export declare class PMCLootGenerator { * @returns string array of tpls */ generatePMCPocketLootPool(): string[]; + /** + * Create an array of loot items a PMC can have in their vests + * @returns string array of tpls + */ + generatePMCVestLootPool(): string[]; + /** + * Check if item has a width/hide that lets it fit into a 1x2 slot + * 1x1 / 1x2 / 2x1 + * @param item Item to check size of + * @returns true if it fits + */ + protected itemFitsInto1By2Slot(item: ITemplateItem): boolean; /** * Create an array of loot items a PMC can have in their backpack * @returns string array of tpls diff --git a/KcY-SeeItemValue/itemValue/server/types/helpers/AssortHelper.d.ts b/KcY-SeeItemValue/itemValue/server/types/helpers/AssortHelper.d.ts index 13512b2..bc66b09 100644 --- a/KcY-SeeItemValue/itemValue/server/types/helpers/AssortHelper.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/helpers/AssortHelper.d.ts @@ -1,5 +1,6 @@ import { IPmcData } from "../models/eft/common/IPmcData"; import { ITraderAssort } from "../models/eft/common/tables/ITrader"; +import { QuestStatus } from "../models/enums/QuestStatus"; import { ILogger } from "../models/spt/utils/ILogger"; import { DatabaseServer } from "../servers/DatabaseServer"; import { LocalisationService } from "../services/LocalisationService"; @@ -15,12 +16,22 @@ export declare class AssortHelper { /** * Remove assorts from a trader that have not been unlocked yet * @param pmcProfile player profile - * @param traderId traders id - * @param assort assort items from a trader - * @param mergedQuestAssorts An object of quest assort to quest id unlocks for all traders + * @param traderId traders id the assort belongs to + * @param traderAssorts All assort items from same trader + * @param mergedQuestAssorts Dict of quest assort to quest id unlocks for all traders * @returns assort items minus locked quest assorts */ - stripLockedQuestAssort(pmcProfile: IPmcData, traderId: string, assort: ITraderAssort, mergedQuestAssorts: Record>, flea?: boolean): ITraderAssort; + stripLockedQuestAssort(pmcProfile: IPmcData, traderId: string, traderAssorts: ITraderAssort, mergedQuestAssorts: Record>, flea?: boolean): ITraderAssort; + /** + * Get a quest id + the statuses quest can be in to unlock assort + * @param mergedQuestAssorts quest assorts to search for assort id + * @param assortId Assort to look for linked quest id + * @returns quest id + array of quest status the assort should show for + */ + protected getQuestIdAndStatusThatShowAssort(mergedQuestAssorts: Record>, assortId: string): { + questId: string; + status: QuestStatus[]; + }; /** * Remove assorts from a trader that have not been unlocked yet * @param pmcProfile player profile diff --git a/KcY-SeeItemValue/itemValue/server/types/helpers/BotWeaponGeneratorHelper.d.ts b/KcY-SeeItemValue/itemValue/server/types/helpers/BotWeaponGeneratorHelper.d.ts index cefc3bd..8a3784b 100644 --- a/KcY-SeeItemValue/itemValue/server/types/helpers/BotWeaponGeneratorHelper.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/helpers/BotWeaponGeneratorHelper.d.ts @@ -65,11 +65,11 @@ export declare class BotWeaponGeneratorHelper { /** * TODO - move into BotGeneratorHelper, this is not the class for it * Adds an item with all its children into specified equipmentSlots, wherever it fits. - * @param equipmentSlots + * @param equipmentSlots Slot to add item+children into * @param parentId * @param parentTpl - * @param itemWithChildren - * @param inventory + * @param itemWithChildren Item to add + * @param inventory Inventory to add item+children into * @returns a `boolean` indicating item was added */ addItemWithChildrenToEquipmentSlot(equipmentSlots: string[], parentId: string, parentTpl: string, itemWithChildren: Item[], inventory: Inventory): boolean; diff --git a/KcY-SeeItemValue/itemValue/server/types/helpers/HideoutHelper.d.ts b/KcY-SeeItemValue/itemValue/server/types/helpers/HideoutHelper.d.ts index a5849e3..466b41d 100644 --- a/KcY-SeeItemValue/itemValue/server/types/helpers/HideoutHelper.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/helpers/HideoutHelper.d.ts @@ -140,8 +140,21 @@ export declare class HideoutHelper { * @returns coin slot count */ protected getBTCSlots(pmcData: IPmcData): number; + /** + * Get a count of bitcoins player miner can hold + */ protected getManagementSkillsSlots(): number; - protected hasManagementSkillSlots(pmcData: IPmcData): boolean; + /** + * Does profile have elite hideout management skill + * @param pmcData Profile to look at + * @returns True if profile has skill + */ + protected hasEliteHideoutManagementSkill(pmcData: IPmcData): boolean; + /** + * Get the hideout management skill from player profile + * @param pmcData Profile to look at + * @returns Hideout management skill object + */ protected getHideoutManagementSkill(pmcData: IPmcData): Common; protected getHideoutManagementConsumptionBonus(pmcData: IPmcData): number; /** diff --git a/KcY-SeeItemValue/itemValue/server/types/helpers/InRaidHelper.d.ts b/KcY-SeeItemValue/itemValue/server/types/helpers/InRaidHelper.d.ts index c69a810..b65d78d 100644 --- a/KcY-SeeItemValue/itemValue/server/types/helpers/InRaidHelper.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/helpers/InRaidHelper.d.ts @@ -2,24 +2,35 @@ import { IPmcData } from "../models/eft/common/IPmcData"; import { Victim } from "../models/eft/common/tables/IBotBase"; import { Item } from "../models/eft/common/tables/IItem"; import { ISaveProgressRequestData } from "../models/eft/inRaid/ISaveProgressRequestData"; +import { ILostOnDeathConfig } from "../models/spt/config/ILostOnDeathConfig"; import { ILogger } from "../models/spt/utils/ILogger"; +import { ConfigServer } from "../servers/ConfigServer"; import { DatabaseServer } from "../servers/DatabaseServer"; import { SaveServer } from "../servers/SaveServer"; import { LocalisationService } from "../services/LocalisationService"; import { ProfileFixerService } from "../services/ProfileFixerService"; import { JsonUtil } from "../utils/JsonUtil"; import { InventoryHelper } from "./InventoryHelper"; +import { ItemHelper } from "./ItemHelper"; import { PaymentHelper } from "./PaymentHelper"; export declare class InRaidHelper { protected logger: ILogger; protected saveServer: SaveServer; protected jsonUtil: JsonUtil; + protected itemHelper: ItemHelper; protected databaseServer: DatabaseServer; protected inventoryHelper: InventoryHelper; protected paymentHelper: PaymentHelper; protected localisationService: LocalisationService; protected profileFixerService: ProfileFixerService; - constructor(logger: ILogger, saveServer: SaveServer, jsonUtil: JsonUtil, databaseServer: DatabaseServer, inventoryHelper: InventoryHelper, paymentHelper: PaymentHelper, localisationService: LocalisationService, profileFixerService: ProfileFixerService); + protected configServer: ConfigServer; + protected lostOnDeathConfig: ILostOnDeathConfig; + constructor(logger: ILogger, saveServer: SaveServer, jsonUtil: JsonUtil, itemHelper: ItemHelper, databaseServer: DatabaseServer, inventoryHelper: InventoryHelper, paymentHelper: PaymentHelper, localisationService: LocalisationService, profileFixerService: ProfileFixerService, configServer: ConfigServer); + /** + * Should quest items be removed from player inventory on death + * @returns True if items should be removed from inventory + */ + removeQuestItemsOnDeath(): boolean; /** * Check an array of items and add an upd object to money items with a stack count of 1 * Single stack money items have no upd object and thus no StackObjectsCount, causing issues @@ -83,7 +94,7 @@ export declare class InRaidHelper { * Remove equipped items from pre-raid * Add new items found in raid to profile * Store insurance items in profile - * @param sessionID + * @param sessionID Session id * @param pmcData Profile to update * @param postRaidProfile Profile returned by client after a raid * @returns Updated profile @@ -94,15 +105,21 @@ export declare class InRaidHelper { * Used post-raid to remove items after death * @param pmcData Player profile * @param sessionID Session id - * @returns Player profile with pmc inventory cleared */ - deleteInventory(pmcData: IPmcData, sessionID: string): IPmcData; + deleteInventory(pmcData: IPmcData, sessionID: string): void; + /** + * Get items in vest/pocket/backpack inventory containers (excluding children) + * @param pmcData Player profile + * @returns Item array + */ + protected getBaseItemsInRigPocketAndBackpack(pmcData: IPmcData): Item[]; /** * Does the provided items slotId mean its kept on the player after death - * @param slotId slotid of item to check + * @pmcData Player profile + * @itemToCheck Item to check should be kept * @returns true if item is kept after death */ - isItemKeptAfterDeath(slotId: string): boolean; + protected isItemKeptAfterDeath(pmcData: IPmcData, itemToCheck: Item): boolean; /** * Return the equipped items from a players inventory * @param items Players inventory to search through diff --git a/KcY-SeeItemValue/itemValue/server/types/helpers/InventoryHelper.d.ts b/KcY-SeeItemValue/itemValue/server/types/helpers/InventoryHelper.d.ts index 8855d1e..9c31d78 100644 --- a/KcY-SeeItemValue/itemValue/server/types/helpers/InventoryHelper.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/helpers/InventoryHelper.d.ts @@ -61,12 +61,12 @@ export declare class InventoryHelper { /** * Add ammo to ammo boxes * @param itemToAdd Item to check is ammo box - * @param toDo + * @param parentId Ammo box parent id * @param output IItemEventRouterResponse object * @param sessionID Session id * @param pmcData Profile to add ammobox to */ - protected hydrateAmmoBoxWithAmmo(pmcData: IPmcData, itemToAdd: IAddItemTempObject, toDo: string[][], sessionID: string, output: IItemEventRouterResponse): void; + protected hydrateAmmoBoxWithAmmo(pmcData: IPmcData, itemToAdd: IAddItemTempObject, parentId: string, sessionID: string, output: IItemEventRouterResponse): void; /** * * @param assortItems Items to add to inventory @@ -111,7 +111,13 @@ export declare class InventoryHelper { /** * Internal helper function to move item within the same profile_f. */ - moveItemInternal(inventoryItems: Item[], body: IInventoryMoveRequestData): void; + moveItemInternal(pmcData: IPmcData, inventoryItems: Item[], moveRequest: IInventoryMoveRequestData): void; + /** + * Update fast panel bindings when an item is moved into a container that doesnt allow quick slot access + * @param pmcData Player profile + * @param itemBeingMoved item being moved + */ + protected updateFastPanelBinding(pmcData: IPmcData, itemBeingMoved: Item): void; /** * Internal helper function to handle cartridges in inventory if any of them exist. */ diff --git a/KcY-SeeItemValue/itemValue/server/types/helpers/ItemHelper.d.ts b/KcY-SeeItemValue/itemValue/server/types/helpers/ItemHelper.d.ts index de424d2..bd4893c 100644 --- a/KcY-SeeItemValue/itemValue/server/types/helpers/ItemHelper.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/helpers/ItemHelper.d.ts @@ -193,31 +193,53 @@ declare class ItemHelper { replaceIDs(pmcData: IPmcData, items: Item[], insuredItems?: InsuredItem[], fastPanel?: any): any[]; /** * WARNING, SLOW. Recursively loop down through an items hierarchy to see if any of the ids match the supplied list, return true if any do - * @param {string} tpl - * @param {Array} tplsToCheck - * @returns boolean + * @param {string} tpl Items tpl to check parents of + * @param {Array} tplsToCheck Tpl values to check if parents of item match + * @returns boolean Match found */ doesItemOrParentsIdMatch(tpl: string, tplsToCheck: string[]): boolean; /** - * Return true if item is a quest item - * @param {string} tpl - * @returns boolean + * Check if item is quest item + * @param tpl Items tpl to check quest status of + * @returns true if item is flagged as quest item */ isQuestItem(tpl: string): boolean; /** * Get the inventory size of an item - * @param items + * @param items Item with children * @param rootItemId * @returns ItemSize object (width and height) */ getItemSize(items: Item[], rootItemId: string): ItemHelper.ItemSize; /** * Get a random cartridge from an items Filter property - * @param item - * @returns + * @param item Db item template to look up Cartridge filter values from + * @returns Caliber of cartridge */ getRandomCompatibleCaliberTemplateId(item: ITemplateItem): string; - createRandomMagCartridges(magTemplate: ITemplateItem, parentId: string, staticAmmoDist: Record, caliber?: string): Item; + /** + * Add cartridges to the ammo box with correct max stack sizes + * @param ammoBox Box to add cartridges to + * @param ammoBoxDetails Item template from items db + */ + addCartridgesToAmmoBox(ammoBox: Item[], ammoBoxDetails: ITemplateItem): void; + /** + * Add child items (cartridges) to a magazine + * @param magazine Magazine to add child items to + * @param magTemplate Db template of magazine + * @param staticAmmoDist Cartridge distribution + * @param caliber Caliber of cartridge to add to magazine + * @param minSizePercent % the magazine must be filled to + */ + fillMagazineWithRandomCartridge(magazine: Item[], magTemplate: ITemplateItem, staticAmmoDist: Record, caliber?: string, minSizePercent?: number): void; + /** + * Add child items to a magazine of a specific cartridge + * @param magazine Magazine to add child items to + * @param magTemplate Db template of magazine + * @param cartridgeTpl Cartridge to add to magazine + * @param minSizePercent % the magazine must be filled to + */ + fillMagazineWithCartridge(magazine: Item[], magTemplate: ITemplateItem, cartridgeTpl: string, minSizePercent?: number): void; protected getRandomValidCaliber(magTemplate: ITemplateItem): string; protected drawAmmoTpl(caliber: string, staticAmmoDist: Record): string; /** diff --git a/KcY-SeeItemValue/itemValue/server/types/helpers/ProfileHelper.d.ts b/KcY-SeeItemValue/itemValue/server/types/helpers/ProfileHelper.d.ts index 79652ad..28d3d23 100644 --- a/KcY-SeeItemValue/itemValue/server/types/helpers/ProfileHelper.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/helpers/ProfileHelper.d.ts @@ -20,7 +20,12 @@ export declare class ProfileHelper { protected itemHelper: ItemHelper; protected profileSnapshotService: ProfileSnapshotService; constructor(logger: ILogger, jsonUtil: JsonUtil, watermark: Watermark, timeUtil: TimeUtil, saveServer: SaveServer, databaseServer: DatabaseServer, itemHelper: ItemHelper, profileSnapshotService: ProfileSnapshotService); - resetProfileQuestCondition(sessionID: string, conditionId: string): void; + /** + * Remove/reset started quest condtions in player profile + * @param sessionID Session id + * @param conditionIds Condition ids that need to be reset/removed + */ + resetProfileQuestCondition(sessionID: string, conditionIds: string[]): void; /** * Get all profiles from server * @returns Dictionary of profiles diff --git a/KcY-SeeItemValue/itemValue/server/types/helpers/QuestHelper.d.ts b/KcY-SeeItemValue/itemValue/server/types/helpers/QuestHelper.d.ts index de7cba2..1ec9fe8 100644 --- a/KcY-SeeItemValue/itemValue/server/types/helpers/QuestHelper.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/helpers/QuestHelper.d.ts @@ -40,7 +40,7 @@ export declare class QuestHelper { protected questConfig: IQuestConfig; constructor(logger: ILogger, jsonUtil: JsonUtil, timeUtil: TimeUtil, hashUtil: HashUtil, itemHelper: ItemHelper, eventOutputHolder: EventOutputHolder, databaseServer: DatabaseServer, localeService: LocaleService, ragfairServerHelper: RagfairServerHelper, dialogueHelper: DialogueHelper, profileHelper: ProfileHelper, paymentHelper: PaymentHelper, localisationService: LocalisationService, traderHelper: TraderHelper, configServer: ConfigServer); /** - * Get status of a quest by quest id + * Get status of a quest in player profile by its id * @param pmcData Profile to search * @param questID Quest id to look up * @returns QuestStatus enum @@ -160,6 +160,13 @@ export declare class QuestHelper { * @returns IQuest object */ getQuestFromDb(questId: string, pmcData: IPmcData): IQuest; + /** + * Get a quests startedMessageText key from db, if no startedMessageText key found, use description key instead + * @param startedMessageTextId startedMessageText property from IQuest + * @param questDescriptionId description property from IQuest + * @returns message id + */ + getMessageIdForQuestStart(startedMessageTextId: string, questDescriptionId: string): string; /** * Get the locale Id from locale db for a quest message * @param questMessageId Quest message id to look up @@ -204,7 +211,7 @@ export declare class QuestHelper { * @param itemTpl item tpl to look for * @returns 'FindItem' condition id */ - getFindItemIdForQuestHandIn(itemTpl: string): string; + getFindItemIdForQuestHandIn(itemTpl: string): string[]; /** * Add all quests to a profile with the provided statuses * @param pmcProfile profile to update diff --git a/KcY-SeeItemValue/itemValue/server/types/helpers/RagfairOfferHelper.d.ts b/KcY-SeeItemValue/itemValue/server/types/helpers/RagfairOfferHelper.d.ts index 3d0d570..0e92762 100644 --- a/KcY-SeeItemValue/itemValue/server/types/helpers/RagfairOfferHelper.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/helpers/RagfairOfferHelper.d.ts @@ -47,7 +47,22 @@ export declare class RagfairOfferHelper { protected questConfig: IQuestConfig; constructor(logger: ILogger, timeUtil: TimeUtil, hashUtil: HashUtil, eventOutputHolder: EventOutputHolder, databaseServer: DatabaseServer, traderHelper: TraderHelper, saveServer: SaveServer, dialogueHelper: DialogueHelper, itemHelper: ItemHelper, paymentHelper: PaymentHelper, presetHelper: PresetHelper, profileHelper: ProfileHelper, ragfairServerHelper: RagfairServerHelper, ragfairSortHelper: RagfairSortHelper, ragfairHelper: RagfairHelper, ragfairOfferService: RagfairOfferService, localeService: LocaleService, configServer: ConfigServer); getValidOffers(searchRequest: ISearchRequestData, itemsToAdd: string[], traderAssorts: Record, pmcProfile: IPmcData): IRagfairOffer[]; - getOffersForBuild(info: ISearchRequestData, itemsToAdd: string[], assorts: Record, pmcProfile: IPmcData): IRagfairOffer[]; + /** + * Get offers from flea/traders specifically when building weapon preset + * @param searchRequest Search request data + * @param itemsToAdd string array of item tpls to search for + * @param traderAssorts All trader assorts player can access/buy + * @param pmcProfile Player profile + * @returns ITraderAssort + */ + getOffersForBuild(searchRequest: ISearchRequestData, itemsToAdd: string[], traderAssorts: Record, pmcProfile: IPmcData): IRagfairOffer[]; + /** + * Check if offer item is quest locked for current player by looking at sptQuestLocked property in traders barter_scheme + * @param offer Offer to check is quest locked + * @param traderAssorts all trader assorts for player + * @returns true if quest locked + */ + traderOfferItemQuestLocked(offer: IRagfairOffer, traderAssorts: Record): boolean; /** * Has a traders offer ran out of stock to sell to player * @param offer Offer to check stock of diff --git a/KcY-SeeItemValue/itemValue/server/types/helpers/TraderHelper.d.ts b/KcY-SeeItemValue/itemValue/server/types/helpers/TraderHelper.d.ts index 49aea28..fddacba 100644 --- a/KcY-SeeItemValue/itemValue/server/types/helpers/TraderHelper.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/helpers/TraderHelper.d.ts @@ -1,7 +1,5 @@ -import { FenceLevel } from "../models/eft/common/IGlobals"; import { IPmcData } from "../models/eft/common/IPmcData"; -import { Item } from "../models/eft/common/tables/IItem"; -import { IBarterScheme, ITraderAssort, ITraderBase, LoyaltyLevel } from "../models/eft/common/tables/ITrader"; +import { ITraderAssort, ITraderBase, LoyaltyLevel } from "../models/eft/common/tables/ITrader"; import { ITraderConfig } from "../models/spt/config/ITraderConfig"; import { ILogger } from "../models/spt/utils/ILogger"; import { ConfigServer } from "../servers/ConfigServer"; @@ -12,16 +10,12 @@ import { LocalisationService } from "../services/LocalisationService"; import { PlayerService } from "../services/PlayerService"; import { TimeUtil } from "../utils/TimeUtil"; import { HandbookHelper } from "./HandbookHelper"; -import { ItemHelper } from "./ItemHelper"; -import { PaymentHelper } from "./PaymentHelper"; import { ProfileHelper } from "./ProfileHelper"; export declare class TraderHelper { protected logger: ILogger; protected databaseServer: DatabaseServer; protected saveServer: SaveServer; protected profileHelper: ProfileHelper; - protected paymentHelper: PaymentHelper; - protected itemHelper: ItemHelper; protected handbookHelper: HandbookHelper; protected playerService: PlayerService; protected localisationService: LocalisationService; @@ -31,7 +25,7 @@ export declare class TraderHelper { protected traderConfig: ITraderConfig; /** Dictionary of item tpl and the highest trader rouble price */ protected highestTraderPriceItems: Record; - constructor(logger: ILogger, databaseServer: DatabaseServer, saveServer: SaveServer, profileHelper: ProfileHelper, paymentHelper: PaymentHelper, itemHelper: ItemHelper, handbookHelper: HandbookHelper, playerService: PlayerService, localisationService: LocalisationService, fenceService: FenceService, timeUtil: TimeUtil, configServer: ConfigServer); + constructor(logger: ILogger, databaseServer: DatabaseServer, saveServer: SaveServer, profileHelper: ProfileHelper, handbookHelper: HandbookHelper, playerService: PlayerService, localisationService: LocalisationService, fenceService: FenceService, timeUtil: TimeUtil, configServer: ConfigServer); getTrader(traderID: string, sessionID: string): ITraderBase; getTraderAssortsById(traderId: string): ITraderAssort; /** @@ -48,62 +42,6 @@ export declare class TraderHelper { * @param sessionId Session id */ setTraderUnlockedState(traderId: string, status: boolean, sessionId: string): void; - /** - * Get a list of items and their prices from player inventory that can be sold to a trader - * @param traderID trader id being traded with - * @param sessionID session id - * @returns IBarterScheme[][] - */ - getPurchasesData(traderID: string, sessionID: string): Record; - /** - * Should item be skipped when selling to trader according to its sell categories and other checks - * @param pmcData Profile - * @param item Item to be checked is sellable to trader - * @param sellCategory categories trader will buy - * @param traderId Trader item is being checked can be sold to - * @returns true if should NOT be sold to trader - */ - protected isItemUnSellableToTrader(pmcData: IPmcData, item: Item, sellCategory: string[], traderId: string): boolean; - /** - * Check if item has durability so low it precludes it from being sold to the trader (inclusive) - * @param item Item to check durability of - * @param traderId Trader item is sold to - * @returns - */ - protected itemIsBelowSellableDurabilityThreshhold(item: Item, traderId: string): boolean; - /** - * Get the percentage threshold value a trader will buy armor/weapons above - * @param traderId Trader to look up - * @returns percentage - */ - protected getTraderDurabiltyPurchaseThreshold(traderId: string): number; - /** - * Get the price of passed in item and all of its attached children (mods) - * Take into account bonuses/adjustments e.g. discounts - * @param pmcData profile data - * @param item item to calculate price of - * @param buyPriceCoefficient - * @param fenceInfo fence data - * @param traderBase trader details - * @param currencyTpl Currency to get price as - * @returns price of item + children - */ - protected getAdjustedItemPrice(pmcData: IPmcData, item: Item, buyPriceCoefficient: number, fenceInfo: FenceLevel, traderBase: ITraderBase, currencyTpl: string): number; - /** - * Get the raw price of item+child items from handbook without any modification - * @param pmcData profile data - * @param item item to calculate price of - * @returns price as number - */ - protected getRawItemPrice(pmcData: IPmcData, item: Item): number; - /** - * Get discount modifier for desired trader - * @param trader Trader to get discount for - * @param buyPriceCoefficient - * @param fenceInfo fence info, needed if getting fence modifier value - * @returns discount modifier value - */ - protected getTraderDiscount(trader: ITraderBase, buyPriceCoefficient: number, fenceInfo: FenceLevel): number; /** * Add standing to a trader and level them up if exp goes over level threshold * @param sessionId Session id @@ -129,13 +67,6 @@ export declare class TraderHelper { * @returns Time in seconds */ getTraderUpdateSeconds(traderId: string): number; - /** - * check if an item is allowed to be sold to a trader - * @param categoriesTraderBuys array of allowed categories - * @param tplToCheck itemTpl of inventory - * @returns boolean if item can be sold to trader - */ - doesTraderBuyItem(categoriesTraderBuys: string[], tplToCheck: string): boolean; getLoyaltyLevel(traderID: string, pmcData: IPmcData): LoyaltyLevel; /** * Store the purchase of an assort from a trader in the player profile diff --git a/KcY-SeeItemValue/itemValue/server/types/loaders/PostAkiModLoader.d.ts b/KcY-SeeItemValue/itemValue/server/types/loaders/PostAkiModLoader.d.ts index 5df8c6c..848e9f3 100644 --- a/KcY-SeeItemValue/itemValue/server/types/loaders/PostAkiModLoader.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/loaders/PostAkiModLoader.d.ts @@ -1,15 +1,19 @@ import { DependencyContainer } from "tsyringe"; import { IModLoader } from "../models/spt/mod/IModLoader"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { LocalisationService } from "../services/LocalisationService"; import { VFS } from "../utils/VFS"; import { BundleLoader } from "./BundleLoader"; import { ModTypeCheck } from "./ModTypeCheck"; import { PreAkiModLoader } from "./PreAkiModLoader"; export declare class PostAkiModLoader implements IModLoader { + protected logger: ILogger; protected bundleLoader: BundleLoader; protected vfs: VFS; protected preAkiModLoader: PreAkiModLoader; + protected localisationService: LocalisationService; protected modTypeCheck: ModTypeCheck; - constructor(bundleLoader: BundleLoader, vfs: VFS, preAkiModLoader: PreAkiModLoader, modTypeCheck: ModTypeCheck); + constructor(logger: ILogger, bundleLoader: BundleLoader, vfs: VFS, preAkiModLoader: PreAkiModLoader, localisationService: LocalisationService, modTypeCheck: ModTypeCheck); getModPath(mod: string): string; load(): Promise; protected executeMods(container: DependencyContainer): Promise; diff --git a/KcY-SeeItemValue/itemValue/server/types/loaders/PostDBModLoader.d.ts b/KcY-SeeItemValue/itemValue/server/types/loaders/PostDBModLoader.d.ts index c4cda5c..eef160b 100644 --- a/KcY-SeeItemValue/itemValue/server/types/loaders/PostDBModLoader.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/loaders/PostDBModLoader.d.ts @@ -1,11 +1,15 @@ import { DependencyContainer } from "tsyringe"; import { OnLoad } from "../di/OnLoad"; +import { ILogger } from "../models/spt/utils/ILogger"; +import { LocalisationService } from "../services/LocalisationService"; import { ModTypeCheck } from "./ModTypeCheck"; import { PreAkiModLoader } from "./PreAkiModLoader"; export declare class PostDBModLoader implements OnLoad { + protected logger: ILogger; protected preAkiModLoader: PreAkiModLoader; + protected localisationService: LocalisationService; protected modTypeCheck: ModTypeCheck; - constructor(preAkiModLoader: PreAkiModLoader, modTypeCheck: ModTypeCheck); + constructor(logger: ILogger, preAkiModLoader: PreAkiModLoader, localisationService: LocalisationService, modTypeCheck: ModTypeCheck); onLoad(): Promise; getRoute(): string; getModPath(mod: string): string; diff --git a/KcY-SeeItemValue/itemValue/server/types/models/eft/common/IGlobals.d.ts b/KcY-SeeItemValue/itemValue/server/types/models/eft/common/IGlobals.d.ts index b5ed401..5790cde 100644 --- a/KcY-SeeItemValue/itemValue/server/types/models/eft/common/IGlobals.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/models/eft/common/IGlobals.d.ts @@ -70,6 +70,7 @@ export interface Config { EventType: string[]; WalkSpeed: xyz; SprintSpeed: xyz; + SquadSettings: ISquadSettings; SkillEnduranceWeightThreshold: number; TeamSearchingTimeout: number; Insurance: Insurance; @@ -803,6 +804,11 @@ export interface RestrictionsInRaid { TemplateId: string; Value: number; } +export interface ISquadSettings { + CountOfRequestsToOnePlayer: number; + SecondsForExpiredRequest: number; + SendRequestDelaySeconds: number; +} export interface Insurance { MaxStorageTimeInHour: number; } diff --git a/KcY-SeeItemValue/itemValue/server/types/models/eft/common/ILooseLoot.d.ts b/KcY-SeeItemValue/itemValue/server/types/models/eft/common/ILooseLoot.d.ts index 14b795e..572ec69 100644 --- a/KcY-SeeItemValue/itemValue/server/types/models/eft/common/ILooseLoot.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/models/eft/common/ILooseLoot.d.ts @@ -1,3 +1,4 @@ +import { Item } from "./tables/IItem"; export interface ILooseLoot { spawnpointCount: SpawnpointCount; spawnpointsForced: SpawnpointsForced[]; @@ -24,10 +25,6 @@ export interface SpawnpointTemplate { Root: any; Items: Item[]; } -export interface Item { - _id: string; - _tpl?: string; -} export interface Spawnpoint { locationId: string; probability: number; @@ -40,6 +37,9 @@ export interface Xyz { z: number; } export interface ItemDistribution { - tpl: string; + composedKey: ComposedKey; relativeProbability: number; } +export interface ComposedKey { + key: string; +} diff --git a/KcY-SeeItemValue/itemValue/server/types/models/eft/common/tables/IBotBase.d.ts b/KcY-SeeItemValue/itemValue/server/types/models/eft/common/tables/IBotBase.d.ts index dd7c478..82a925b 100644 --- a/KcY-SeeItemValue/itemValue/server/types/models/eft/common/tables/IBotBase.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/models/eft/common/tables/IBotBase.d.ts @@ -120,9 +120,7 @@ export interface Inventory { sortingTable: string; questRaidItems: string; questStashItems: string; - fastPanel: FastPanel; -} -export interface FastPanel { + fastPanel: Record; } export interface Skills { Common: Common[]; diff --git a/KcY-SeeItemValue/itemValue/server/types/models/eft/common/tables/IQuest.d.ts b/KcY-SeeItemValue/itemValue/server/types/models/eft/common/tables/IQuest.d.ts index 5c939e1..52968b1 100644 --- a/KcY-SeeItemValue/itemValue/server/types/models/eft/common/tables/IQuest.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/models/eft/common/tables/IQuest.d.ts @@ -46,7 +46,7 @@ export interface AvailableForProps { parentId: string; isEncoded: boolean; dynamicLocale: boolean; - value?: number; + value?: string | number; compareMethod?: string; visibilityConditions?: VisibilityCondition[]; target?: string | string[]; diff --git a/KcY-SeeItemValue/itemValue/server/types/models/eft/hideout/IHideoutProduction.d.ts b/KcY-SeeItemValue/itemValue/server/types/models/eft/hideout/IHideoutProduction.d.ts index 2367e08..8bed3cc 100644 --- a/KcY-SeeItemValue/itemValue/server/types/models/eft/hideout/IHideoutProduction.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/models/eft/hideout/IHideoutProduction.d.ts @@ -20,4 +20,5 @@ export interface Requirement { areaType?: number; requiredLevel?: number; resource?: number; + questId?: string; } diff --git a/KcY-SeeItemValue/itemValue/server/types/models/eft/match/IEndOfflineRaidRequestData.d.ts b/KcY-SeeItemValue/itemValue/server/types/models/eft/match/IEndOfflineRaidRequestData.d.ts index 811e9a2..9368c32 100644 --- a/KcY-SeeItemValue/itemValue/server/types/models/eft/match/IEndOfflineRaidRequestData.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/models/eft/match/IEndOfflineRaidRequestData.d.ts @@ -1,6 +1,6 @@ export interface IEndOfflineRaidRequestData { crc: number; exitStatus: string; - exitName: any; + exitName: string; raidSeconds: number; } diff --git a/KcY-SeeItemValue/itemValue/server/types/models/eft/match/IGetRaidConfigurationRequestData.d.ts b/KcY-SeeItemValue/itemValue/server/types/models/eft/match/IGetRaidConfigurationRequestData.d.ts index cbcc2f6..ed3dfab 100644 --- a/KcY-SeeItemValue/itemValue/server/types/models/eft/match/IGetRaidConfigurationRequestData.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/models/eft/match/IGetRaidConfigurationRequestData.d.ts @@ -1,4 +1,7 @@ export interface IGetRaidConfigurationRequestData { + keyId: string; + side: string; + location: string; timeVariant: string; raidMode: string; metabolismDisabled: boolean; @@ -6,7 +9,6 @@ export interface IGetRaidConfigurationRequestData { timeAndWeatherSettings: TimeAndWeatherSettings; botSettings: BotSettings; wavesSettings: WavesSettings; - location: string; } export interface TimeAndWeatherSettings { isRandomTime: boolean; diff --git a/KcY-SeeItemValue/itemValue/server/types/models/eft/presetBuild/IPresetBuildActionRequestData.d.ts b/KcY-SeeItemValue/itemValue/server/types/models/eft/presetBuild/IPresetBuildActionRequestData.d.ts index 99c61f1..42549e6 100644 --- a/KcY-SeeItemValue/itemValue/server/types/models/eft/presetBuild/IPresetBuildActionRequestData.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/models/eft/presetBuild/IPresetBuildActionRequestData.d.ts @@ -1,3 +1,4 @@ +import { Upd } from "../common/tables/IItem"; export interface IPresetBuildActionRequestData { Action: string; id: string; @@ -12,14 +13,3 @@ export interface Item { parentId?: string; slotId?: string; } -export interface Upd { - Repairable: Repairable; - FireMode: FireMode; -} -export interface Repairable { - MaxDurability: number; - Durability: number; -} -export interface FireMode { - FireMode: string; -} diff --git a/KcY-SeeItemValue/itemValue/server/types/models/eft/profile/IGetProfileSettingsRequest.d.ts b/KcY-SeeItemValue/itemValue/server/types/models/eft/profile/IGetProfileSettingsRequest.d.ts new file mode 100644 index 0000000..8168615 --- /dev/null +++ b/KcY-SeeItemValue/itemValue/server/types/models/eft/profile/IGetProfileSettingsRequest.d.ts @@ -0,0 +1,3 @@ +export interface IGetProfileSettingsRequest { + squadInviteRestriction: boolean; +} diff --git a/KcY-SeeItemValue/itemValue/server/types/models/enums/ConfigTypes.d.ts b/KcY-SeeItemValue/itemValue/server/types/models/enums/ConfigTypes.d.ts index 9c48b68..d849010 100644 --- a/KcY-SeeItemValue/itemValue/server/types/models/enums/ConfigTypes.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/models/enums/ConfigTypes.d.ts @@ -19,5 +19,6 @@ export declare enum ConfigTypes { SCAVCASE = "aki-scavcase", TRADER = "aki-trader", WEATHER = "aki-weather", - SEASONAL_EVENT = "aki-seasonalevents" + SEASONAL_EVENT = "aki-seasonalevents", + LOST_ON_DEATH = "aki-lostondeath" } diff --git a/KcY-SeeItemValue/itemValue/server/types/models/spt/callbacks/ITraderCallbacks.d.ts b/KcY-SeeItemValue/itemValue/server/types/models/spt/callbacks/ITraderCallbacks.d.ts index e0d7d06..b784408 100644 --- a/KcY-SeeItemValue/itemValue/server/types/models/spt/callbacks/ITraderCallbacks.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/models/spt/callbacks/ITraderCallbacks.d.ts @@ -1,10 +1,9 @@ import { IEmptyRequestData } from "../../eft/common/IEmptyRequestData"; -import { IBarterScheme, ITraderAssort, ITraderBase } from "../../eft/common/tables/ITrader"; +import { ITraderAssort, ITraderBase } from "../../eft/common/tables/ITrader"; import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; export interface ITraderCallbacks { load(): void; getTraderSettings(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; - getProfilePurchases(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData>; getTrader(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; getAssort(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; update(): boolean; diff --git a/KcY-SeeItemValue/itemValue/server/types/models/spt/config/IHttpConfig.d.ts b/KcY-SeeItemValue/itemValue/server/types/models/spt/config/IHttpConfig.d.ts index 3fe4787..c34c11d 100644 --- a/KcY-SeeItemValue/itemValue/server/types/models/spt/config/IHttpConfig.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/models/spt/config/IHttpConfig.d.ts @@ -4,4 +4,5 @@ export interface IHttpConfig extends IBaseConfig { kind: "aki-http"; ip: string; port: number; + logRequests: boolean; } diff --git a/KcY-SeeItemValue/itemValue/server/types/models/spt/config/ILocationConfig.d.ts b/KcY-SeeItemValue/itemValue/server/types/models/spt/config/ILocationConfig.d.ts index f808ad8..bcd91cc 100644 --- a/KcY-SeeItemValue/itemValue/server/types/models/spt/config/ILocationConfig.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/models/spt/config/ILocationConfig.d.ts @@ -2,9 +2,9 @@ import { BossLocationSpawn, Wave } from "../../../models/eft/common/ILocationBas import { IBaseConfig } from "./IBaseConfig"; export interface ILocationConfig extends IBaseConfig { kind: "aki-location"; - fixEmptyBotWaves: boolean; - fixRoguesTakingAllSpawnsOnLighthouse: boolean; - lighthouseRogueSpawnTimeSeconds: number; + fixEmptyBotWavesSettings: IFixEmptyBotWavesSettings; + rogueLighthouseSpawnTimeSettings: IRogueLighthouseSpawnTimeSettings; + splitWaveIntoSingleSpawnsSettings: ISplitWaveSettings; looseLootMultiplier: LootMultiplier; staticLootMultiplier: LootMultiplier; customWaves: CustomWaves; @@ -12,6 +12,21 @@ export interface ILocationConfig extends IBaseConfig { openZones: Record; /** Key = map id, value = item tpls that should only have one forced loot spawn position */ forcedLootSingleSpawnById: Record; + /** How many attempts should be taken to fit an item into a container before giving up */ + fitLootIntoContainerAttempts: number; +} +export interface IFixEmptyBotWavesSettings { + enabled: boolean; + ignoreMaps: string[]; +} +export interface IRogueLighthouseSpawnTimeSettings { + enabled: boolean; + waitTimeSeconds: number; +} +export interface ISplitWaveSettings { + enabled: boolean; + ignoreMaps: string[]; + waveSizeThreshold: number; } export interface CustomWaves { boss: Record; diff --git a/KcY-SeeItemValue/itemValue/server/types/models/spt/config/ILostOnDeathConfig.d.ts b/KcY-SeeItemValue/itemValue/server/types/models/spt/config/ILostOnDeathConfig.d.ts new file mode 100644 index 0000000..b557afe --- /dev/null +++ b/KcY-SeeItemValue/itemValue/server/types/models/spt/config/ILostOnDeathConfig.d.ts @@ -0,0 +1,21 @@ +import { IBaseConfig } from "./IBaseConfig"; +export interface ILostOnDeathConfig extends IBaseConfig { + kind: "aki-lostondeath"; + equipment: Equipment; + specialSlotItems: boolean; + questItems: boolean; +} +export interface Equipment { + ArmBand: boolean; + Headwear: boolean; + Earpiece: boolean; + FaceCover: boolean; + ArmorVest: boolean; + Eyewear: boolean; + TacticalVest: boolean; + Backpack: boolean; + Holster: boolean; + FirstPrimaryWeapon: boolean; + SecondPrimaryWeapon: boolean; + Scabbard: boolean; +} diff --git a/KcY-SeeItemValue/itemValue/server/types/models/spt/config/IPmcConfig.d.ts b/KcY-SeeItemValue/itemValue/server/types/models/spt/config/IPmcConfig.d.ts index 979122c..87098da 100644 --- a/KcY-SeeItemValue/itemValue/server/types/models/spt/config/IPmcConfig.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/models/spt/config/IPmcConfig.d.ts @@ -1,5 +1,8 @@ import { MinMax } from "../../common/MinMax"; export interface IPmcConfig { + vestLoot: SlotLootSettings; + pocketLoot: SlotLootSettings; + backpackLoot: SlotLootSettings; dynamicLoot: DynamicLoot; useDifficultyOverride: boolean; difficulty: string; @@ -22,8 +25,11 @@ export interface PmcTypes { usec: string; bear: string; } -export interface DynamicLoot { +export interface SlotLootSettings { whitelist: string[]; blacklist: string[]; moneyStackLimits: Record; } +export interface DynamicLoot { + moneyStackLimits: Record; +} diff --git a/KcY-SeeItemValue/itemValue/server/types/models/spt/config/IQuestConfig.d.ts b/KcY-SeeItemValue/itemValue/server/types/models/spt/config/IQuestConfig.d.ts index 9adfaba..94c00fd 100644 --- a/KcY-SeeItemValue/itemValue/server/types/models/spt/config/IQuestConfig.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/models/spt/config/IQuestConfig.d.ts @@ -1,3 +1,4 @@ +import { MinMax } from "../../../models/common/MinMax"; import { ELocationName } from "../../enums/ELocationName"; import { IBaseConfig } from "./IBaseConfig"; export interface IQuestConfig extends IBaseConfig { @@ -50,7 +51,7 @@ export interface ITraderWhitelist { export interface IRepeatableQuestTypesConfig { Exploration: IExploration; Completion: ICompletion; - Elimination: IElimination; + Elimination: IEliminationConfig[]; } export interface IExploration { maxExtracts: number; @@ -68,7 +69,8 @@ export interface ICompletion { useWhitelist: boolean; useBlacklist: boolean; } -export interface IElimination { +export interface IEliminationConfig { + levelRange: MinMax; targets: ITarget[]; bodyPartProb: number; bodyParts: IBodyPart[]; @@ -80,11 +82,6 @@ export interface IElimination { maxKills: number; minKills: number; } -export interface IProbabilityObject { - key: string; - relativeProbability: number; - data?: any; -} export interface ITarget extends IProbabilityObject { data: IBossInfo; } @@ -94,3 +91,8 @@ export interface IBossInfo { export interface IBodyPart extends IProbabilityObject { data: string[]; } +export interface IProbabilityObject { + key: string; + relativeProbability: number; + data?: any; +} diff --git a/KcY-SeeItemValue/itemValue/server/types/models/spt/config/IRagfairConfig.d.ts b/KcY-SeeItemValue/itemValue/server/types/models/spt/config/IRagfairConfig.d.ts index 3fa04de..75357d0 100644 --- a/KcY-SeeItemValue/itemValue/server/types/models/spt/config/IRagfairConfig.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/models/spt/config/IRagfairConfig.d.ts @@ -30,6 +30,8 @@ export interface Reputation { } export interface Dynamic { purchasesAreFoundInRaid: boolean; + /** Use the highest trader price for an offer if its greater than the price in templates/prices.json */ + useTraderPriceForOffersIfHigher: boolean; barter: Barter; offerAdjustment: OfferAdjustment; expiredOfferThreshold: number; diff --git a/KcY-SeeItemValue/itemValue/server/types/models/spt/config/ITraderConfig.d.ts b/KcY-SeeItemValue/itemValue/server/types/models/spt/config/ITraderConfig.d.ts index 56c7d35..832f22a 100644 --- a/KcY-SeeItemValue/itemValue/server/types/models/spt/config/ITraderConfig.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/models/spt/config/ITraderConfig.d.ts @@ -3,9 +3,8 @@ import { IBaseConfig } from "./IBaseConfig"; export interface ITraderConfig extends IBaseConfig { kind: "aki-trader"; updateTime: UpdateTime[]; + purchasesAreFoundInRaid: boolean; updateTimeDefault: number; - /** What % of max durability an item needs to sell to a trader*/ - durabilityPurchaseThreshhold: Record; traderPriceMultipler: number; persistPurchaseDataInProfile: boolean; fence: FenceConfig; diff --git a/KcY-SeeItemValue/itemValue/server/types/models/spt/mod/NewItemDetails.d.ts b/KcY-SeeItemValue/itemValue/server/types/models/spt/mod/NewItemDetails.d.ts index fc69a06..9e37cc9 100644 --- a/KcY-SeeItemValue/itemValue/server/types/models/spt/mod/NewItemDetails.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/models/spt/mod/NewItemDetails.d.ts @@ -4,6 +4,8 @@ export declare abstract class NewItemDetailsBase { fleaPriceRoubles: number; /** Price of the item in the handbook */ handbookPriceRoubles: number; + /** Handbook ParentId for the new item */ + handbookParentId: string; /** * A dictionary for locale settings, key = langauge (e.g. en,cn,es-mx,jp,fr) * If a language is not included, the first item in the array will be used in its place diff --git a/KcY-SeeItemValue/itemValue/server/types/services/InsuranceService.d.ts b/KcY-SeeItemValue/itemValue/server/types/services/InsuranceService.d.ts index 886a298..55baa1a 100644 --- a/KcY-SeeItemValue/itemValue/server/types/services/InsuranceService.d.ts +++ b/KcY-SeeItemValue/itemValue/server/types/services/InsuranceService.d.ts @@ -63,8 +63,16 @@ export declare class InsuranceService { * @param offraidData post-raid request object * @param preRaidGear gear player wore prior to raid * @param sessionID Session id + * @param playerDied did the player die in raid + */ + storeLostGear(pmcData: IPmcData, offraidData: ISaveProgressRequestData, preRaidGear: Item[], sessionID: string, playerDied: boolean): void; + /** + * Store insured items on pmc death inside insurance array in player profile + * @param pmcData Player profile + * @param offraidData Player gear post-raid + * @param preRaidGear Player gear before raid + * @param sessionID Session id */ - storeLostGear(pmcData: IPmcData, offraidData: ISaveProgressRequestData, preRaidGear: Item[], sessionID: string): void; storeInsuredItemsForReturn(pmcData: IPmcData, offraidData: ISaveProgressRequestData, preRaidGear: Item[], sessionID: string): void; /** * Add gear item to InsuredItems array in player profile diff --git a/Shared/AKI/Aki.Build.dll b/Shared/AKI/Aki.Build.dll deleted file mode 100644 index 6a13b4e..0000000 Binary files a/Shared/AKI/Aki.Build.dll and /dev/null differ diff --git a/Shared/AKI/Aki.Common.dll b/Shared/AKI/Aki.Common.dll deleted file mode 100644 index 323306d..0000000 Binary files a/Shared/AKI/Aki.Common.dll and /dev/null differ diff --git a/Shared/AKI/Aki.Reflection.dll b/Shared/AKI/Aki.Reflection.dll deleted file mode 100644 index 6c66482..0000000 Binary files a/Shared/AKI/Aki.Reflection.dll and /dev/null differ diff --git a/Shared/BepInEx/0Harmony.dll b/Shared/BepInEx/0Harmony.dll deleted file mode 100644 index 99daef7..0000000 Binary files a/Shared/BepInEx/0Harmony.dll and /dev/null differ diff --git a/Shared/BepInEx/BepInEx.dll b/Shared/BepInEx/BepInEx.dll deleted file mode 100644 index 2fb6c0d..0000000 Binary files a/Shared/BepInEx/BepInEx.dll and /dev/null differ diff --git a/Shared/BepInEx/ConfigurationManager.dll b/Shared/BepInEx/ConfigurationManager.dll deleted file mode 100644 index bc5c017..0000000 Binary files a/Shared/BepInEx/ConfigurationManager.dll and /dev/null differ diff --git a/Shared/BepInEx/Mono.Cecil.dll b/Shared/BepInEx/Mono.Cecil.dll deleted file mode 100644 index 18735f9..0000000 Binary files a/Shared/BepInEx/Mono.Cecil.dll and /dev/null differ diff --git a/Shared/EFT/Accessibility.dll b/Shared/EFT/Accessibility.dll deleted file mode 100644 index fea493a..0000000 Binary files a/Shared/EFT/Accessibility.dll and /dev/null differ diff --git a/Shared/EFT/Aki.Build.dll b/Shared/EFT/Aki.Build.dll deleted file mode 100644 index 0edabf8..0000000 Binary files a/Shared/EFT/Aki.Build.dll and /dev/null differ diff --git a/Shared/EFT/Aki.Common.dll b/Shared/EFT/Aki.Common.dll deleted file mode 100644 index 47c000c..0000000 Binary files a/Shared/EFT/Aki.Common.dll and /dev/null differ diff --git a/Shared/EFT/Aki.Reflection.dll b/Shared/EFT/Aki.Reflection.dll deleted file mode 100644 index 80041e8..0000000 Binary files a/Shared/EFT/Aki.Reflection.dll and /dev/null differ diff --git a/Shared/EFT/AmplifyMotion.dll b/Shared/EFT/AmplifyMotion.dll deleted file mode 100644 index e7b2138..0000000 Binary files a/Shared/EFT/AmplifyMotion.dll and /dev/null differ diff --git a/Shared/EFT/AnimationSystem.Recording.dll b/Shared/EFT/AnimationSystem.Recording.dll deleted file mode 100644 index 2000411..0000000 Binary files a/Shared/EFT/AnimationSystem.Recording.dll and /dev/null differ diff --git a/Shared/EFT/AnimationSystem.Types.dll b/Shared/EFT/AnimationSystem.Types.dll deleted file mode 100644 index e73e085..0000000 Binary files a/Shared/EFT/AnimationSystem.Types.dll and /dev/null differ diff --git a/Shared/EFT/Assembly-CSharp-firstpass.dll b/Shared/EFT/Assembly-CSharp-firstpass.dll deleted file mode 100644 index 061a9af..0000000 Binary files a/Shared/EFT/Assembly-CSharp-firstpass.dll and /dev/null differ diff --git a/Shared/EFT/Assembly-CSharp.dll b/Shared/EFT/Assembly-CSharp.dll deleted file mode 100644 index 43873ee..0000000 Binary files a/Shared/EFT/Assembly-CSharp.dll and /dev/null differ diff --git a/Shared/EFT/Autodesk.Fbx.dll b/Shared/EFT/Autodesk.Fbx.dll deleted file mode 100644 index 98299ef..0000000 Binary files a/Shared/EFT/Autodesk.Fbx.dll and /dev/null differ diff --git a/Shared/EFT/Cinemachine.dll b/Shared/EFT/Cinemachine.dll deleted file mode 100644 index a03509e..0000000 Binary files a/Shared/EFT/Cinemachine.dll and /dev/null differ diff --git a/Shared/EFT/Coffee.SoftMaskForUGUI.dll b/Shared/EFT/Coffee.SoftMaskForUGUI.dll deleted file mode 100644 index cbe3707..0000000 Binary files a/Shared/EFT/Coffee.SoftMaskForUGUI.dll and /dev/null differ diff --git a/Shared/EFT/Comfort.Unity.dll b/Shared/EFT/Comfort.Unity.dll deleted file mode 100644 index 566b31a..0000000 Binary files a/Shared/EFT/Comfort.Unity.dll and /dev/null differ diff --git a/Shared/EFT/Comfort.dll b/Shared/EFT/Comfort.dll deleted file mode 100644 index 30d959d..0000000 Binary files a/Shared/EFT/Comfort.dll and /dev/null differ diff --git a/Shared/EFT/CommonExtensions.dll b/Shared/EFT/CommonExtensions.dll deleted file mode 100644 index 1f7cb77..0000000 Binary files a/Shared/EFT/CommonExtensions.dll and /dev/null differ diff --git a/Shared/EFT/DOTween.Modules.dll b/Shared/EFT/DOTween.Modules.dll deleted file mode 100644 index f953eb8..0000000 Binary files a/Shared/EFT/DOTween.Modules.dll and /dev/null differ diff --git a/Shared/EFT/DOTween.dll b/Shared/EFT/DOTween.dll deleted file mode 100644 index ee6ae9d..0000000 Binary files a/Shared/EFT/DOTween.dll and /dev/null differ diff --git a/Shared/EFT/DissonanceVoip.dll b/Shared/EFT/DissonanceVoip.dll deleted file mode 100644 index ff12efc..0000000 Binary files a/Shared/EFT/DissonanceVoip.dll and /dev/null differ diff --git a/Shared/EFT/FbxBuildTestAssets.dll b/Shared/EFT/FbxBuildTestAssets.dll deleted file mode 100644 index b66475b..0000000 Binary files a/Shared/EFT/FbxBuildTestAssets.dll and /dev/null differ diff --git a/Shared/EFT/FilesChecker.dll b/Shared/EFT/FilesChecker.dll deleted file mode 100644 index 12421a4..0000000 Binary files a/Shared/EFT/FilesChecker.dll and /dev/null differ diff --git a/Shared/EFT/ILInjectedProfiler.dll b/Shared/EFT/ILInjectedProfiler.dll deleted file mode 100644 index 68f2e9a..0000000 Binary files a/Shared/EFT/ILInjectedProfiler.dll and /dev/null differ diff --git a/Shared/EFT/ItemComponent.Types.dll b/Shared/EFT/ItemComponent.Types.dll deleted file mode 100644 index e122af4..0000000 Binary files a/Shared/EFT/ItemComponent.Types.dll and /dev/null differ diff --git a/Shared/EFT/ItemTemplate.Types.dll b/Shared/EFT/ItemTemplate.Types.dll deleted file mode 100644 index f88510f..0000000 Binary files a/Shared/EFT/ItemTemplate.Types.dll and /dev/null differ diff --git a/Shared/EFT/JBooth.MicroSplat.Core.dll b/Shared/EFT/JBooth.MicroSplat.Core.dll deleted file mode 100644 index 111b57d..0000000 Binary files a/Shared/EFT/JBooth.MicroSplat.Core.dll and /dev/null differ diff --git a/Shared/EFT/LibraryLoaderUtility.dll b/Shared/EFT/LibraryLoaderUtility.dll deleted file mode 100644 index e738dd6..0000000 Binary files a/Shared/EFT/LibraryLoaderUtility.dll and /dev/null differ diff --git a/Shared/EFT/Mono.Data.Sqlite.dll b/Shared/EFT/Mono.Data.Sqlite.dll deleted file mode 100644 index a45f3d6..0000000 Binary files a/Shared/EFT/Mono.Data.Sqlite.dll and /dev/null differ diff --git a/Shared/EFT/Mono.Messaging.dll b/Shared/EFT/Mono.Messaging.dll deleted file mode 100644 index a738b2f..0000000 Binary files a/Shared/EFT/Mono.Messaging.dll and /dev/null differ diff --git a/Shared/EFT/Mono.Posix.dll b/Shared/EFT/Mono.Posix.dll deleted file mode 100644 index 2db3f3f..0000000 Binary files a/Shared/EFT/Mono.Posix.dll and /dev/null differ diff --git a/Shared/EFT/Mono.Security.dll b/Shared/EFT/Mono.Security.dll deleted file mode 100644 index db50b2c..0000000 Binary files a/Shared/EFT/Mono.Security.dll and /dev/null differ diff --git a/Shared/EFT/Mono.WebBrowser.dll b/Shared/EFT/Mono.WebBrowser.dll deleted file mode 100644 index c9f2d19..0000000 Binary files a/Shared/EFT/Mono.WebBrowser.dll and /dev/null differ diff --git a/Shared/EFT/NLog.dll b/Shared/EFT/NLog.dll deleted file mode 100644 index 0a21365..0000000 Binary files a/Shared/EFT/NLog.dll and /dev/null differ diff --git a/Shared/EFT/Newtonsoft.Json.UnityConverters.dll b/Shared/EFT/Newtonsoft.Json.UnityConverters.dll deleted file mode 100644 index 7605019..0000000 Binary files a/Shared/EFT/Newtonsoft.Json.UnityConverters.dll and /dev/null differ diff --git a/Shared/EFT/Newtonsoft.Json.dll b/Shared/EFT/Newtonsoft.Json.dll deleted file mode 100644 index 44d2676..0000000 Binary files a/Shared/EFT/Newtonsoft.Json.dll and /dev/null differ diff --git a/Shared/EFT/Novell.Directory.Ldap.dll b/Shared/EFT/Novell.Directory.Ldap.dll deleted file mode 100644 index ceec6a3..0000000 Binary files a/Shared/EFT/Novell.Directory.Ldap.dll and /dev/null differ diff --git a/Shared/EFT/Oculus.AudioManager.dll b/Shared/EFT/Oculus.AudioManager.dll deleted file mode 100644 index a41fc90..0000000 Binary files a/Shared/EFT/Oculus.AudioManager.dll and /dev/null differ diff --git a/Shared/EFT/Oculus.Spatializer.dll b/Shared/EFT/Oculus.Spatializer.dll deleted file mode 100644 index 6f8d04c..0000000 Binary files a/Shared/EFT/Oculus.Spatializer.dll and /dev/null differ diff --git a/Shared/EFT/Polybrush.dll b/Shared/EFT/Polybrush.dll deleted file mode 100644 index f06ef06..0000000 Binary files a/Shared/EFT/Polybrush.dll and /dev/null differ diff --git a/Shared/EFT/Sirenix.OdinInspector.Attributes.dll b/Shared/EFT/Sirenix.OdinInspector.Attributes.dll deleted file mode 100644 index 7c47e59..0000000 Binary files a/Shared/EFT/Sirenix.OdinInspector.Attributes.dll and /dev/null differ diff --git a/Shared/EFT/Sirenix.OdinInspector.CompatibilityLayer.dll b/Shared/EFT/Sirenix.OdinInspector.CompatibilityLayer.dll deleted file mode 100644 index 39c3d67..0000000 Binary files a/Shared/EFT/Sirenix.OdinInspector.CompatibilityLayer.dll and /dev/null differ diff --git a/Shared/EFT/Sirenix.Serialization.Config.dll b/Shared/EFT/Sirenix.Serialization.Config.dll deleted file mode 100644 index 8eeee09..0000000 Binary files a/Shared/EFT/Sirenix.Serialization.Config.dll and /dev/null differ diff --git a/Shared/EFT/Sirenix.Serialization.dll b/Shared/EFT/Sirenix.Serialization.dll deleted file mode 100644 index 084af9e..0000000 Binary files a/Shared/EFT/Sirenix.Serialization.dll and /dev/null differ diff --git a/Shared/EFT/Sirenix.Utilities.dll b/Shared/EFT/Sirenix.Utilities.dll deleted file mode 100644 index e5125cc..0000000 Binary files a/Shared/EFT/Sirenix.Utilities.dll and /dev/null differ diff --git a/Shared/EFT/SteamAudio.dll b/Shared/EFT/SteamAudio.dll deleted file mode 100644 index 62aa61b..0000000 Binary files a/Shared/EFT/SteamAudio.dll and /dev/null differ diff --git a/Shared/EFT/System.Buffers.dll b/Shared/EFT/System.Buffers.dll deleted file mode 100644 index fb2911d..0000000 Binary files a/Shared/EFT/System.Buffers.dll and /dev/null differ diff --git a/Shared/EFT/System.ComponentModel.Composition.dll b/Shared/EFT/System.ComponentModel.Composition.dll deleted file mode 100644 index e1d3535..0000000 Binary files a/Shared/EFT/System.ComponentModel.Composition.dll and /dev/null differ diff --git a/Shared/EFT/System.ComponentModel.DataAnnotations.dll b/Shared/EFT/System.ComponentModel.DataAnnotations.dll deleted file mode 100644 index 38f0539..0000000 Binary files a/Shared/EFT/System.ComponentModel.DataAnnotations.dll and /dev/null differ diff --git a/Shared/EFT/System.Configuration.Install.dll b/Shared/EFT/System.Configuration.Install.dll deleted file mode 100644 index c06845a..0000000 Binary files a/Shared/EFT/System.Configuration.Install.dll and /dev/null differ diff --git a/Shared/EFT/System.Configuration.dll b/Shared/EFT/System.Configuration.dll deleted file mode 100644 index 0cb31c4..0000000 Binary files a/Shared/EFT/System.Configuration.dll and /dev/null differ diff --git a/Shared/EFT/System.Core.dll b/Shared/EFT/System.Core.dll deleted file mode 100644 index e380077..0000000 Binary files a/Shared/EFT/System.Core.dll and /dev/null differ diff --git a/Shared/EFT/System.Data.dll b/Shared/EFT/System.Data.dll deleted file mode 100644 index b83de93..0000000 Binary files a/Shared/EFT/System.Data.dll and /dev/null differ diff --git a/Shared/EFT/System.Design.dll b/Shared/EFT/System.Design.dll deleted file mode 100644 index 8d1aada..0000000 Binary files a/Shared/EFT/System.Design.dll and /dev/null differ diff --git a/Shared/EFT/System.Diagnostics.Debug.dll b/Shared/EFT/System.Diagnostics.Debug.dll deleted file mode 100644 index 2d60ede..0000000 Binary files a/Shared/EFT/System.Diagnostics.Debug.dll and /dev/null differ diff --git a/Shared/EFT/System.Diagnostics.StackTrace.dll b/Shared/EFT/System.Diagnostics.StackTrace.dll deleted file mode 100644 index e3c7f1b..0000000 Binary files a/Shared/EFT/System.Diagnostics.StackTrace.dll and /dev/null differ diff --git a/Shared/EFT/System.Diagnostics.Tracing.dll b/Shared/EFT/System.Diagnostics.Tracing.dll deleted file mode 100644 index 9847549..0000000 Binary files a/Shared/EFT/System.Diagnostics.Tracing.dll and /dev/null differ diff --git a/Shared/EFT/System.DirectoryServices.dll b/Shared/EFT/System.DirectoryServices.dll deleted file mode 100644 index dfb5eaf..0000000 Binary files a/Shared/EFT/System.DirectoryServices.dll and /dev/null differ diff --git a/Shared/EFT/System.Drawing.Design.dll b/Shared/EFT/System.Drawing.Design.dll deleted file mode 100644 index b75f177..0000000 Binary files a/Shared/EFT/System.Drawing.Design.dll and /dev/null differ diff --git a/Shared/EFT/System.Drawing.dll b/Shared/EFT/System.Drawing.dll deleted file mode 100644 index 3264c83..0000000 Binary files a/Shared/EFT/System.Drawing.dll and /dev/null differ diff --git a/Shared/EFT/System.EnterpriseServices.dll b/Shared/EFT/System.EnterpriseServices.dll deleted file mode 100644 index 8921daa..0000000 Binary files a/Shared/EFT/System.EnterpriseServices.dll and /dev/null differ diff --git a/Shared/EFT/System.Globalization.Extensions.dll b/Shared/EFT/System.Globalization.Extensions.dll deleted file mode 100644 index bb45bbc..0000000 Binary files a/Shared/EFT/System.Globalization.Extensions.dll and /dev/null differ diff --git a/Shared/EFT/System.Globalization.dll b/Shared/EFT/System.Globalization.dll deleted file mode 100644 index 573abb2..0000000 Binary files a/Shared/EFT/System.Globalization.dll and /dev/null differ diff --git a/Shared/EFT/System.IO.Compression.FileSystem.dll b/Shared/EFT/System.IO.Compression.FileSystem.dll deleted file mode 100644 index 96643af..0000000 Binary files a/Shared/EFT/System.IO.Compression.FileSystem.dll and /dev/null differ diff --git a/Shared/EFT/System.IO.Compression.dll b/Shared/EFT/System.IO.Compression.dll deleted file mode 100644 index 4752b85..0000000 Binary files a/Shared/EFT/System.IO.Compression.dll and /dev/null differ diff --git a/Shared/EFT/System.IdentityModel.Selectors.dll b/Shared/EFT/System.IdentityModel.Selectors.dll deleted file mode 100644 index 219615b..0000000 Binary files a/Shared/EFT/System.IdentityModel.Selectors.dll and /dev/null differ diff --git a/Shared/EFT/System.IdentityModel.dll b/Shared/EFT/System.IdentityModel.dll deleted file mode 100644 index 0f57e29..0000000 Binary files a/Shared/EFT/System.IdentityModel.dll and /dev/null differ diff --git a/Shared/EFT/System.Memory.dll b/Shared/EFT/System.Memory.dll deleted file mode 100644 index 3423680..0000000 Binary files a/Shared/EFT/System.Memory.dll and /dev/null differ diff --git a/Shared/EFT/System.Messaging.dll b/Shared/EFT/System.Messaging.dll deleted file mode 100644 index 1c18811..0000000 Binary files a/Shared/EFT/System.Messaging.dll and /dev/null differ diff --git a/Shared/EFT/System.Net.Http.dll b/Shared/EFT/System.Net.Http.dll deleted file mode 100644 index 40c0132..0000000 Binary files a/Shared/EFT/System.Net.Http.dll and /dev/null differ diff --git a/Shared/EFT/System.Numerics.dll b/Shared/EFT/System.Numerics.dll deleted file mode 100644 index 1023bbd..0000000 Binary files a/Shared/EFT/System.Numerics.dll and /dev/null differ diff --git a/Shared/EFT/System.Reflection.dll b/Shared/EFT/System.Reflection.dll deleted file mode 100644 index 2f4171a..0000000 Binary files a/Shared/EFT/System.Reflection.dll and /dev/null differ diff --git a/Shared/EFT/System.Resources.ResourceManager.dll b/Shared/EFT/System.Resources.ResourceManager.dll deleted file mode 100644 index dd81923..0000000 Binary files a/Shared/EFT/System.Resources.ResourceManager.dll and /dev/null differ diff --git a/Shared/EFT/System.Runtime.CompilerServices.Unsafe.dll b/Shared/EFT/System.Runtime.CompilerServices.Unsafe.dll deleted file mode 100644 index d99e9f9..0000000 Binary files a/Shared/EFT/System.Runtime.CompilerServices.Unsafe.dll and /dev/null differ diff --git a/Shared/EFT/System.Runtime.DurableInstancing.dll b/Shared/EFT/System.Runtime.DurableInstancing.dll deleted file mode 100644 index 17a7554..0000000 Binary files a/Shared/EFT/System.Runtime.DurableInstancing.dll and /dev/null differ diff --git a/Shared/EFT/System.Runtime.Extensions.dll b/Shared/EFT/System.Runtime.Extensions.dll deleted file mode 100644 index d171045..0000000 Binary files a/Shared/EFT/System.Runtime.Extensions.dll and /dev/null differ diff --git a/Shared/EFT/System.Runtime.InteropServices.dll b/Shared/EFT/System.Runtime.InteropServices.dll deleted file mode 100644 index ce50b46..0000000 Binary files a/Shared/EFT/System.Runtime.InteropServices.dll and /dev/null differ diff --git a/Shared/EFT/System.Runtime.Serialization.Formatters.Soap.dll b/Shared/EFT/System.Runtime.Serialization.Formatters.Soap.dll deleted file mode 100644 index 18d0d2b..0000000 Binary files a/Shared/EFT/System.Runtime.Serialization.Formatters.Soap.dll and /dev/null differ diff --git a/Shared/EFT/System.Runtime.Serialization.Xml.dll b/Shared/EFT/System.Runtime.Serialization.Xml.dll deleted file mode 100644 index 606e49d..0000000 Binary files a/Shared/EFT/System.Runtime.Serialization.Xml.dll and /dev/null differ diff --git a/Shared/EFT/System.Runtime.Serialization.dll b/Shared/EFT/System.Runtime.Serialization.dll deleted file mode 100644 index aa88439..0000000 Binary files a/Shared/EFT/System.Runtime.Serialization.dll and /dev/null differ diff --git a/Shared/EFT/System.Runtime.dll b/Shared/EFT/System.Runtime.dll deleted file mode 100644 index eaae29a..0000000 Binary files a/Shared/EFT/System.Runtime.dll and /dev/null differ diff --git a/Shared/EFT/System.Security.dll b/Shared/EFT/System.Security.dll deleted file mode 100644 index 215fb6d..0000000 Binary files a/Shared/EFT/System.Security.dll and /dev/null differ diff --git a/Shared/EFT/System.ServiceModel.Activation.dll b/Shared/EFT/System.ServiceModel.Activation.dll deleted file mode 100644 index 57e7191..0000000 Binary files a/Shared/EFT/System.ServiceModel.Activation.dll and /dev/null differ diff --git a/Shared/EFT/System.ServiceModel.Internals.dll b/Shared/EFT/System.ServiceModel.Internals.dll deleted file mode 100644 index 22a4c54..0000000 Binary files a/Shared/EFT/System.ServiceModel.Internals.dll and /dev/null differ diff --git a/Shared/EFT/System.ServiceModel.dll b/Shared/EFT/System.ServiceModel.dll deleted file mode 100644 index c3d0ea3..0000000 Binary files a/Shared/EFT/System.ServiceModel.dll and /dev/null differ diff --git a/Shared/EFT/System.Threading.dll b/Shared/EFT/System.Threading.dll deleted file mode 100644 index 454cbd5..0000000 Binary files a/Shared/EFT/System.Threading.dll and /dev/null differ diff --git a/Shared/EFT/System.Transactions.dll b/Shared/EFT/System.Transactions.dll deleted file mode 100644 index 4c0cbe2..0000000 Binary files a/Shared/EFT/System.Transactions.dll and /dev/null differ diff --git a/Shared/EFT/System.Web.ApplicationServices.dll b/Shared/EFT/System.Web.ApplicationServices.dll deleted file mode 100644 index 9e1773f..0000000 Binary files a/Shared/EFT/System.Web.ApplicationServices.dll and /dev/null differ diff --git a/Shared/EFT/System.Web.Services.dll b/Shared/EFT/System.Web.Services.dll deleted file mode 100644 index 9d0ce24..0000000 Binary files a/Shared/EFT/System.Web.Services.dll and /dev/null differ diff --git a/Shared/EFT/System.Web.dll b/Shared/EFT/System.Web.dll deleted file mode 100644 index d9c0431..0000000 Binary files a/Shared/EFT/System.Web.dll and /dev/null differ diff --git a/Shared/EFT/System.Windows.Forms.dll b/Shared/EFT/System.Windows.Forms.dll deleted file mode 100644 index 0a56538..0000000 Binary files a/Shared/EFT/System.Windows.Forms.dll and /dev/null differ diff --git a/Shared/EFT/System.Xaml.dll b/Shared/EFT/System.Xaml.dll deleted file mode 100644 index 75bf59d..0000000 Binary files a/Shared/EFT/System.Xaml.dll and /dev/null differ diff --git a/Shared/EFT/System.Xml.Linq.dll b/Shared/EFT/System.Xml.Linq.dll deleted file mode 100644 index 0abfe59..0000000 Binary files a/Shared/EFT/System.Xml.Linq.dll and /dev/null differ diff --git a/Shared/EFT/System.Xml.XPath.XDocument.dll b/Shared/EFT/System.Xml.XPath.XDocument.dll deleted file mode 100644 index c44f014..0000000 Binary files a/Shared/EFT/System.Xml.XPath.XDocument.dll and /dev/null differ diff --git a/Shared/EFT/System.Xml.dll b/Shared/EFT/System.Xml.dll deleted file mode 100644 index 536a781..0000000 Binary files a/Shared/EFT/System.Xml.dll and /dev/null differ diff --git a/Shared/EFT/System.dll b/Shared/EFT/System.dll deleted file mode 100644 index 9ec1de4..0000000 Binary files a/Shared/EFT/System.dll and /dev/null differ diff --git a/Shared/EFT/Unity.Burst.Cecil.Mdb.dll b/Shared/EFT/Unity.Burst.Cecil.Mdb.dll deleted file mode 100644 index c91fb2c..0000000 Binary files a/Shared/EFT/Unity.Burst.Cecil.Mdb.dll and /dev/null differ diff --git a/Shared/EFT/Unity.Burst.Cecil.Pdb.dll b/Shared/EFT/Unity.Burst.Cecil.Pdb.dll deleted file mode 100644 index 62c2093..0000000 Binary files a/Shared/EFT/Unity.Burst.Cecil.Pdb.dll and /dev/null differ diff --git a/Shared/EFT/Unity.Burst.Cecil.Rocks.dll b/Shared/EFT/Unity.Burst.Cecil.Rocks.dll deleted file mode 100644 index ceda0a0..0000000 Binary files a/Shared/EFT/Unity.Burst.Cecil.Rocks.dll and /dev/null differ diff --git a/Shared/EFT/Unity.Burst.Cecil.dll b/Shared/EFT/Unity.Burst.Cecil.dll deleted file mode 100644 index 91aba2d..0000000 Binary files a/Shared/EFT/Unity.Burst.Cecil.dll and /dev/null differ diff --git a/Shared/EFT/Unity.Burst.Unsafe.dll b/Shared/EFT/Unity.Burst.Unsafe.dll deleted file mode 100644 index ac36cfa..0000000 Binary files a/Shared/EFT/Unity.Burst.Unsafe.dll and /dev/null differ diff --git a/Shared/EFT/Unity.Burst.dll b/Shared/EFT/Unity.Burst.dll deleted file mode 100644 index 0bbc1a2..0000000 Binary files a/Shared/EFT/Unity.Burst.dll and /dev/null differ diff --git a/Shared/EFT/Unity.Formats.Fbx.Runtime.dll b/Shared/EFT/Unity.Formats.Fbx.Runtime.dll deleted file mode 100644 index d359d18..0000000 Binary files a/Shared/EFT/Unity.Formats.Fbx.Runtime.dll and /dev/null differ diff --git a/Shared/EFT/Unity.Mathematics.dll b/Shared/EFT/Unity.Mathematics.dll deleted file mode 100644 index 4206e74..0000000 Binary files a/Shared/EFT/Unity.Mathematics.dll and /dev/null differ diff --git a/Shared/EFT/Unity.MemoryProfiler.dll b/Shared/EFT/Unity.MemoryProfiler.dll deleted file mode 100644 index 639f5c8..0000000 Binary files a/Shared/EFT/Unity.MemoryProfiler.dll and /dev/null differ diff --git a/Shared/EFT/Unity.PlayableGraphVisualizer.dll b/Shared/EFT/Unity.PlayableGraphVisualizer.dll deleted file mode 100644 index 78f6b41..0000000 Binary files a/Shared/EFT/Unity.PlayableGraphVisualizer.dll and /dev/null differ diff --git a/Shared/EFT/Unity.Postprocessing.Runtime.dll b/Shared/EFT/Unity.Postprocessing.Runtime.dll deleted file mode 100644 index 3b21b38..0000000 Binary files a/Shared/EFT/Unity.Postprocessing.Runtime.dll and /dev/null differ diff --git a/Shared/EFT/Unity.ProBuilder.Csg.dll b/Shared/EFT/Unity.ProBuilder.Csg.dll deleted file mode 100644 index 9dcca8a..0000000 Binary files a/Shared/EFT/Unity.ProBuilder.Csg.dll and /dev/null differ diff --git a/Shared/EFT/Unity.ProBuilder.KdTree.dll b/Shared/EFT/Unity.ProBuilder.KdTree.dll deleted file mode 100644 index 2d4e07c..0000000 Binary files a/Shared/EFT/Unity.ProBuilder.KdTree.dll and /dev/null differ diff --git a/Shared/EFT/Unity.ProBuilder.Poly2Tri.dll b/Shared/EFT/Unity.ProBuilder.Poly2Tri.dll deleted file mode 100644 index e625b01..0000000 Binary files a/Shared/EFT/Unity.ProBuilder.Poly2Tri.dll and /dev/null differ diff --git a/Shared/EFT/Unity.ProBuilder.Stl.dll b/Shared/EFT/Unity.ProBuilder.Stl.dll deleted file mode 100644 index 0e4ed84..0000000 Binary files a/Shared/EFT/Unity.ProBuilder.Stl.dll and /dev/null differ diff --git a/Shared/EFT/Unity.ProBuilder.dll b/Shared/EFT/Unity.ProBuilder.dll deleted file mode 100644 index 1fe2761..0000000 Binary files a/Shared/EFT/Unity.ProBuilder.dll and /dev/null differ diff --git a/Shared/EFT/Unity.Recorder.Base.dll b/Shared/EFT/Unity.Recorder.Base.dll deleted file mode 100644 index e02acda..0000000 Binary files a/Shared/EFT/Unity.Recorder.Base.dll and /dev/null differ diff --git a/Shared/EFT/Unity.Recorder.dll b/Shared/EFT/Unity.Recorder.dll deleted file mode 100644 index 16806be..0000000 Binary files a/Shared/EFT/Unity.Recorder.dll and /dev/null differ diff --git a/Shared/EFT/Unity.ScriptableBuildPipeline.dll b/Shared/EFT/Unity.ScriptableBuildPipeline.dll deleted file mode 100644 index d1a44c0..0000000 Binary files a/Shared/EFT/Unity.ScriptableBuildPipeline.dll and /dev/null differ diff --git a/Shared/EFT/Unity.TextMeshPro.dll b/Shared/EFT/Unity.TextMeshPro.dll deleted file mode 100644 index 820beed..0000000 Binary files a/Shared/EFT/Unity.TextMeshPro.dll and /dev/null differ diff --git a/Shared/EFT/Unity.Timeline.dll b/Shared/EFT/Unity.Timeline.dll deleted file mode 100644 index e7b4247..0000000 Binary files a/Shared/EFT/Unity.Timeline.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.AIModule.dll b/Shared/EFT/UnityEngine.AIModule.dll deleted file mode 100644 index 78e7704..0000000 Binary files a/Shared/EFT/UnityEngine.AIModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.ARModule.dll b/Shared/EFT/UnityEngine.ARModule.dll deleted file mode 100644 index faa2f92..0000000 Binary files a/Shared/EFT/UnityEngine.ARModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.AccessibilityModule.dll b/Shared/EFT/UnityEngine.AccessibilityModule.dll deleted file mode 100644 index 5229d35..0000000 Binary files a/Shared/EFT/UnityEngine.AccessibilityModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.AndroidJNIModule.dll b/Shared/EFT/UnityEngine.AndroidJNIModule.dll deleted file mode 100644 index 783d959..0000000 Binary files a/Shared/EFT/UnityEngine.AndroidJNIModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.AnimationModule.dll b/Shared/EFT/UnityEngine.AnimationModule.dll deleted file mode 100644 index 6243b6b..0000000 Binary files a/Shared/EFT/UnityEngine.AnimationModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.AssetBundleModule.dll b/Shared/EFT/UnityEngine.AssetBundleModule.dll deleted file mode 100644 index ebe4176..0000000 Binary files a/Shared/EFT/UnityEngine.AssetBundleModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.AudioModule.dll b/Shared/EFT/UnityEngine.AudioModule.dll deleted file mode 100644 index 04a092a..0000000 Binary files a/Shared/EFT/UnityEngine.AudioModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.ClothModule.dll b/Shared/EFT/UnityEngine.ClothModule.dll deleted file mode 100644 index e9a819d..0000000 Binary files a/Shared/EFT/UnityEngine.ClothModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.ClusterInputModule.dll b/Shared/EFT/UnityEngine.ClusterInputModule.dll deleted file mode 100644 index 6324fbb..0000000 Binary files a/Shared/EFT/UnityEngine.ClusterInputModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.ClusterRendererModule.dll b/Shared/EFT/UnityEngine.ClusterRendererModule.dll deleted file mode 100644 index 26ef8fa..0000000 Binary files a/Shared/EFT/UnityEngine.ClusterRendererModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.CoreModule.dll b/Shared/EFT/UnityEngine.CoreModule.dll deleted file mode 100644 index ecb5a04..0000000 Binary files a/Shared/EFT/UnityEngine.CoreModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.CrashReportingModule.dll b/Shared/EFT/UnityEngine.CrashReportingModule.dll deleted file mode 100644 index 7d391bd..0000000 Binary files a/Shared/EFT/UnityEngine.CrashReportingModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.DSPGraphModule.dll b/Shared/EFT/UnityEngine.DSPGraphModule.dll deleted file mode 100644 index eba8cc1..0000000 Binary files a/Shared/EFT/UnityEngine.DSPGraphModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.DirectorModule.dll b/Shared/EFT/UnityEngine.DirectorModule.dll deleted file mode 100644 index 5976cc5..0000000 Binary files a/Shared/EFT/UnityEngine.DirectorModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.GameCenterModule.dll b/Shared/EFT/UnityEngine.GameCenterModule.dll deleted file mode 100644 index 4797dbe..0000000 Binary files a/Shared/EFT/UnityEngine.GameCenterModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.GridModule.dll b/Shared/EFT/UnityEngine.GridModule.dll deleted file mode 100644 index 61c1ec4..0000000 Binary files a/Shared/EFT/UnityEngine.GridModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.HotReloadModule.dll b/Shared/EFT/UnityEngine.HotReloadModule.dll deleted file mode 100644 index 746630a..0000000 Binary files a/Shared/EFT/UnityEngine.HotReloadModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.IMGUIModule.dll b/Shared/EFT/UnityEngine.IMGUIModule.dll deleted file mode 100644 index 5dd78e5..0000000 Binary files a/Shared/EFT/UnityEngine.IMGUIModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.ImageConversionModule.dll b/Shared/EFT/UnityEngine.ImageConversionModule.dll deleted file mode 100644 index 79aa449..0000000 Binary files a/Shared/EFT/UnityEngine.ImageConversionModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.InputLegacyModule.dll b/Shared/EFT/UnityEngine.InputLegacyModule.dll deleted file mode 100644 index 1067ff9..0000000 Binary files a/Shared/EFT/UnityEngine.InputLegacyModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.InputModule.dll b/Shared/EFT/UnityEngine.InputModule.dll deleted file mode 100644 index 3be4fb9..0000000 Binary files a/Shared/EFT/UnityEngine.InputModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.JSONSerializeModule.dll b/Shared/EFT/UnityEngine.JSONSerializeModule.dll deleted file mode 100644 index cd1981f..0000000 Binary files a/Shared/EFT/UnityEngine.JSONSerializeModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.LocalizationModule.dll b/Shared/EFT/UnityEngine.LocalizationModule.dll deleted file mode 100644 index 292f854..0000000 Binary files a/Shared/EFT/UnityEngine.LocalizationModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.ParticleSystemModule.dll b/Shared/EFT/UnityEngine.ParticleSystemModule.dll deleted file mode 100644 index 8bb192f..0000000 Binary files a/Shared/EFT/UnityEngine.ParticleSystemModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.PerformanceReportingModule.dll b/Shared/EFT/UnityEngine.PerformanceReportingModule.dll deleted file mode 100644 index faf6411..0000000 Binary files a/Shared/EFT/UnityEngine.PerformanceReportingModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.Physics2DModule.dll b/Shared/EFT/UnityEngine.Physics2DModule.dll deleted file mode 100644 index 65dba8a..0000000 Binary files a/Shared/EFT/UnityEngine.Physics2DModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.PhysicsModule.dll b/Shared/EFT/UnityEngine.PhysicsModule.dll deleted file mode 100644 index 4a7a9a6..0000000 Binary files a/Shared/EFT/UnityEngine.PhysicsModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.ProfilerModule.dll b/Shared/EFT/UnityEngine.ProfilerModule.dll deleted file mode 100644 index 7644763..0000000 Binary files a/Shared/EFT/UnityEngine.ProfilerModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.ScreenCaptureModule.dll b/Shared/EFT/UnityEngine.ScreenCaptureModule.dll deleted file mode 100644 index 4ec8198..0000000 Binary files a/Shared/EFT/UnityEngine.ScreenCaptureModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.SharedInternalsModule.dll b/Shared/EFT/UnityEngine.SharedInternalsModule.dll deleted file mode 100644 index 8a9c9eb..0000000 Binary files a/Shared/EFT/UnityEngine.SharedInternalsModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.SpriteMaskModule.dll b/Shared/EFT/UnityEngine.SpriteMaskModule.dll deleted file mode 100644 index 3de5b54..0000000 Binary files a/Shared/EFT/UnityEngine.SpriteMaskModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.SpriteShapeModule.dll b/Shared/EFT/UnityEngine.SpriteShapeModule.dll deleted file mode 100644 index b59a5b8..0000000 Binary files a/Shared/EFT/UnityEngine.SpriteShapeModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.StreamingModule.dll b/Shared/EFT/UnityEngine.StreamingModule.dll deleted file mode 100644 index 69068e5..0000000 Binary files a/Shared/EFT/UnityEngine.StreamingModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.SubstanceModule.dll b/Shared/EFT/UnityEngine.SubstanceModule.dll deleted file mode 100644 index 451b91e..0000000 Binary files a/Shared/EFT/UnityEngine.SubstanceModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.SubsystemsModule.dll b/Shared/EFT/UnityEngine.SubsystemsModule.dll deleted file mode 100644 index b5b7429..0000000 Binary files a/Shared/EFT/UnityEngine.SubsystemsModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.TLSModule.dll b/Shared/EFT/UnityEngine.TLSModule.dll deleted file mode 100644 index 9fae713..0000000 Binary files a/Shared/EFT/UnityEngine.TLSModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.TerrainModule.dll b/Shared/EFT/UnityEngine.TerrainModule.dll deleted file mode 100644 index 1c5b70d..0000000 Binary files a/Shared/EFT/UnityEngine.TerrainModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.TerrainPhysicsModule.dll b/Shared/EFT/UnityEngine.TerrainPhysicsModule.dll deleted file mode 100644 index 48119b4..0000000 Binary files a/Shared/EFT/UnityEngine.TerrainPhysicsModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.TextCoreModule.dll b/Shared/EFT/UnityEngine.TextCoreModule.dll deleted file mode 100644 index e13a54d..0000000 Binary files a/Shared/EFT/UnityEngine.TextCoreModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.TextRenderingModule.dll b/Shared/EFT/UnityEngine.TextRenderingModule.dll deleted file mode 100644 index 447239e..0000000 Binary files a/Shared/EFT/UnityEngine.TextRenderingModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.TilemapModule.dll b/Shared/EFT/UnityEngine.TilemapModule.dll deleted file mode 100644 index 6c43665..0000000 Binary files a/Shared/EFT/UnityEngine.TilemapModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.UI.dll b/Shared/EFT/UnityEngine.UI.dll deleted file mode 100644 index 9ced750..0000000 Binary files a/Shared/EFT/UnityEngine.UI.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.UIElementsModule.dll b/Shared/EFT/UnityEngine.UIElementsModule.dll deleted file mode 100644 index f404351..0000000 Binary files a/Shared/EFT/UnityEngine.UIElementsModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.UIModule.dll b/Shared/EFT/UnityEngine.UIModule.dll deleted file mode 100644 index e082dda..0000000 Binary files a/Shared/EFT/UnityEngine.UIModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.UNETModule.dll b/Shared/EFT/UnityEngine.UNETModule.dll deleted file mode 100644 index 0234fad..0000000 Binary files a/Shared/EFT/UnityEngine.UNETModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.UmbraModule.dll b/Shared/EFT/UnityEngine.UmbraModule.dll deleted file mode 100644 index 1045e18..0000000 Binary files a/Shared/EFT/UnityEngine.UmbraModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.UnityAnalyticsModule.dll b/Shared/EFT/UnityEngine.UnityAnalyticsModule.dll deleted file mode 100644 index e3c39e8..0000000 Binary files a/Shared/EFT/UnityEngine.UnityAnalyticsModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.UnityConnectModule.dll b/Shared/EFT/UnityEngine.UnityConnectModule.dll deleted file mode 100644 index 7ec2470..0000000 Binary files a/Shared/EFT/UnityEngine.UnityConnectModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.UnityTestProtocolModule.dll b/Shared/EFT/UnityEngine.UnityTestProtocolModule.dll deleted file mode 100644 index 297e455..0000000 Binary files a/Shared/EFT/UnityEngine.UnityTestProtocolModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.UnityWebRequestAssetBundleModule.dll b/Shared/EFT/UnityEngine.UnityWebRequestAssetBundleModule.dll deleted file mode 100644 index 0024d85..0000000 Binary files a/Shared/EFT/UnityEngine.UnityWebRequestAssetBundleModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.UnityWebRequestAudioModule.dll b/Shared/EFT/UnityEngine.UnityWebRequestAudioModule.dll deleted file mode 100644 index d4f9220..0000000 Binary files a/Shared/EFT/UnityEngine.UnityWebRequestAudioModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.UnityWebRequestModule.dll b/Shared/EFT/UnityEngine.UnityWebRequestModule.dll deleted file mode 100644 index b99842a..0000000 Binary files a/Shared/EFT/UnityEngine.UnityWebRequestModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.UnityWebRequestTextureModule.dll b/Shared/EFT/UnityEngine.UnityWebRequestTextureModule.dll deleted file mode 100644 index d8b643a..0000000 Binary files a/Shared/EFT/UnityEngine.UnityWebRequestTextureModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.UnityWebRequestWWWModule.dll b/Shared/EFT/UnityEngine.UnityWebRequestWWWModule.dll deleted file mode 100644 index b8b8314..0000000 Binary files a/Shared/EFT/UnityEngine.UnityWebRequestWWWModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.VFXModule.dll b/Shared/EFT/UnityEngine.VFXModule.dll deleted file mode 100644 index 0895120..0000000 Binary files a/Shared/EFT/UnityEngine.VFXModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.VRModule.dll b/Shared/EFT/UnityEngine.VRModule.dll deleted file mode 100644 index ea9d6fe..0000000 Binary files a/Shared/EFT/UnityEngine.VRModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.VehiclesModule.dll b/Shared/EFT/UnityEngine.VehiclesModule.dll deleted file mode 100644 index f7c1085..0000000 Binary files a/Shared/EFT/UnityEngine.VehiclesModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.VideoModule.dll b/Shared/EFT/UnityEngine.VideoModule.dll deleted file mode 100644 index 6b9f0a9..0000000 Binary files a/Shared/EFT/UnityEngine.VideoModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.WindModule.dll b/Shared/EFT/UnityEngine.WindModule.dll deleted file mode 100644 index 8ac2232..0000000 Binary files a/Shared/EFT/UnityEngine.WindModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.XRModule.dll b/Shared/EFT/UnityEngine.XRModule.dll deleted file mode 100644 index a58bf6a..0000000 Binary files a/Shared/EFT/UnityEngine.XRModule.dll and /dev/null differ diff --git a/Shared/EFT/UnityEngine.dll b/Shared/EFT/UnityEngine.dll deleted file mode 100644 index 6ff1d0f..0000000 Binary files a/Shared/EFT/UnityEngine.dll and /dev/null differ diff --git a/Shared/EFT/bsg.componentace.compression.libs.zlib.dll b/Shared/EFT/bsg.componentace.compression.libs.zlib.dll deleted file mode 100644 index e5fb0c8..0000000 Binary files a/Shared/EFT/bsg.componentace.compression.libs.zlib.dll and /dev/null differ diff --git a/Shared/EFT/bsg.console.core.dll b/Shared/EFT/bsg.console.core.dll deleted file mode 100644 index 46496cf..0000000 Binary files a/Shared/EFT/bsg.console.core.dll and /dev/null differ diff --git a/Shared/EFT/bsg.microsoft.extensions.objectpool.dll b/Shared/EFT/bsg.microsoft.extensions.objectpool.dll deleted file mode 100644 index abfc21b..0000000 Binary files a/Shared/EFT/bsg.microsoft.extensions.objectpool.dll and /dev/null differ diff --git a/Shared/EFT/bsg.system.buffers.dll b/Shared/EFT/bsg.system.buffers.dll deleted file mode 100644 index 523db23..0000000 Binary files a/Shared/EFT/bsg.system.buffers.dll and /dev/null differ diff --git a/Shared/EFT/com.nvidia.reflex.Runtime.dll b/Shared/EFT/com.nvidia.reflex.Runtime.dll deleted file mode 100644 index f424efb..0000000 Binary files a/Shared/EFT/com.nvidia.reflex.Runtime.dll and /dev/null differ diff --git a/Shared/EFT/com.unity.multiplayer-hlapi.Runtime.dll b/Shared/EFT/com.unity.multiplayer-hlapi.Runtime.dll deleted file mode 100644 index bb36011..0000000 Binary files a/Shared/EFT/com.unity.multiplayer-hlapi.Runtime.dll and /dev/null differ diff --git a/Shared/EFT/mscorlib.dll b/Shared/EFT/mscorlib.dll deleted file mode 100644 index f0e8b91..0000000 Binary files a/Shared/EFT/mscorlib.dll and /dev/null differ diff --git a/Shared/EFT/netstandard.dll b/Shared/EFT/netstandard.dll deleted file mode 100644 index ecc4473..0000000 Binary files a/Shared/EFT/netstandard.dll and /dev/null differ diff --git a/Shared/EFT/uLipSync.Runtime.dll b/Shared/EFT/uLipSync.Runtime.dll deleted file mode 100644 index c7ea9a4..0000000 Binary files a/Shared/EFT/uLipSync.Runtime.dll and /dev/null differ diff --git a/Shared/EFT/websocket-sharp.dll b/Shared/EFT/websocket-sharp.dll deleted file mode 100644 index 10e4b69..0000000 Binary files a/Shared/EFT/websocket-sharp.dll and /dev/null differ