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