diff --git a/TypeScript/12ClassExtensionOverride/types/callbacks/DataCallbacks.d.ts b/TypeScript/12ClassExtensionOverride/types/callbacks/DataCallbacks.d.ts index 1f359e5..a9bc1d6 100644 --- a/TypeScript/12ClassExtensionOverride/types/callbacks/DataCallbacks.d.ts +++ b/TypeScript/12ClassExtensionOverride/types/callbacks/DataCallbacks.d.ts @@ -1,8 +1,11 @@ +import { HideoutController } from "../controllers/HideoutController"; +import { RagfairController } from "../controllers/RagfairController"; import { IEmptyRequestData } from "../models/eft/common/IEmptyRequestData"; import { IGlobals } from "../models/eft/common/IGlobals"; import { ICustomizationItem } from "../models/eft/common/tables/ICustomizationItem"; import { IHandbookBase } from "../models/eft/common/tables/IHandbookBase"; import { IQuest } from "../models/eft/common/tables/IQuest"; +import { IGetItemPricesResponse } from "../models/eft/game/IGetItemPricesResponse"; import { IHideoutArea } from "../models/eft/hideout/IHideoutArea"; import { IHideoutProduction } from "../models/eft/hideout/IHideoutProduction"; import { IHideoutScavCase } from "../models/eft/hideout/IHideoutScavCase"; @@ -17,7 +20,9 @@ import { HttpResponseUtil } from "../utils/HttpResponseUtil"; export declare class DataCallbacks { protected httpResponse: HttpResponseUtil; protected databaseServer: DatabaseServer; - constructor(httpResponse: HttpResponseUtil, databaseServer: DatabaseServer); + protected ragfairController: RagfairController; + protected hideoutController: HideoutController; + constructor(httpResponse: HttpResponseUtil, databaseServer: DatabaseServer, ragfairController: RagfairController, hideoutController: HideoutController); /** * Handles client/settings * @returns ISettingsBase @@ -56,4 +61,9 @@ export declare class DataCallbacks { getLocalesLanguages(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData>; getLocalesMenu(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; getLocalesGlobal(url: string, info: IEmptyRequestData, sessionID: string): string; + /** + * Handle client/hideout/qte/list + */ + getQteList(url: string, info: IEmptyRequestData, sessionID: string): string; + getItemPrices(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData; } diff --git a/TypeScript/12ClassExtensionOverride/types/callbacks/MatchCallbacks.d.ts b/TypeScript/12ClassExtensionOverride/types/callbacks/MatchCallbacks.d.ts index 10fbc44..52e3290 100644 --- a/TypeScript/12ClassExtensionOverride/types/callbacks/MatchCallbacks.d.ts +++ b/TypeScript/12ClassExtensionOverride/types/callbacks/MatchCallbacks.d.ts @@ -7,10 +7,10 @@ import { ICreateGroupRequestData } from "../models/eft/match/ICreateGroupRequest import { IEndOfflineRaidRequestData } from "../models/eft/match/IEndOfflineRaidRequestData"; import { IGetGroupStatusRequestData } from "../models/eft/match/IGetGroupStatusRequestData"; import { IGetProfileRequestData } from "../models/eft/match/IGetProfileRequestData"; +import { IGetRaidConfigurationRequestData } from "../models/eft/match/IGetRaidConfigurationRequestData"; import { IJoinMatchRequestData } from "../models/eft/match/IJoinMatchRequestData"; import { IJoinMatchResult } from "../models/eft/match/IJoinMatchResult"; import { IPutMetricsRequestData } from "../models/eft/match/IPutMetricsRequestData"; -import { IStartOfflineRaidRequestData } from "../models/eft/match/IStartOffineRaidRequestData"; import { IUpdatePingRequestData } from "../models/eft/match/IUpdatePingRequestData"; import { DatabaseServer } from "../servers/DatabaseServer"; import { HttpResponseUtil } from "../utils/HttpResponseUtil"; @@ -41,6 +41,6 @@ export declare class MatchCallbacks { getGroupStatus(url: string, info: IGetGroupStatusRequestData, sessionID: string): IGetBodyResponseData; createGroup(url: string, info: ICreateGroupRequestData, sessionID: string): IGetBodyResponseData; deleteGroup(url: string, info: any, sessionID: string): INullResponseData; - startOfflineRaid(url: string, info: IStartOfflineRaidRequestData, sessionID: string): INullResponseData; endOfflineRaid(url: string, info: IEndOfflineRaidRequestData, sessionID: string): INullResponseData; + getRaidConfiguration(url: string, info: IGetRaidConfigurationRequestData, sessionID: string): INullResponseData; } diff --git a/TypeScript/12ClassExtensionOverride/types/callbacks/RagfairCallbacks.d.ts b/TypeScript/12ClassExtensionOverride/types/callbacks/RagfairCallbacks.d.ts index 15597bf..de46b37 100644 --- a/TypeScript/12ClassExtensionOverride/types/callbacks/RagfairCallbacks.d.ts +++ b/TypeScript/12ClassExtensionOverride/types/callbacks/RagfairCallbacks.d.ts @@ -33,10 +33,14 @@ export declare class RagfairCallbacks extends OnLoadOnUpdate { getRoute(): string; search(url: string, info: ISearchRequestData, sessionID: string): IGetBodyResponseData; getMarketPrice(url: string, info: IGetMarketPriceRequestData, sessionID: string): IGetBodyResponseData; - getItemPrices(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData>; addOffer(pmcData: IPmcData, info: IAddOfferRequestData, sessionID: string): IItemEventRouterResponse; removeOffer(pmcData: IPmcData, info: IRemoveOfferRequestData, sessionID: string): IItemEventRouterResponse; extendOffer(pmcData: IPmcData, info: IExtendOfferRequestData, sessionID: string): IItemEventRouterResponse; + /** + * Handle /client/items/prices + * Called when clicking an item to list on flea + */ + getFleaPrices(url: string, request: IEmptyRequestData, sessionID: string): IGetBodyResponseData>; onUpdate(timeSinceLastRun: number): Promise; sendReport(url: string, info: ISendRagfairReportRequestData, sessionID: string): INullResponseData; } diff --git a/TypeScript/12ClassExtensionOverride/types/context/ContextVariableType.d.ts b/TypeScript/12ClassExtensionOverride/types/context/ContextVariableType.d.ts index fa5390f..49f3267 100644 --- a/TypeScript/12ClassExtensionOverride/types/context/ContextVariableType.d.ts +++ b/TypeScript/12ClassExtensionOverride/types/context/ContextVariableType.d.ts @@ -2,7 +2,7 @@ export declare enum ContextVariableType { /** Logged in users session id */ SESSION_ID = 0, /** Currently acive raid information */ - MATCH_INFO = 1, + RAID_CONFIGURATION = 1, /** Timestamp when client first connected */ CLIENT_START_TIMESTAMP = 2, /** When player is loading into map and loot is requested */ diff --git a/TypeScript/12ClassExtensionOverride/types/controllers/HideoutController.d.ts b/TypeScript/12ClassExtensionOverride/types/controllers/HideoutController.d.ts index 5b6507b..fdef1ac 100644 --- a/TypeScript/12ClassExtensionOverride/types/controllers/HideoutController.d.ts +++ b/TypeScript/12ClassExtensionOverride/types/controllers/HideoutController.d.ts @@ -16,6 +16,7 @@ import { IHideoutTakeItemOutRequestData } from "../models/eft/hideout/IHideoutTa import { IHideoutTakeProductionRequestData } from "../models/eft/hideout/IHideoutTakeProductionRequestData"; import { IHideoutToggleAreaRequestData } from "../models/eft/hideout/IHideoutToggleAreaRequestData"; import { IHideoutUpgradeRequestData } from "../models/eft/hideout/IHideoutUpgradeRequestData"; +import { IQteData } from "../models/eft/hideout/IQteData"; import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; import { IHideoutConfig } from "../models/spt/config/IHideoutConfig"; import { ILogger } from "../models/spt/utils/ILogger"; @@ -102,5 +103,12 @@ export declare class HideoutController { */ protected handleScavCase(sessionID: string, pmcData: IPmcData, body: IHideoutTakeProductionRequestData, output: IItemEventRouterResponse): IItemEventRouterResponse; registerProduction(pmcData: IPmcData, body: IHideoutSingleProductionStartRequestData | IHideoutContinousProductionStartRequestData, sessionID: string): IItemEventRouterResponse; + /** + * Get quick time event list for hideout + * // TODO - implement this + * @param sessionId Session id + * @returns IQteData array + */ + getQteList(sessionId: string): IQteData[]; update(): void; } diff --git a/TypeScript/12ClassExtensionOverride/types/controllers/MatchController.d.ts b/TypeScript/12ClassExtensionOverride/types/controllers/MatchController.d.ts index 2c78405..e732dfd 100644 --- a/TypeScript/12ClassExtensionOverride/types/controllers/MatchController.d.ts +++ b/TypeScript/12ClassExtensionOverride/types/controllers/MatchController.d.ts @@ -6,10 +6,9 @@ import { ICreateGroupRequestData } from "../models/eft/match/ICreateGroupRequest import { IEndOfflineRaidRequestData } from "../models/eft/match/IEndOfflineRaidRequestData"; import { IGetGroupStatusRequestData } from "../models/eft/match/IGetGroupStatusRequestData"; import { IGetProfileRequestData } from "../models/eft/match/IGetProfileRequestData"; +import { IGetRaidConfigurationRequestData } from "../models/eft/match/IGetRaidConfigurationRequestData"; import { IJoinMatchRequestData } from "../models/eft/match/IJoinMatchRequestData"; import { IJoinMatchResult } from "../models/eft/match/IJoinMatchResult"; -import { IStartOfflineRaidRequestData } from "../models/eft/match/IStartOffineRaidRequestData"; -import { BotDifficulty } from "../models/enums/BotDifficulty"; import { IBotConfig } from "../models/spt/config/IBotConfig"; import { IInRaidConfig } from "../models/spt/config/IInRaidConfig"; import { IMatchConfig } from "../models/spt/config/IMatchConfig"; @@ -46,12 +45,17 @@ export declare class MatchController { joinMatch(info: IJoinMatchRequestData, sessionID: string): IJoinMatchResult[]; protected getMatch(location: string): any; getGroupStatus(info: IGetGroupStatusRequestData): any; - startOfflineRaid(info: IStartOfflineRaidRequestData, sessionID: string): void; + /** + * Handle /client/raid/configuration + * @param request + * @param sessionID + */ + startOfflineRaid(request: IGetRaidConfigurationRequestData, sessionID: string): void; /** * Convert a difficulty value from pre-raid screen to a bot difficulty - * @param botDifficulty dropdown difficulty + * @param botDifficulty dropdown difficulty value * @returns bot difficulty */ - protected convertDifficultyDropdownIntoBotDifficulty(botDifficulty: BotDifficulty): string; + protected convertDifficultyDropdownIntoBotDifficulty(botDifficulty: string): string; endOfflineRaid(info: IEndOfflineRaidRequestData, sessionID: string): void; } diff --git a/TypeScript/12ClassExtensionOverride/types/controllers/RagfairController.d.ts b/TypeScript/12ClassExtensionOverride/types/controllers/RagfairController.d.ts index 36a919f..86cd365 100644 --- a/TypeScript/12ClassExtensionOverride/types/controllers/RagfairController.d.ts +++ b/TypeScript/12ClassExtensionOverride/types/controllers/RagfairController.d.ts @@ -115,6 +115,7 @@ export declare class RagfairController { addPlayerOffer(pmcData: IPmcData, info: IAddOfferRequestData, sessionID: string): IItemEventRouterResponse; createPlayerOffer(profile: IAkiProfile, requirements: Requirement[], items: Item[], sellInOnePiece: boolean, amountToSend: number): IRagfairOffer; getAllFleaPrices(): Record; + getStaticPrices(): Record; removeOffer(offerId: string, sessionID: string): IItemEventRouterResponse; extendOffer(info: IExtendOfferRequestData, sessionID: string): IItemEventRouterResponse; } diff --git a/TypeScript/12ClassExtensionOverride/types/helpers/InventoryHelper.d.ts b/TypeScript/12ClassExtensionOverride/types/helpers/InventoryHelper.d.ts index 1ce49da..8c44dc6 100644 --- a/TypeScript/12ClassExtensionOverride/types/helpers/InventoryHelper.d.ts +++ b/TypeScript/12ClassExtensionOverride/types/helpers/InventoryHelper.d.ts @@ -1,6 +1,7 @@ import { IPmcData } from "../models/eft/common/IPmcData"; import { Item } from "../models/eft/common/tables/IItem"; -import { IAddItemRequestData } from "../models/eft/inventory/IAddItemRequestData"; +import { AddItem, IAddItemRequestData } from "../models/eft/inventory/IAddItemRequestData"; +import { IAddItemTempObject } from "../models/eft/inventory/IAddItemTempObject"; import { IInventoryMergeRequestData } from "../models/eft/inventory/IInventoryMergeRequestData"; import { IInventoryMoveRequestData } from "../models/eft/inventory/IInventoryMoveRequestData"; import { IInventorySplitRequestData } from "../models/eft/inventory/IInventorySplitRequestData"; @@ -46,15 +47,41 @@ export declare class InventoryHelper { /** * BUG: Passing the same item multiple times with a count of 1 will cause multiples of that item to be added (e.g. x3 separate objects of tar cola with count of 1 = 9 tarcolas being added to inventory) * @param pmcData Profile to add items to - * @param body request data to add items + * @param request request data to add items * @param output response to send back to client * @param sessionID Session id - * @param callback + * @param callback Code to execute later (function) * @param foundInRaid Will results added to inventory be set as found in raid * @param addUpd Additional upd propertys for items being added to inventory * @returns IItemEventRouterResponse */ - addItem(pmcData: IPmcData, body: IAddItemRequestData, output: IItemEventRouterResponse, sessionID: string, callback: any, foundInRaid?: boolean, addUpd?: any): IItemEventRouterResponse; + addItem(pmcData: IPmcData, request: IAddItemRequestData, output: IItemEventRouterResponse, sessionID: string, callback: { + (): void; + }, foundInRaid?: boolean, addUpd?: any): IItemEventRouterResponse; + /** + * Add ammo to ammo boxes + * @param itemToAdd Item to check is ammo box + * @param toDo + * @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; + /** + * + * @param assortItems Items to add to inventory + * @param requestItem Details of purchased item to add to inventory + * @param result Array split stacks are added to + */ + protected splitStackIntoSmallerStacks(assortItems: Item[], requestItem: AddItem, result: IAddItemTempObject[]): void; + /** + * Remove item from player inventory + * @param pmcData Profile to remove item from + * @param itemId Items id to remove + * @param sessionID Session id + * @param output Existing IItemEventRouterResponse object to append data to, creates new one by default if not supplied + * @returns IItemEventRouterResponse + */ removeItem(pmcData: IPmcData, itemId: string, sessionID: string, output?: IItemEventRouterResponse): IItemEventRouterResponse; removeItemByCount(pmcData: IPmcData, itemId: string, count: number, sessionID: string, output?: IItemEventRouterResponse): IItemEventRouterResponse; getItemSize(itemTpl: string, itemID: string, inventoryItem: Item[]): Record; diff --git a/TypeScript/12ClassExtensionOverride/types/helpers/TradeHelper.d.ts b/TypeScript/12ClassExtensionOverride/types/helpers/TradeHelper.d.ts index 94ec382..43c3f19 100644 --- a/TypeScript/12ClassExtensionOverride/types/helpers/TradeHelper.d.ts +++ b/TypeScript/12ClassExtensionOverride/types/helpers/TradeHelper.d.ts @@ -38,11 +38,11 @@ export declare class TradeHelper { /** * Sell item to trader * @param pmcData Profile to update - * @param body - * @param sessionID - * @returns + * @param sellRequest request data + * @param sessionID Session id + * @returns IItemEventRouterResponse */ - sellItem(pmcData: IPmcData, body: IProcessSellTradeRequestData, sessionID: string): IItemEventRouterResponse; + sellItem(pmcData: IPmcData, sellRequest: IProcessSellTradeRequestData, sessionID: string): IItemEventRouterResponse; /** * Increment the assorts buy count by number of items purchased * Show error on screen if player attepts to buy more than what the buy max allows diff --git a/TypeScript/12ClassExtensionOverride/types/models/eft/common/IGlobals.d.ts b/TypeScript/12ClassExtensionOverride/types/models/eft/common/IGlobals.d.ts index b53f106..60cdf5b 100644 --- a/TypeScript/12ClassExtensionOverride/types/models/eft/common/IGlobals.d.ts +++ b/TypeScript/12ClassExtensionOverride/types/models/eft/common/IGlobals.d.ts @@ -29,6 +29,8 @@ export interface Config { GlobalLootChanceModifier: number; TimeBeforeDeploy: number; TimeBeforeDeployLocal: number; + TradingSetting: number; + TradingSettings: ITradingSettings; LoadTimeSpeedProgress: number; BaseLoadTime: number; BaseUnloadTime: number; @@ -36,6 +38,7 @@ export interface Config { Customization: Customization; UncheckOnShot: boolean; BotsEnabled: boolean; + BufferZone: IBufferZone; ArmorMaterials: ArmorMaterials; LegsOverdamage: number; HandsOverdamage: number; @@ -55,7 +58,6 @@ export interface Config { StaminaRestoration: StaminaRestoration; StaminaDrain: StaminaDrain; RequirementReferences: RequirementReferences; - RepairKitSettings: RepairKitSettings; RestrictionsInRaid: RestrictionsInRaid[]; SkillMinEffectiveness: number; SkillFatiguePerPoint: number; @@ -83,6 +85,19 @@ export interface Config { Inertia: Inertia; Ballistic: Ballistic; } +export interface IBufferZone { + CustomerAccessTime: number; + CustomerCriticalTimeStart: number; + CustomerKickNotifTime: number; +} +export interface ITradingSettings { + BuyoutRestrictions: IBuyoutRestrictions; +} +export interface IBuyoutRestrictions { + MinDurability: number; + MinFoodDrinkResource: number; + MinMedsResource: number; +} export interface Content { ip: string; port: number; @@ -321,6 +336,8 @@ export interface Effects { Pain: Pain; PainKiller: PainKiller; SandingScreen: SandingScreen; + MildMusclePain: IMusclePainEffect; + SevereMusclePain: IMusclePainEffect; Stimulator: Stimulator; Tremor: Tremor; ChronicStaminaFatigue: ChronicStaminaFatigue; @@ -457,6 +474,12 @@ export interface PainKiller { export interface SandingScreen { Dummy: number; } +export interface IMusclePainEffect { + GymEffectivity: number; + OfflineDurationMax: number; + OfflineDurationMin: number; + TraumaChance: number; +} export interface Stimulator { BuffLoopTime: number; Buffs: Buffs; @@ -803,7 +826,7 @@ export interface SkillsSettings { HMG: any[]; Launcher: any[]; AttachedLauncher: any[]; - Melee: any[]; + Melee: IMeleeSkill; DMR: WeaponSkills; BearAssaultoperations: any[]; BearAuthority: any[]; @@ -847,10 +870,25 @@ export interface SkillsSettings { BotSound: any[]; TroubleShooting: TroubleShooting; } +export interface IMeleeSkill { + BuffSettings: IBuffSettings; +} export interface ArmorSkills { + BuffMaxCount: number; + BuffSettings: IBuffSettings; + Counters: IArmorCounters; + MoveSpeedPenaltyReductionHVestsReducePerLevel: number; + RicochetChanceHVestsCurrentDurabilityThreshold: number; + RicochetChanceHVestsEliteLevel: number; + RicochetChanceHVestsMaxDurabilityThreshold: number; + MeleeDamageLVestsReducePerLevel: number; + MoveSpeedPenaltyReductionLVestsReducePerLevel: number; WearAmountRepairLVestsReducePerLevel: number; WearChanceRepairLVestsReduceEliteLevel: number; } +export interface IArmorCounters { + armorDurability: ISkillCounter; +} export interface HideoutManagement { SkillPointsPerAreaUpgrade: number; SkillPointsPerCraft: number; @@ -907,6 +945,7 @@ export interface Endurance { MovementAction: number; SprintAction: number; GainPerFatigueStack: number; + QTELevelMultipliers: Record>; } export interface Strength { SprintActionMin: number; @@ -915,9 +954,14 @@ export interface Strength { MovementActionMax: number; PushUpMin: number; PushUpMax: number; + QTELevelMultipliers: IQTELevelMultiplier[]; FistfightAction: number; ThrowAction: number; } +export interface IQTELevelMultiplier { + Level: number; + Multiplier: number; +} export interface Vitality { DamageTakenAction: number; HealthNegativeEffect: number; @@ -950,22 +994,42 @@ export interface Search { FindAction: number; } export interface WeaponTreatment { + BuffMaxCount: number; + BuffSettings: IBuffSettings; + Counters: IWeaponTreatmentCounters; DurLossReducePerLevel: number; SkillPointsPerRepair: number; Filter: any[]; WearAmountRepairGunsReducePerLevel: number; WearChanceRepairGunsReduceEliteLevel: number; } +export interface IWeaponTreatmentCounters { + firearmsDurability: ISkillCounter; +} +export interface IBuffSettings { + CommonBuffChanceLevelBonus: number; + CommonBuffMinChanceValue: number; + CurrentDurabilityLossToRemoveBuff?: number; + MaxDurabilityLossToRemoveBuff?: number; + RareBuffChanceCoff: number; + ReceivedDurabilityMaxPercent: number; +} export interface MagDrills { RaidLoadedAmmoAction: number; RaidUnloadedAmmoAction: number; MagazineCheckAction: number; } export interface Perception { + DependentSkillRatios: ISkillRatio[]; OnlineAction: number; UniqueLoot: number; } +export interface ISkillRatio { + Ratio: number; + SkillId: string; +} export interface Intellect { + Counters: IIntellectCounters; ExamineAction: number; SkillProgress: number; RepairAction: number; @@ -973,16 +1037,52 @@ export interface Intellect { WearChanceReduceEliteLevel: number; RepairPointsCostReduction: number; } +export interface IIntellectCounters { + armorDurability: ISkillCounter; + firearmsDurability: ISkillCounter; + meleeWeaponDurability: ISkillCounter; +} +export interface ISkillCounter { + divisor: number; + points: number; +} export interface Attention { + DependentSkillRatios: ISkillRatio[]; ExamineWithInstruction: number; FindActionFalse: number; FindActionTrue: number; } export interface Charisma { + BonusSettings: IBonusSettings; + Counters: ICharismaSkillCounters; SkillProgressInt: number; SkillProgressAtn: number; SkillProgressPer: number; } +export interface ICharismaSkillCounters { + insuranceCost: ISkillCounter; + repairCost: ISkillCounter; + repeatableQuestCompleteCount: ISkillCounter; + restoredHealthCost: ISkillCounter; + scavCaseCost: ISkillCounter; +} +export interface IBonusSettings { + EliteBonusSettings: IEliteBonusSettings; + LevelBonusSettings: ILevelBonusSettings; +} +export interface IEliteBonusSettings { + FenceStandingLossDiscount: number; + RepeatableQuestExtraCount: number; + ScavCaseDiscount: number; +} +export interface ILevelBonusSettings { + HealthRestoreDiscount: number; + HealthRestoreTraderDiscount: number; + InsuranceDiscount: number; + InsuranceTraderDiscount: number; + PaidExitDiscount: number; + RepeatableQuestChangeDiscount: number; +} export interface Memory { AnySkillUp: number; SkillProgress: number; @@ -1145,11 +1245,30 @@ export interface xyz { export interface Ballistic { GlobalDamageDegradationCoefficient: number; } -export interface RepairKitSettings { +export interface RepairSettings { + ItemEnhancementSettings: IItemEnhancementSettings; + MinimumLevelToApplyBuff: number; + RepairStrategies: IRepairStrategies; armorClassDivisor: number; durabilityPointCostArmor: number; durabilityPointCostGuns: number; } +export interface IItemEnhancementSettings { + DamageReduction: IPriceModifier; + MalfunctionProtections: IPriceModifier; + WeaponSpread: IPriceModifier; +} +export interface IPriceModifier { + PriceModifier: number; +} +export interface IRepairStrategies { + Armor: IRepairStrategy; + Firearms: IRepairStrategy; +} +export interface IRepairStrategy { + BuffTypes: string[]; + Filter: string[]; +} export interface BotPreset { UseThis: boolean; Role: string; diff --git a/TypeScript/12ClassExtensionOverride/types/models/eft/common/tables/IBotBase.d.ts b/TypeScript/12ClassExtensionOverride/types/models/eft/common/tables/IBotBase.d.ts index 1c28ae0..5171b26 100644 --- a/TypeScript/12ClassExtensionOverride/types/models/eft/common/tables/IBotBase.d.ts +++ b/TypeScript/12ClassExtensionOverride/types/models/eft/common/tables/IBotBase.d.ts @@ -21,6 +21,7 @@ export interface IBotBase { Hideout: Hideout; Quests: Quest[]; TradersInfo: Record; + UnlockedInfo: IUnlockedInfo; RagfairInfo: RagfairInfo; RepeatableQuests: IPmcDataRepeatableQuest[]; Bonuses: Bonus[]; @@ -31,6 +32,9 @@ export interface IBotBase { /** SPT specific property used during bot generation in raid */ sptIsPmc?: boolean; } +export interface IUnlockedInfo { + unlockedProductionRecipe: string[]; +} export interface Info { EntryPoint: string; Nickname: string; @@ -265,6 +269,11 @@ export interface InsuredItem { export interface Hideout { Production: Record; Areas: HideoutArea[]; + Improvements: Record; +} +export interface IHideoutImprovement { + completed: boolean; + improveCompleteTimestamp: number; } export interface Productive { Products: Product[]; @@ -331,6 +340,7 @@ export interface Quest { export interface TraderInfo { loyaltyLevel: number; salesSum: number; + disabled: boolean; standing: number; nextResupply: number; unlocked: boolean; diff --git a/TypeScript/12ClassExtensionOverride/types/models/eft/common/tables/IItem.d.ts b/TypeScript/12ClassExtensionOverride/types/models/eft/common/tables/IItem.d.ts index 2dd2c03..0a6d6fc 100644 --- a/TypeScript/12ClassExtensionOverride/types/models/eft/common/tables/IItem.d.ts +++ b/TypeScript/12ClassExtensionOverride/types/models/eft/common/tables/IItem.d.ts @@ -98,7 +98,8 @@ export interface Location { y: number; r: string | number; isSearched?: boolean; - rotation?: string; + /** SPT property? */ + rotation?: string | boolean; } export interface SideEffect { Value: number; diff --git a/TypeScript/12ClassExtensionOverride/types/models/eft/common/tables/IQuest.d.ts b/TypeScript/12ClassExtensionOverride/types/models/eft/common/tables/IQuest.d.ts index d538126..cc77367 100644 --- a/TypeScript/12ClassExtensionOverride/types/models/eft/common/tables/IQuest.d.ts +++ b/TypeScript/12ClassExtensionOverride/types/models/eft/common/tables/IQuest.d.ts @@ -15,6 +15,7 @@ export interface IQuest { image: string; type: string; isKey: boolean; + questStatus: any; restartable: boolean; instantComplete: boolean; secretQuest: boolean; @@ -43,6 +44,7 @@ export interface AvailableForProps { id: string; index: number; parentId: string; + isEncoded: boolean; dynamicLocale: boolean; value?: number; compareMethod?: string; diff --git a/TypeScript/12ClassExtensionOverride/types/models/eft/common/tables/ITemplateItem.d.ts b/TypeScript/12ClassExtensionOverride/types/models/eft/common/tables/ITemplateItem.d.ts index 0fa7e18..b59a277 100644 --- a/TypeScript/12ClassExtensionOverride/types/models/eft/common/tables/ITemplateItem.d.ts +++ b/TypeScript/12ClassExtensionOverride/types/models/eft/common/tables/ITemplateItem.d.ts @@ -29,8 +29,11 @@ export interface Props { IsUnsaleable?: boolean; IsUnbuyable?: boolean; IsUngivable?: boolean; + IsUnremovable?: boolean; IsLockedafterEquip?: boolean; + IsSpecialSlotOnly?: boolean; QuestItem?: boolean; + QuestStashMaxCount?: number; LootExperience?: number; ExamineExperience?: number; HideEntrails?: boolean; @@ -161,6 +164,7 @@ export interface Props { weaponErgonomicPenalty?: number; BluntThroughput?: number; ArmorMaterial?: string; + ArmorType?: string; weapClass?: string; weapUseType?: string; ammoCaliber?: string; @@ -365,6 +369,8 @@ export interface Props { CanBeHiddenDuringThrow?: boolean; MinTimeToContactExplode?: number; ExplosionEffectType?: string; + LinkedWeapon?: string; + UseAmmoWithoutShell?: boolean; } export interface IHealthEffect { type: string; diff --git a/TypeScript/12ClassExtensionOverride/types/models/eft/common/tables/ITrader.d.ts b/TypeScript/12ClassExtensionOverride/types/models/eft/common/tables/ITrader.d.ts index 246a5b8..1fcfbaa 100644 --- a/TypeScript/12ClassExtensionOverride/types/models/eft/common/tables/ITrader.d.ts +++ b/TypeScript/12ClassExtensionOverride/types/models/eft/common/tables/ITrader.d.ts @@ -9,6 +9,7 @@ export interface ITrader { export interface ITraderBase { refreshTraderRagfairOffers: boolean; _id: string; + availableInRaid: boolean; avatar: string; balance_dol: number; balance_eur: number; @@ -20,6 +21,8 @@ export interface ITraderBase { discount_end: number; gridHeight: number; insurance: Insurance; + items_buy: IItemBuyData; + items_buy_prohibited: IItemBuyData; location: string; loyaltyLevels: LoyaltyLevel[]; medic: boolean; @@ -31,6 +34,10 @@ export interface ITraderBase { surname: string; unlockedByDefault: boolean; } +export interface IItemBuyData { + category: string[]; + id_list: string[]; +} export interface Insurance { availability: boolean; excluded_category: string[]; diff --git a/TypeScript/12ClassExtensionOverride/types/models/eft/game/IGetItemPricesResponse.d.ts b/TypeScript/12ClassExtensionOverride/types/models/eft/game/IGetItemPricesResponse.d.ts new file mode 100644 index 0000000..ab6e818 --- /dev/null +++ b/TypeScript/12ClassExtensionOverride/types/models/eft/game/IGetItemPricesResponse.d.ts @@ -0,0 +1,5 @@ +export interface IGetItemPricesResponse { + supplyNextTime: number; + prices: Record; + currencyCourses: Record; +} diff --git a/TypeScript/12ClassExtensionOverride/types/models/eft/hideout/IHideoutArea.d.ts b/TypeScript/12ClassExtensionOverride/types/models/eft/hideout/IHideoutArea.d.ts index d9fd2bf..fa5ca20 100644 --- a/TypeScript/12ClassExtensionOverride/types/models/eft/hideout/IHideoutArea.d.ts +++ b/TypeScript/12ClassExtensionOverride/types/models/eft/hideout/IHideoutArea.d.ts @@ -3,23 +3,55 @@ export interface IHideoutArea { type: number; enabled: boolean; needsFuel: boolean; + requirements: IAreaRequirement[]; takeFromSlotLocked: boolean; craftGivesExp: boolean; + displayLevel: boolean; + enableAreaRequirements: boolean; stages: Record; } +export interface IAreaRequirement { + areaType: number; + requiredlevel: number; + type: string; +} export interface Stage { - requirements: Requirement[]; + autoUpgrade: boolean; bonuses: StageBonus[]; - slots: number; constructionTime: number; description: string; + displayInterface: boolean; + improvements: IStageImprovement[]; + requirements: IStageRequirement[]; + slots: number; } -export interface Requirement { +export interface IStageImprovement { + id: string; + bonuses: IStageImprovementBonus[]; + improvementTime: number; + requirements: IStageImprovementRequirement[]; +} +export interface IStageImprovementBonus { + passive: boolean; + production: boolean; + type: string; + value: number; + visible: boolean; +} +export interface IStageImprovementRequirement { + count: number; + isEncoded: boolean; + isFunctional: boolean; + templateId: string; + type: string; +} +export interface IStageRequirement { areaType?: number; requiredLevel?: number; type: string; templateId?: string; count?: number; + isEncoded: false; isFunctional?: boolean; traderId?: string; loyaltyLevel?: number; diff --git a/TypeScript/12ClassExtensionOverride/types/models/eft/hideout/IHideoutProduction.d.ts b/TypeScript/12ClassExtensionOverride/types/models/eft/hideout/IHideoutProduction.d.ts index 9295fb1..2367e08 100644 --- a/TypeScript/12ClassExtensionOverride/types/models/eft/hideout/IHideoutProduction.d.ts +++ b/TypeScript/12ClassExtensionOverride/types/models/eft/hideout/IHideoutProduction.d.ts @@ -3,8 +3,10 @@ export interface IHideoutProduction { areaType: number; requirements: Requirement[]; productionTime: number; - boosters?: any; endProduct: string; + isEncoded: boolean; + locked: boolean; + needFuelForAllProductionTime: boolean; continuous: boolean; count: number; productionLimitCount: number; @@ -12,6 +14,7 @@ export interface IHideoutProduction { export interface Requirement { templateId?: string; count?: number; + isEncoded?: boolean; isFunctional?: boolean; type: string; areaType?: number; diff --git a/TypeScript/12ClassExtensionOverride/types/models/eft/hideout/IQteData.d.ts b/TypeScript/12ClassExtensionOverride/types/models/eft/hideout/IQteData.d.ts new file mode 100644 index 0000000..f842b84 --- /dev/null +++ b/TypeScript/12ClassExtensionOverride/types/models/eft/hideout/IQteData.d.ts @@ -0,0 +1,38 @@ +export interface IQteData { + Id: string; + Type: string; + Area: string; + AreaLevel: number; + QuickTimeEvents: IQuickTimeEvent[]; + Requirements: IQteRequirement[]; + Results: Record; +} +export interface IQuickTimeEvent { + Type: string; + Position: number; + StartDelay: number; + EndDelay: number; + Speed: number; + SuccessRange: string; + Key: string; +} +export interface IQteRequirement { + type: string; +} +export interface IQteResult { + Energy: number; + Hydration: number; + RewardsRange: IQteEffect[]; +} +export interface IQteEffect { + Type: string; + SkillId: string; + levelMultipliers: ISkillLevelMultiplier[]; + Time: number; + Weight: number; + Result: string; +} +export interface ISkillLevelMultiplier { + level: number; + multiplier: number; +} diff --git a/TypeScript/12ClassExtensionOverride/types/models/eft/inventory/IAddItemTempObject.d.ts b/TypeScript/12ClassExtensionOverride/types/models/eft/inventory/IAddItemTempObject.d.ts new file mode 100644 index 0000000..62d4b64 --- /dev/null +++ b/TypeScript/12ClassExtensionOverride/types/models/eft/inventory/IAddItemTempObject.d.ts @@ -0,0 +1,7 @@ +import { Item, Location } from "../common/tables/IItem"; +export interface IAddItemTempObject { + itemRef: Item; + count: number; + isPreset: boolean; + location?: Location; +} diff --git a/TypeScript/12ClassExtensionOverride/types/models/eft/match/IGetRaidConfigurationRequestData.d.ts b/TypeScript/12ClassExtensionOverride/types/models/eft/match/IGetRaidConfigurationRequestData.d.ts new file mode 100644 index 0000000..cbcc2f6 --- /dev/null +++ b/TypeScript/12ClassExtensionOverride/types/models/eft/match/IGetRaidConfigurationRequestData.d.ts @@ -0,0 +1,30 @@ +export interface IGetRaidConfigurationRequestData { + timeVariant: string; + raidMode: string; + metabolismDisabled: boolean; + playersSpawnPlace: string; + timeAndWeatherSettings: TimeAndWeatherSettings; + botSettings: BotSettings; + wavesSettings: WavesSettings; + location: string; +} +export interface TimeAndWeatherSettings { + isRandomTime: boolean; + isRandomWeather: boolean; + cloudinessType: string; + rainType: string; + windType: string; + fogType: string; + timeFlowType: string; + hourOfDay: number; +} +export interface BotSettings { + isScavWars: boolean; + botAmount: string; +} +export interface WavesSettings { + botAmount: string; + botDifficulty: string; + isBosses: boolean; + isTaggedAndCursed: boolean; +} diff --git a/TypeScript/12ClassExtensionOverride/types/models/eft/match/IStartOffineRaidRequestData.d.ts b/TypeScript/12ClassExtensionOverride/types/models/eft/match/IStartOffineRaidRequestData.d.ts deleted file mode 100644 index 1983728..0000000 --- a/TypeScript/12ClassExtensionOverride/types/models/eft/match/IStartOffineRaidRequestData.d.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { BotAmount } from "../../enums/BotAmount"; -import { BotDifficulty } from "../../enums/BotDifficulty"; -export interface IStartOfflineRaidRequestData { - locationName: string; - /** Current time, not in-game time */ - startTime: number; - /** CURR = am, past = pm */ - dateTime: "CURR" | "PAST"; - gameSettings: GameSettings; -} -export interface GameSettings { - timeAndWeatherSettings: TimeAndWeatherSettings; - botsSettings: BotsSettings; - wavesSettings: WavesSettings; -} -export interface TimeAndWeatherSettings { - isRandomTime: boolean; - isRandomWeather: boolean; -} -export interface BotsSettings { - isEnabled: boolean; - isScavWars: boolean; - botAmount: BotAmount; -} -export interface WavesSettings { - botDifficulty: BotDifficulty; - isBosses: boolean; - isTaggedAndCursed: boolean; - wavesBotAmount: BotAmount; -} diff --git a/TypeScript/12ClassExtensionOverride/types/models/eft/trade/IProcessSellTradeRequestData.d.ts b/TypeScript/12ClassExtensionOverride/types/models/eft/trade/IProcessSellTradeRequestData.d.ts index f1d555f..dee0cd5 100644 --- a/TypeScript/12ClassExtensionOverride/types/models/eft/trade/IProcessSellTradeRequestData.d.ts +++ b/TypeScript/12ClassExtensionOverride/types/models/eft/trade/IProcessSellTradeRequestData.d.ts @@ -3,6 +3,7 @@ export interface IProcessSellTradeRequestData extends IProcessBaseTradeRequestDa Action: "sell_to_trader"; type: string; tid: string; + price: number; items: Item[]; } export interface Item { diff --git a/TypeScript/12ClassExtensionOverride/types/models/enums/ELocationName.d.ts b/TypeScript/12ClassExtensionOverride/types/models/enums/ELocationName.d.ts index 7ae7caa..c52ae87 100644 --- a/TypeScript/12ClassExtensionOverride/types/models/enums/ELocationName.d.ts +++ b/TypeScript/12ClassExtensionOverride/types/models/enums/ELocationName.d.ts @@ -8,5 +8,6 @@ export declare enum ELocationName { LIGHTHOUSE = "Lighthouse", LABORATORY = "laboratory", RESERVE = "RezervBase", + STREETS = "TarkovStreets", ANY = "any" } diff --git a/TypeScript/12ClassExtensionOverride/types/models/enums/HideoutAreas.d.ts b/TypeScript/12ClassExtensionOverride/types/models/enums/HideoutAreas.d.ts index b44a20a..c8313d9 100644 --- a/TypeScript/12ClassExtensionOverride/types/models/enums/HideoutAreas.d.ts +++ b/TypeScript/12ClassExtensionOverride/types/models/enums/HideoutAreas.d.ts @@ -21,5 +21,7 @@ export declare enum HideoutAreas { SOLAR_POWER = 18, BOOZE_GENERATOR = 19, BITCOIN_FARM = 20, - CHRISTMAS_TREE = 21 + CHRISTMAS_TREE = 21, + EMERGENCY_WALL = 22, + GYM = 23 } diff --git a/TypeScript/12ClassExtensionOverride/types/models/enums/Traders.d.ts b/TypeScript/12ClassExtensionOverride/types/models/enums/Traders.d.ts index 163cd71..ffea725 100644 --- a/TypeScript/12ClassExtensionOverride/types/models/enums/Traders.d.ts +++ b/TypeScript/12ClassExtensionOverride/types/models/enums/Traders.d.ts @@ -6,5 +6,6 @@ export declare enum Traders { PEACEKEEPER = "5935c25fb3acc3127c3d8cd9", MECHANIC = "5a7c2eca46aef81a7ca2145d", RAGMAN = "5ac3b934156ae10c4430e83c", - JAEGER = "5c0647fdd443bc2504c2d371" + JAEGER = "5c0647fdd443bc2504c2d371", + LIGHTHOUSEKEEPER = "638f541a29ffd1183d187f57" } diff --git a/TypeScript/12ClassExtensionOverride/types/models/spt/callbacks/IMatchCallbacks.d.ts b/TypeScript/12ClassExtensionOverride/types/models/spt/callbacks/IMatchCallbacks.d.ts deleted file mode 100644 index fcbf173..0000000 --- a/TypeScript/12ClassExtensionOverride/types/models/spt/callbacks/IMatchCallbacks.d.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { IStartOfflineRaidRequestData } from "../../eft/match/IStartOffineRaidRequestData"; -import { IEndOfflineRaidRequestData } from "../../eft/match/IEndOfflineRaidRequestData"; -import { INullResponseData } from "../../eft/httpResponse/INullResponseData"; -import { IGetBodyResponseData } from "../../eft/httpResponse/IGetBodyResponseData"; -import { IPmcData } from "../../eft/common/IPmcData"; -export interface IMatchCallbacks { - updatePing(url: string, info: any, sessionID: string): INullResponseData; - exitMatch(url: string, info: any, sessionID: string): INullResponseData; - exitToMenu(url: string, info: any, sessionID: string): INullResponseData; - startGroupSearch(url: string, info: any, sessionID: string): INullResponseData; - stopGroupSearch(url: string, info: any, sessionID: string): INullResponseData; - sendGroupInvite(url: string, info: any, sessionID: string): INullResponseData; - acceptGroupInvite(url: string, info: any, sessionID: string): INullResponseData; - cancelGroupInvite(url: string, info: any, sessionID: string): INullResponseData; - putMetrics(url: string, info: any, sessionID: string): INullResponseData; - getProfile(url: string, info: any, sessionID: string): IGetBodyResponseData; - serverAvailable(url: string, info: any, sessionID: string): IGetBodyResponseData | IGetBodyResponseData; - joinMatch(url: string, info: any, sessionID: string): IGetBodyResponseData; - getMetrics(url: string, info: any, sessionID: string): IGetBodyResponseData; - getGroupStatus(url: string, info: any, sessionID: string): IGetBodyResponseData; - createGroup(url: string, info: any, sessionID: string): IGetBodyResponseData; - deleteGroup(url: string, info: any, sessionID: string): INullResponseData; - startOfflineRaid(url: string, info: IStartOfflineRaidRequestData, sessionID: string): INullResponseData; - endOfflineRaid(url: string, info: IEndOfflineRaidRequestData, sessionID: string): INullResponseData; -} diff --git a/TypeScript/12ClassExtensionOverride/types/models/spt/config/IAirdropConfig.d.ts b/TypeScript/12ClassExtensionOverride/types/models/spt/config/IAirdropConfig.d.ts index 53df991..627b603 100644 --- a/TypeScript/12ClassExtensionOverride/types/models/spt/config/IAirdropConfig.d.ts +++ b/TypeScript/12ClassExtensionOverride/types/models/spt/config/IAirdropConfig.d.ts @@ -6,6 +6,8 @@ export interface IAirdropConfig extends IBaseConfig { planeMinFlyHeight: number; planeMaxFlyHeight: number; planeVolume: number; + planeSpeed: number; + crateFallSpeed: number; airdropMinStartTimeSeconds: number; airdropMaxStartTimeSeconds: number; loot: AirdropLoot; @@ -17,6 +19,7 @@ export interface AirdropChancePercent { shoreline: number; interchange: number; reserve: number; + tarkovStreets: number; } export interface AirdropLoot { presetCount: MinMax; diff --git a/TypeScript/12ClassExtensionOverride/types/services/ProfileFixerService.d.ts b/TypeScript/12ClassExtensionOverride/types/services/ProfileFixerService.d.ts index 86a6af8..5130dc0 100644 --- a/TypeScript/12ClassExtensionOverride/types/services/ProfileFixerService.d.ts +++ b/TypeScript/12ClassExtensionOverride/types/services/ProfileFixerService.d.ts @@ -7,6 +7,7 @@ import { IAkiProfile } from "../models/eft/profile/IAkiProfile"; import { HideoutAreas } from "../models/enums/HideoutAreas"; import { ILogger } from "../models/spt/utils/ILogger"; import { DatabaseServer } from "../servers/DatabaseServer"; +import { TimeUtil } from "../utils/TimeUtil"; import { Watermark } from "../utils/Watermark"; import { LocalisationService } from "./LocalisationService"; export declare class ProfileFixerService { @@ -14,8 +15,9 @@ export declare class ProfileFixerService { protected watermark: Watermark; protected hideoutHelper: HideoutHelper; protected localisationService: LocalisationService; + protected timeUtil: TimeUtil; protected databaseServer: DatabaseServer; - constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, localisationService: LocalisationService, databaseServer: DatabaseServer); + constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, localisationService: LocalisationService, timeUtil: TimeUtil, databaseServer: DatabaseServer); /** * Find issues in the pmc profile data that may cause issues and fix them * @param pmcProfile profile to check and fix @@ -32,6 +34,7 @@ export declare class ProfileFixerService { * @param pmcProfile profile to remove old counters from */ removeDanglingConditionCounters(pmcProfile: IPmcData): void; + addLighthouseKeeperIfMissing(pmcProfile: IPmcData): void; protected removeDanglingBackendCounters(pmcProfile: IPmcData): void; protected getActiveRepeatableQuests(repeatableQuests: IPmcDataRepeatableQuest[]): IRepeatableQuest[]; protected fixNullTraderSalesSums(pmcProfile: IPmcData): void; @@ -85,4 +88,14 @@ export declare class ProfileFixerService { * @param pmcProfile Profile to check inventory of */ checkForOrphanedModdedItems(pmcProfile: IPmcData): void; + /** + * Add `Improvements` object to hideout if missing - added in eft 13.0.21469 + * @param pmcProfile profile to update + */ + addMissingUpgradesPropertyToHideout(pmcProfile: IPmcData): void; + /** + * Iterate over associated profile template and check all hideout areas exist, add if not + * @param fullProfile Profile to update + */ + addMissingHideoutAreasToProfile(fullProfile: IAkiProfile): void; } diff --git a/TypeScript/12ClassExtensionOverride/types/services/RagfairPriceService.d.ts b/TypeScript/12ClassExtensionOverride/types/services/RagfairPriceService.d.ts index cf0459c..50d349d 100644 --- a/TypeScript/12ClassExtensionOverride/types/services/RagfairPriceService.d.ts +++ b/TypeScript/12ClassExtensionOverride/types/services/RagfairPriceService.d.ts @@ -65,6 +65,7 @@ export declare class RagfairPriceService implements OnLoad { * @returns Dictionary of item tpls and rouble cost */ getAllFleaPrices(): Record; + getAllStaticPrices(): Record; /** * Get the percentage difference between two values * @param a numerical value a