Updated examples
This commit is contained in:
parent
60d5a870ad
commit
07483af828
@ -27,7 +27,7 @@ import { ISendMessageRequest } from "@spt/models/eft/dialog/ISendMessageRequest"
|
||||
import { ISetDialogReadRequestData } from "@spt/models/eft/dialog/ISetDialogReadRequestData";
|
||||
import { IGetBodyResponseData } from "@spt/models/eft/httpResponse/IGetBodyResponseData";
|
||||
import { INullResponseData } from "@spt/models/eft/httpResponse/INullResponseData";
|
||||
import { DialogueInfo } from "@spt/models/eft/profile/ISptProfile";
|
||||
import { IDialogueInfo } from "@spt/models/eft/profile/ISptProfile";
|
||||
import { HashUtil } from "@spt/utils/HashUtil";
|
||||
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
|
||||
import { TimeUtil } from "@spt/utils/TimeUtil";
|
||||
@ -48,11 +48,11 @@ export declare class DialogueCallbacks implements OnUpdate {
|
||||
*/
|
||||
getChatServerList(url: string, info: IGetChatServerListRequestData, sessionID: string): IGetBodyResponseData<IChatServer[]>;
|
||||
/** Handle client/mail/dialog/list */
|
||||
getMailDialogList(url: string, info: IGetMailDialogListRequestData, sessionID: string): IGetBodyResponseData<DialogueInfo[]>;
|
||||
getMailDialogList(url: string, info: IGetMailDialogListRequestData, sessionID: string): IGetBodyResponseData<IDialogueInfo[]>;
|
||||
/** Handle client/mail/dialog/view */
|
||||
getMailDialogView(url: string, info: IGetMailDialogViewRequestData, sessionID: string): IGetBodyResponseData<IGetMailDialogViewResponseData>;
|
||||
/** Handle client/mail/dialog/info */
|
||||
getMailDialogInfo(url: string, info: IGetMailDialogInfoRequestData, sessionID: string): IGetBodyResponseData<DialogueInfo>;
|
||||
getMailDialogInfo(url: string, info: IGetMailDialogInfoRequestData, sessionID: string): IGetBodyResponseData<IDialogueInfo>;
|
||||
/** Handle client/mail/dialog/remove */
|
||||
removeDialog(url: string, info: IRemoveDialogRequestData, sessionID: string): IGetBodyResponseData<any[]>;
|
||||
/** Handle client/mail/dialog/pin */
|
||||
|
@ -2,6 +2,7 @@ import { LocationController } from "@spt/controllers/LocationController";
|
||||
import { IEmptyRequestData } from "@spt/models/eft/common/IEmptyRequestData";
|
||||
import { ILocationsGenerateAllResponse } from "@spt/models/eft/common/ILocationsSourceDestinationBase";
|
||||
import { IGetBodyResponseData } from "@spt/models/eft/httpResponse/IGetBodyResponseData";
|
||||
import { IGetAirdropLootRequest } from "@spt/models/eft/location/IGetAirdropLootRequest";
|
||||
import { IGetAirdropLootResponse } from "@spt/models/eft/location/IGetAirdropLootResponse";
|
||||
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
|
||||
export declare class LocationCallbacks {
|
||||
@ -11,5 +12,5 @@ export declare class LocationCallbacks {
|
||||
/** Handle client/locations */
|
||||
getLocationData(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<ILocationsGenerateAllResponse>;
|
||||
/** Handle client/airdrop/loot */
|
||||
getAirdropLoot(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<IGetAirdropLootResponse>;
|
||||
getAirdropLoot(url: string, info: IGetAirdropLootRequest, sessionID: string): IGetBodyResponseData<IGetAirdropLootResponse>;
|
||||
}
|
||||
|
@ -4,7 +4,7 @@ import { OnUpdate } from "@spt/di/OnUpdate";
|
||||
import { IEmptyRequestData } from "@spt/models/eft/common/IEmptyRequestData";
|
||||
import { ITraderAssort, ITraderBase } from "@spt/models/eft/common/tables/ITrader";
|
||||
import { IGetBodyResponseData } from "@spt/models/eft/httpResponse/IGetBodyResponseData";
|
||||
import { ModdedTraders } from "@spt/models/spt/config/ITraderConfig";
|
||||
import { IModdedTraders } from "@spt/models/spt/config/ITraderConfig";
|
||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
|
||||
export declare class TraderCallbacks implements OnLoad, OnUpdate {
|
||||
@ -23,5 +23,5 @@ export declare class TraderCallbacks implements OnLoad, OnUpdate {
|
||||
/** Handle client/trading/api/getTraderAssort */
|
||||
getAssort(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<ITraderAssort>;
|
||||
/** Handle /singleplayer/moddedTraders */
|
||||
getModdedTraderData(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<ModdedTraders>;
|
||||
getModdedTraderData(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<IModdedTraders>;
|
||||
}
|
||||
|
@ -13,5 +13,6 @@ export declare class WeatherCallbacks {
|
||||
* @returns IWeatherData
|
||||
*/
|
||||
getWeather(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<IWeatherData>;
|
||||
/** Handle client/localGame/weather */
|
||||
getLocalWeather(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<IGetLocalWeatherResponseData>;
|
||||
}
|
||||
|
@ -7,5 +7,7 @@ export declare enum ContextVariableType {
|
||||
CLIENT_START_TIMESTAMP = 2,
|
||||
/** When player is loading into map and loot is requested */
|
||||
REGISTER_PLAYER_REQUEST = 3,
|
||||
RAID_ADJUSTMENTS = 4
|
||||
RAID_ADJUSTMENTS = 4,
|
||||
/** Data returned from client request object from endLocalRaid() */
|
||||
TRANSIT_INFO = 5
|
||||
}
|
||||
|
@ -11,7 +11,7 @@ import { IBotBase } from "@spt/models/eft/common/tables/IBotBase";
|
||||
import { IBotCore } from "@spt/models/eft/common/tables/IBotCore";
|
||||
import { IDifficultyCategories } from "@spt/models/eft/common/tables/IBotType";
|
||||
import { IGetRaidConfigurationRequestData } from "@spt/models/eft/match/IGetRaidConfigurationRequestData";
|
||||
import { BotGenerationDetails } from "@spt/models/spt/bots/BotGenerationDetails";
|
||||
import { IBotGenerationDetails } from "@spt/models/spt/bots/BotGenerationDetails";
|
||||
import { IBotConfig } from "@spt/models/spt/config/IBotConfig";
|
||||
import { IPmcConfig } from "@spt/models/spt/config/IPmcConfig";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
@ -97,7 +97,7 @@ export declare class BotController {
|
||||
* @param generateAsPmc Force bot being generated a PMC
|
||||
* @returns BotGenerationDetails
|
||||
*/
|
||||
protected getBotGenerationDetailsForWave(condition: ICondition, pmcProfile: IPmcData, allPmcsHaveSameNameAsPlayer: boolean, raidSettings: IGetRaidConfigurationRequestData, botCountToGenerate: number, generateAsPmc: boolean): BotGenerationDetails;
|
||||
protected getBotGenerationDetailsForWave(condition: ICondition, pmcProfile: IPmcData, allPmcsHaveSameNameAsPlayer: boolean, raidSettings: IGetRaidConfigurationRequestData, botCountToGenerate: number, generateAsPmc: boolean): IBotGenerationDetails;
|
||||
/**
|
||||
* Get players profile level
|
||||
* @param pmcProfile Profile to get level from
|
||||
@ -111,7 +111,7 @@ export declare class BotController {
|
||||
* @param sessionId Session id
|
||||
* @returns A promise for the bots to be done generating
|
||||
*/
|
||||
protected generateWithBotDetails(condition: ICondition, botGenerationDetails: BotGenerationDetails, sessionId: string): Promise<void>;
|
||||
protected generateWithBotDetails(condition: ICondition, botGenerationDetails: IBotGenerationDetails, sessionId: string): Promise<void>;
|
||||
/**
|
||||
* Generate a single bot and store in the cache
|
||||
* @param botGenerationDetails the bot details to generate the bot with
|
||||
@ -119,7 +119,7 @@ export declare class BotController {
|
||||
* @param cacheKey the cache key to store the bot with
|
||||
* @returns A promise for the bot to be stored
|
||||
*/
|
||||
protected generateSingleBotAndStoreInCache(botGenerationDetails: BotGenerationDetails, sessionId: string, cacheKey: string): Promise<void>;
|
||||
protected generateSingleBotAndStoreInCache(botGenerationDetails: IBotGenerationDetails, sessionId: string, cacheKey: string): Promise<void>;
|
||||
/**
|
||||
* Pull a single bot out of cache and return, if cache is empty add bots to it and then return
|
||||
* @param sessionId Session id
|
||||
@ -128,7 +128,7 @@ export declare class BotController {
|
||||
*/
|
||||
protected returnSingleBotFromCache(sessionId: string, request: IGenerateBotsRequestData): Promise<IBotBase[]>;
|
||||
protected getPmcConversionMinMaxForLocation(requestedBotRole: string, location: string): MinMax;
|
||||
protected updateBotGenerationDetailsToRandomBoss(botGenerationDetails: BotGenerationDetails, possibleBossTypeWeights: Record<string, number>): void;
|
||||
protected updateBotGenerationDetailsToRandomBoss(botGenerationDetails: IBotGenerationDetails, possibleBossTypeWeights: Record<string, number>): void;
|
||||
/**
|
||||
* Get the difficulty passed in, if its not "asonline", get selected difficulty from config
|
||||
* @param requestedDifficulty
|
||||
|
@ -7,7 +7,7 @@ import { IGetFriendListDataResponse } from "@spt/models/eft/dialog/IGetFriendLis
|
||||
import { IGetMailDialogViewRequestData } from "@spt/models/eft/dialog/IGetMailDialogViewRequestData";
|
||||
import { IGetMailDialogViewResponseData } from "@spt/models/eft/dialog/IGetMailDialogViewResponseData";
|
||||
import { ISendMessageRequest } from "@spt/models/eft/dialog/ISendMessageRequest";
|
||||
import { Dialogue, DialogueInfo, ISptProfile, IUserDialogInfo, Message } from "@spt/models/eft/profile/ISptProfile";
|
||||
import { IDialogue, IDialogueInfo, IMessage, ISptProfile, IUserDialogInfo } from "@spt/models/eft/profile/ISptProfile";
|
||||
import { MessageType } from "@spt/models/enums/MessageType";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||
@ -40,14 +40,14 @@ export declare class DialogueController {
|
||||
* @param sessionID Session Id
|
||||
* @returns array of dialogs
|
||||
*/
|
||||
generateDialogueList(sessionID: string): DialogueInfo[];
|
||||
generateDialogueList(sessionID: string): IDialogueInfo[];
|
||||
/**
|
||||
* Get the content of a dialogue
|
||||
* @param dialogueID Dialog id
|
||||
* @param sessionID Session Id
|
||||
* @returns DialogueInfo
|
||||
*/
|
||||
getDialogueInfo(dialogueID: string, sessionID: string): DialogueInfo;
|
||||
getDialogueInfo(dialogueID: string, sessionID: string): IDialogueInfo;
|
||||
/**
|
||||
* Get the users involved in a dialog (player + other party)
|
||||
* @param dialog The dialog to check for users
|
||||
@ -55,7 +55,7 @@ export declare class DialogueController {
|
||||
* @param sessionID Player id
|
||||
* @returns IUserDialogInfo array
|
||||
*/
|
||||
getDialogueUsers(dialog: Dialogue, messageType: MessageType, sessionID: string): IUserDialogInfo[] | undefined;
|
||||
getDialogueUsers(dialog: IDialogue, messageType: MessageType, sessionID: string): IUserDialogInfo[] | undefined;
|
||||
/**
|
||||
* Handle client/mail/dialog/view
|
||||
* Handle player clicking 'messenger' and seeing all the messages they've recieved
|
||||
@ -72,7 +72,7 @@ export declare class DialogueController {
|
||||
* @param request get dialog request (params used when dialog doesnt exist in profile)
|
||||
* @returns Dialogue
|
||||
*/
|
||||
protected getDialogByIdFromProfile(profile: ISptProfile, request: IGetMailDialogViewRequestData): Dialogue;
|
||||
protected getDialogByIdFromProfile(profile: ISptProfile, request: IGetMailDialogViewRequestData): IDialogue;
|
||||
/**
|
||||
* Get the users involved in a mail between two entities
|
||||
* @param fullProfile Player profile
|
||||
@ -92,7 +92,7 @@ export declare class DialogueController {
|
||||
* @param messages Messages to check
|
||||
* @returns true if uncollected rewards found
|
||||
*/
|
||||
protected messagesHaveUncollectedRewards(messages: Message[]): boolean;
|
||||
protected messagesHaveUncollectedRewards(messages: IMessage[]): boolean;
|
||||
/**
|
||||
* Handle client/mail/dialog/remove
|
||||
* Remove an entire dialog with an entity (trader/user)
|
||||
@ -125,13 +125,13 @@ export declare class DialogueController {
|
||||
* @param dialogueId Dialog to get mail attachments from
|
||||
* @returns Message array
|
||||
*/
|
||||
protected getActiveMessagesFromDialog(sessionId: string, dialogueId: string): Message[];
|
||||
protected getActiveMessagesFromDialog(sessionId: string, dialogueId: string): IMessage[];
|
||||
/**
|
||||
* Return array of messages with uncollected items (includes expired)
|
||||
* @param messages Messages to parse
|
||||
* @returns messages with items to collect
|
||||
*/
|
||||
protected getMessagesWithAttachments(messages: Message[]): Message[];
|
||||
protected getMessagesWithAttachments(messages: IMessage[]): IMessage[];
|
||||
/**
|
||||
* Delete expired items from all messages in player profile. triggers when updating traders.
|
||||
* @param sessionId Session id
|
||||
@ -148,7 +148,7 @@ export declare class DialogueController {
|
||||
* @param message Message to check expiry of
|
||||
* @returns true or false
|
||||
*/
|
||||
protected messageHasExpired(message: Message): boolean;
|
||||
protected messageHasExpired(message: IMessage): boolean;
|
||||
/** Handle client/friend/request/send */
|
||||
sendFriendRequest(sessionID: string, request: IFriendRequestData): IFriendRequestSendResponse;
|
||||
}
|
||||
|
@ -7,9 +7,8 @@ import { PresetHelper } from "@spt/helpers/PresetHelper";
|
||||
import { ProfileHelper } from "@spt/helpers/ProfileHelper";
|
||||
import { IPmcData } from "@spt/models/eft/common/IPmcData";
|
||||
import { IBotHideoutArea, IProduct, ITaskConditionCounter } from "@spt/models/eft/common/tables/IBotBase";
|
||||
import { HideoutUpgradeCompleteRequestData } from "@spt/models/eft/hideout/HideoutUpgradeCompleteRequestData";
|
||||
import { IHandleQTEEventRequestData } from "@spt/models/eft/hideout/IHandleQTEEventRequestData";
|
||||
import { IHideoutArea, Stage } from "@spt/models/eft/hideout/IHideoutArea";
|
||||
import { IHideoutArea, IStage } from "@spt/models/eft/hideout/IHideoutArea";
|
||||
import { IHideoutCancelProductionRequestData } from "@spt/models/eft/hideout/IHideoutCancelProductionRequestData";
|
||||
import { IHideoutCircleOfCultistProductionStartRequestData } from "@spt/models/eft/hideout/IHideoutCircleOfCultistProductionStartRequestData";
|
||||
import { IHideoutContinuousProductionStartRequestData } from "@spt/models/eft/hideout/IHideoutContinuousProductionStartRequestData";
|
||||
@ -22,8 +21,9 @@ import { IHideoutSingleProductionStartRequestData } from "@spt/models/eft/hideou
|
||||
import { IHideoutTakeItemOutRequestData } from "@spt/models/eft/hideout/IHideoutTakeItemOutRequestData";
|
||||
import { IHideoutTakeProductionRequestData } from "@spt/models/eft/hideout/IHideoutTakeProductionRequestData";
|
||||
import { IHideoutToggleAreaRequestData } from "@spt/models/eft/hideout/IHideoutToggleAreaRequestData";
|
||||
import { IHideoutUpgradeCompleteRequestData } from "@spt/models/eft/hideout/IHideoutUpgradeCompleteRequestData";
|
||||
import { IHideoutUpgradeRequestData } from "@spt/models/eft/hideout/IHideoutUpgradeRequestData";
|
||||
import { IQteData } from "@spt/models/eft/hideout/IQteData";
|
||||
import { IQteData, IQteResult } from "@spt/models/eft/hideout/IQteData";
|
||||
import { IRecordShootingRangePoints } from "@spt/models/eft/hideout/IRecordShootingRangePoints";
|
||||
import { IItemEventRouterResponse } from "@spt/models/eft/itemEvent/IItemEventRouterResponse";
|
||||
import { HideoutAreas } from "@spt/models/enums/HideoutAreas";
|
||||
@ -87,7 +87,7 @@ export declare class HideoutController {
|
||||
* @param sessionID Session id
|
||||
* @param output Client response
|
||||
*/
|
||||
upgradeComplete(pmcData: IPmcData, request: HideoutUpgradeCompleteRequestData, sessionID: string, output: IItemEventRouterResponse): void;
|
||||
upgradeComplete(pmcData: IPmcData, request: IHideoutUpgradeCompleteRequestData, sessionID: string, output: IItemEventRouterResponse): void;
|
||||
/**
|
||||
* Upgrade wall status to visible in profile if medstation/water collector are both level 1
|
||||
* @param pmcData Player profile
|
||||
@ -101,7 +101,7 @@ export declare class HideoutController {
|
||||
* @param dbHideoutArea Hideout area being upgraded
|
||||
* @param hideoutStage Stage hideout area is being upgraded to
|
||||
*/
|
||||
protected addContainerImprovementToProfile(output: IItemEventRouterResponse, sessionID: string, pmcData: IPmcData, profileParentHideoutArea: IBotHideoutArea, dbHideoutArea: IHideoutArea, hideoutStage: Stage): void;
|
||||
protected addContainerImprovementToProfile(output: IItemEventRouterResponse, sessionID: string, pmcData: IPmcData, profileParentHideoutArea: IBotHideoutArea, dbHideoutArea: IHideoutArea, hideoutStage: IStage): void;
|
||||
/**
|
||||
* Add stand1/stand2/stand3 inventory items to profile, depending on passed in hideout stage
|
||||
* @param sessionId Session id
|
||||
@ -110,14 +110,14 @@ export declare class HideoutController {
|
||||
* @param equipmentPresetHideoutArea
|
||||
* @param output Response to send back to client
|
||||
*/
|
||||
protected addMissingPresetStandItemsToProfile(sessionId: string, equipmentPresetStage: Stage, pmcData: IPmcData, equipmentPresetHideoutArea: IHideoutArea, output: IItemEventRouterResponse): void;
|
||||
protected addMissingPresetStandItemsToProfile(sessionId: string, equipmentPresetStage: IStage, pmcData: IPmcData, equipmentPresetHideoutArea: IHideoutArea, output: IItemEventRouterResponse): void;
|
||||
/**
|
||||
* Add an inventory item to profile from a hideout area stage data
|
||||
* @param pmcData Profile to update
|
||||
* @param dbHideoutArea Hideout area from db being upgraded
|
||||
* @param hideoutStage Stage area upgraded to
|
||||
*/
|
||||
protected addUpdateInventoryItemToProfile(sessionId: string, pmcData: IPmcData, dbHideoutArea: IHideoutArea, hideoutStage: Stage): void;
|
||||
protected addUpdateInventoryItemToProfile(sessionId: string, pmcData: IPmcData, dbHideoutArea: IHideoutArea, hideoutStage: IStage): void;
|
||||
/**
|
||||
* @param output Object to send to client
|
||||
* @param sessionID Session/player id
|
||||
@ -125,7 +125,7 @@ export declare class HideoutController {
|
||||
* @param hideoutDbData Hideout area that caused addition of stash
|
||||
* @param hideoutStage Hideout area upgraded to this
|
||||
*/
|
||||
protected addContainerUpgradeToClientOutput(sessionID: string, areaType: HideoutAreas, hideoutDbData: IHideoutArea, hideoutStage: Stage, output: IItemEventRouterResponse): void;
|
||||
protected addContainerUpgradeToClientOutput(sessionID: string, areaType: HideoutAreas, hideoutDbData: IHideoutArea, hideoutStage: IStage, output: IItemEventRouterResponse): void;
|
||||
/**
|
||||
* Handle HideoutPutItemsInAreaSlots
|
||||
* Create item in hideout slot item array, remove item from player inventory
|
||||
@ -252,6 +252,12 @@ export declare class HideoutController {
|
||||
* @param request QTE result object
|
||||
*/
|
||||
handleQTEEventOutcome(sessionId: string, pmcData: IPmcData, request: IHandleQTEEventRequestData, output: IItemEventRouterResponse): void;
|
||||
/**
|
||||
* Apply mild/severe muscle pain after gym use
|
||||
* @param pmcData Profile to apply effect to
|
||||
* @param finishEffect Effect data to apply after completing QTE gym event
|
||||
*/
|
||||
protected handleMusclePain(pmcData: IPmcData, finishEffect: IQteResult): void;
|
||||
/**
|
||||
* Record a high score from the shooting range into a player profiles overallcounters
|
||||
* @param sessionId Session id
|
||||
|
@ -9,7 +9,7 @@ import { IGetInsuranceCostRequestData } from "@spt/models/eft/insurance/IGetInsu
|
||||
import { IGetInsuranceCostResponseData } from "@spt/models/eft/insurance/IGetInsuranceCostResponseData";
|
||||
import { IInsureRequestData } from "@spt/models/eft/insurance/IInsureRequestData";
|
||||
import { IItemEventRouterResponse } from "@spt/models/eft/itemEvent/IItemEventRouterResponse";
|
||||
import { Insurance } from "@spt/models/eft/profile/ISptProfile";
|
||||
import { IInsurance } from "@spt/models/eft/profile/ISptProfile";
|
||||
import { IInsuranceConfig } from "@spt/models/spt/config/IInsuranceConfig";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { EventOutputHolder } from "@spt/routers/EventOutputHolder";
|
||||
@ -68,7 +68,7 @@ export declare class InsuranceController {
|
||||
* @param time The time to check ready status against. Current time by default.
|
||||
* @returns All insured items that are ready to be processed.
|
||||
*/
|
||||
protected filterInsuredItems(sessionID: string, time?: number): Insurance[];
|
||||
protected filterInsuredItems(sessionID: string, time?: number): IInsurance[];
|
||||
/**
|
||||
* This method orchestrates the processing of insured items in a profile.
|
||||
*
|
||||
@ -76,13 +76,13 @@ export declare class InsuranceController {
|
||||
* @param sessionID The session ID that should receive the processed items.
|
||||
* @returns void
|
||||
*/
|
||||
protected processInsuredItems(insuranceDetails: Insurance[], sessionID: string): void;
|
||||
protected processInsuredItems(insuranceDetails: IInsurance[], sessionID: string): void;
|
||||
/**
|
||||
* Count all items in all insurance packages.
|
||||
* @param insurance
|
||||
* @returns
|
||||
*/
|
||||
protected countAllInsuranceItems(insurance: Insurance[]): number;
|
||||
protected countAllInsuranceItems(insurance: IInsurance[]): number;
|
||||
/**
|
||||
* Remove an insurance package from a profile using the package's system data information.
|
||||
*
|
||||
@ -90,7 +90,7 @@ export declare class InsuranceController {
|
||||
* @param index The array index of the insurance package to remove.
|
||||
* @returns void
|
||||
*/
|
||||
protected removeInsurancePackageFromProfile(sessionID: string, insPackage: Insurance): void;
|
||||
protected removeInsurancePackageFromProfile(sessionID: string, insPackage: IInsurance): void;
|
||||
/**
|
||||
* Finds the items that should be deleted based on the given Insurance object.
|
||||
*
|
||||
@ -98,7 +98,7 @@ export declare class InsuranceController {
|
||||
* @param insured - The insurance object containing the items to evaluate for deletion.
|
||||
* @returns A Set containing the IDs of items that should be deleted.
|
||||
*/
|
||||
protected findItemsToDelete(rootItemParentID: string, insured: Insurance): Set<string>;
|
||||
protected findItemsToDelete(rootItemParentID: string, insured: IInsurance): Set<string>;
|
||||
/**
|
||||
* Initialize a Map object that holds main-parents to all of their attachments. Note that "main-parent" in this
|
||||
* context refers to the parent item that an attachment is attached to. For example, a suppressor attached to a gun,
|
||||
@ -109,7 +109,7 @@ export declare class InsuranceController {
|
||||
* @param itemsMap - A Map object for quick item look-up by item ID.
|
||||
* @returns A Map object containing parent item IDs to arrays of their attachment items.
|
||||
*/
|
||||
protected populateParentAttachmentsMap(rootItemParentID: string, insured: Insurance, itemsMap: Map<string, IItem>): Map<string, IItem[]>;
|
||||
protected populateParentAttachmentsMap(rootItemParentID: string, insured: IInsurance, itemsMap: Map<string, IItem>): Map<string, IItem[]>;
|
||||
/**
|
||||
* Remove attachments that can not be moddable in-raid from the parentAttachmentsMap. If no moddable attachments
|
||||
* remain, the parent is removed from the map as well.
|
||||
@ -129,7 +129,7 @@ export declare class InsuranceController {
|
||||
* @param parentAttachmentsMap A Map object containing parent item IDs to arrays of their attachment items.
|
||||
* @returns void
|
||||
*/
|
||||
protected processRegularItems(insured: Insurance, toDelete: Set<string>, parentAttachmentsMap: Map<string, IItem[]>): void;
|
||||
protected processRegularItems(insured: IInsurance, toDelete: Set<string>, parentAttachmentsMap: Map<string, IItem[]>): void;
|
||||
/**
|
||||
* Process parent items and their attachments, updating the toDelete Set accordingly.
|
||||
*
|
||||
@ -167,7 +167,7 @@ export declare class InsuranceController {
|
||||
* @param toDelete The items that should be deleted.
|
||||
* @returns void
|
||||
*/
|
||||
protected removeItemsFromInsurance(insured: Insurance, toDelete: Set<string>): void;
|
||||
protected removeItemsFromInsurance(insured: IInsurance, toDelete: Set<string>): void;
|
||||
/**
|
||||
* Handle sending the insurance message to the user that potentially contains the valid insurance items.
|
||||
*
|
||||
@ -175,7 +175,7 @@ export declare class InsuranceController {
|
||||
* @param insurance The context of insurance to use.
|
||||
* @returns void
|
||||
*/
|
||||
protected sendMail(sessionID: string, insurance: Insurance): void;
|
||||
protected sendMail(sessionID: string, insurance: IInsurance): void;
|
||||
/**
|
||||
* Determines whether an insured item should be removed from the player's inventory based on a random roll and
|
||||
* trader-specific return chance.
|
||||
|
@ -5,7 +5,7 @@ import { IChangeRequestData } from "@spt/models/eft/launcher/IChangeRequestData"
|
||||
import { ILoginRequestData } from "@spt/models/eft/launcher/ILoginRequestData";
|
||||
import { IRegisterData } from "@spt/models/eft/launcher/IRegisterData";
|
||||
import { IConnectResponse } from "@spt/models/eft/profile/IConnectResponse";
|
||||
import { Info, ModDetails } from "@spt/models/eft/profile/ISptProfile";
|
||||
import { IModDetails, Info } from "@spt/models/eft/profile/ISptProfile";
|
||||
import { ICoreConfig } from "@spt/models/spt/config/ICoreConfig";
|
||||
import { IPackageJsonData } from "@spt/models/spt/mod/IPackageJsonData";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
@ -61,5 +61,5 @@ export declare class LauncherController {
|
||||
* @param sessionId Player id
|
||||
* @returns Array of mod details
|
||||
*/
|
||||
getServerModsProfileUsed(sessionId: string): ModDetails[];
|
||||
getServerModsProfileUsed(sessionId: string): IModDetails[];
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
import { ILocationsGenerateAllResponse } from "@spt/models/eft/common/ILocationsSourceDestinationBase";
|
||||
import { IGetAirdropLootRequest } from "@spt/models/eft/location/IGetAirdropLootRequest";
|
||||
import { IGetAirdropLootResponse } from "@spt/models/eft/location/IGetAirdropLootResponse";
|
||||
import { ILocationConfig } from "@spt/models/spt/config/ILocationConfig";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
@ -22,5 +23,5 @@ export declare class LocationController {
|
||||
*/
|
||||
generateAll(sessionId: string): ILocationsGenerateAllResponse;
|
||||
/** Handle client/airdrop/loot */
|
||||
getAirdropLoot(): IGetAirdropLootResponse;
|
||||
getAirdropLoot(request: IGetAirdropLootRequest): IGetAirdropLootResponse;
|
||||
}
|
||||
|
@ -14,20 +14,18 @@ import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||
import { SaveServer } from "@spt/servers/SaveServer";
|
||||
import { LocationLifecycleService } from "@spt/services/LocationLifecycleService";
|
||||
import { MatchLocationService } from "@spt/services/MatchLocationService";
|
||||
import { ProfileSnapshotService } from "@spt/services/ProfileSnapshotService";
|
||||
import { ICloner } from "@spt/utils/cloners/ICloner";
|
||||
export declare class MatchController {
|
||||
protected logger: ILogger;
|
||||
protected saveServer: SaveServer;
|
||||
protected matchLocationService: MatchLocationService;
|
||||
protected configServer: ConfigServer;
|
||||
protected profileSnapshotService: ProfileSnapshotService;
|
||||
protected applicationContext: ApplicationContext;
|
||||
protected locationLifecycleService: LocationLifecycleService;
|
||||
protected cloner: ICloner;
|
||||
protected matchConfig: IMatchConfig;
|
||||
protected pmcConfig: IPmcConfig;
|
||||
constructor(logger: ILogger, saveServer: SaveServer, matchLocationService: MatchLocationService, configServer: ConfigServer, profileSnapshotService: ProfileSnapshotService, applicationContext: ApplicationContext, locationLifecycleService: LocationLifecycleService, cloner: ICloner);
|
||||
constructor(logger: ILogger, saveServer: SaveServer, matchLocationService: MatchLocationService, configServer: ConfigServer, applicationContext: ApplicationContext, locationLifecycleService: LocationLifecycleService, cloner: ICloner);
|
||||
getEnabled(): boolean;
|
||||
/** Handle client/match/group/delete */
|
||||
deleteGroup(info: any): void;
|
||||
|
@ -14,7 +14,7 @@ import { IItem } from "@spt/models/eft/common/tables/IItem";
|
||||
import { ITraderAssort } from "@spt/models/eft/common/tables/ITrader";
|
||||
import { IItemEventRouterResponse } from "@spt/models/eft/itemEvent/IItemEventRouterResponse";
|
||||
import { ISptProfile } from "@spt/models/eft/profile/ISptProfile";
|
||||
import { IAddOfferRequestData, Requirement } from "@spt/models/eft/ragfair/IAddOfferRequestData";
|
||||
import { IAddOfferRequestData, IRequirement } from "@spt/models/eft/ragfair/IAddOfferRequestData";
|
||||
import { IExtendOfferRequestData } from "@spt/models/eft/ragfair/IExtendOfferRequestData";
|
||||
import { IGetItemPriceResult } from "@spt/models/eft/ragfair/IGetItemPriceResult";
|
||||
import { IGetMarketPriceRequestData } from "@spt/models/eft/ragfair/IGetMarketPriceRequestData";
|
||||
@ -137,10 +137,11 @@ export declare class RagfairController {
|
||||
update(): void;
|
||||
/**
|
||||
* Called when creating an offer on flea, fills values in top right corner
|
||||
* @param getPriceRequest
|
||||
* @param getPriceRequest Client request object
|
||||
* @param ignoreTraderOffers Should trader offers be ignored in the calcualtion
|
||||
* @returns min/avg/max values for an item based on flea offers available
|
||||
*/
|
||||
getItemMinAvgMaxFleaPriceValues(getPriceRequest: IGetMarketPriceRequestData): IGetItemPriceResult;
|
||||
getItemMinAvgMaxFleaPriceValues(getPriceRequest: IGetMarketPriceRequestData, ignoreTraderOffers?: boolean): IGetItemPriceResult;
|
||||
/**
|
||||
* List item(s) on flea for sale
|
||||
* @param pmcData Player profile
|
||||
@ -212,7 +213,7 @@ export declare class RagfairController {
|
||||
* @param requirements
|
||||
* @returns Rouble price
|
||||
*/
|
||||
protected calculateRequirementsPriceInRub(requirements: Requirement[]): number;
|
||||
protected calculateRequirementsPriceInRub(requirements: IRequirement[]): number;
|
||||
/**
|
||||
* Using item ids from flea offer request, find corresponding items from player inventory and return as array
|
||||
* @param pmcData Player profile
|
||||
@ -223,7 +224,7 @@ export declare class RagfairController {
|
||||
items: IItem[][] | undefined;
|
||||
errorMessage: string | undefined;
|
||||
};
|
||||
createPlayerOffer(sessionId: string, requirements: Requirement[], items: IItem[], sellInOnePiece: boolean): IRagfairOffer;
|
||||
createPlayerOffer(sessionId: string, requirements: IRequirement[], items: IItem[], sellInOnePiece: boolean): IRagfairOffer;
|
||||
getAllFleaPrices(): Record<string, number>;
|
||||
getStaticPrices(): Record<string, number>;
|
||||
/**
|
||||
|
@ -1,17 +1,21 @@
|
||||
import { WeatherGenerator } from "@spt/generators/WeatherGenerator";
|
||||
import { WeatherHelper } from "@spt/helpers/WeatherHelper";
|
||||
import { IWeatherData } from "@spt/models/eft/weather/IWeatherData";
|
||||
import { IWeatherConfig } from "@spt/models/spt/config/IWeatherConfig";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { IGetLocalWeatherResponseData } from "@spt/models/spt/weather/IGetLocalWeatherResponseData";
|
||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||
import { RaidWeatherService } from "@spt/services/RaidWeatherService";
|
||||
import { SeasonalEventService } from "@spt/services/SeasonalEventService";
|
||||
export declare class WeatherController {
|
||||
protected weatherGenerator: WeatherGenerator;
|
||||
protected logger: ILogger;
|
||||
protected configServer: ConfigServer;
|
||||
protected seasonalEventService: SeasonalEventService;
|
||||
protected raidWeatherService: RaidWeatherService;
|
||||
protected weatherHelper: WeatherHelper;
|
||||
protected weatherConfig: IWeatherConfig;
|
||||
constructor(weatherGenerator: WeatherGenerator, logger: ILogger, configServer: ConfigServer, seasonalEventService: SeasonalEventService);
|
||||
constructor(weatherGenerator: WeatherGenerator, logger: ILogger, configServer: ConfigServer, seasonalEventService: SeasonalEventService, raidWeatherService: RaidWeatherService, weatherHelper: WeatherHelper);
|
||||
/** Handle client/weather */
|
||||
generate(): IWeatherData;
|
||||
/**
|
||||
@ -19,5 +23,6 @@ export declare class WeatherController {
|
||||
* @returns Date object
|
||||
*/
|
||||
getCurrentInRaidTime(): Date;
|
||||
generateLocal(sesssionID: string): IGetLocalWeatherResponseData;
|
||||
/** Handle client/localGame/weather */
|
||||
generateLocal(sesssionId: string): IGetLocalWeatherResponseData;
|
||||
}
|
||||
|
@ -16,7 +16,7 @@ import { IFilterPlateModsForSlotByLevelResult } from "@spt/models/spt/bots/IFilt
|
||||
import { IGenerateEquipmentProperties } from "@spt/models/spt/bots/IGenerateEquipmentProperties";
|
||||
import { IGenerateWeaponRequest } from "@spt/models/spt/bots/IGenerateWeaponRequest";
|
||||
import { IModToSpawnRequest } from "@spt/models/spt/bots/IModToSpawnRequest";
|
||||
import { EquipmentFilterDetails, EquipmentFilters, IBotConfig } from "@spt/models/spt/config/IBotConfig";
|
||||
import { EquipmentFilters, IBotConfig, IEquipmentFilterDetails } from "@spt/models/spt/config/IBotConfig";
|
||||
import { ExhaustableArray } from "@spt/models/spt/server/ExhaustableArray";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||
@ -56,11 +56,12 @@ export declare class BotEquipmentModGenerator {
|
||||
* @param equipment Equipment item to add mods to
|
||||
* @param modPool Mod list to choose frm
|
||||
* @param parentId parentid of item to add mod to
|
||||
* @param parentTemplate template objet of item to add mods to
|
||||
* @param parentTemplate Template object of item to add mods to
|
||||
* @param specificBlacklist The relevant blacklist from bot.json equipment dictionary
|
||||
* @param forceSpawn should this mod be forced to spawn
|
||||
* @returns Item + compatible mods as an array
|
||||
*/
|
||||
generateModsForEquipment(equipment: IItem[], parentId: string, parentTemplate: ITemplateItem, settings: IGenerateEquipmentProperties, shouldForceSpawn?: boolean): IItem[];
|
||||
generateModsForEquipment(equipment: IItem[], parentId: string, parentTemplate: ITemplateItem, settings: IGenerateEquipmentProperties, specificBlacklist: IEquipmentFilterDetails, shouldForceSpawn?: boolean): IItem[];
|
||||
/**
|
||||
* Filter a bots plate pool based on its current level
|
||||
* @param settings Bot equipment generation settings
|
||||
@ -125,13 +126,13 @@ export declare class BotEquipmentModGenerator {
|
||||
protected getModItemSlotFromDb(modSlot: string, parentTemplate: ITemplateItem): ISlot;
|
||||
/**
|
||||
* Randomly choose if a mod should be spawned, 100% for required mods OR mod is ammo slot
|
||||
* @param itemSlot slot the item sits in
|
||||
* @param modSlot slot the mod sits in
|
||||
* @param itemSlot slot the item sits in from db
|
||||
* @param modSlotName Name of slot the mod sits in
|
||||
* @param modSpawnChances Chances for various mod spawns
|
||||
* @param botEquipConfig Various config settings for generating this type of bot
|
||||
* @returns ModSpawn.SPAWN when mod should be spawned, ModSpawn.DEFAULT_MOD when default mod should spawn, ModSpawn.SKIP when mod is skipped
|
||||
*/
|
||||
protected shouldModBeSpawned(itemSlot: ISlot, modSlot: string, modSpawnChances: IModsChances, botEquipConfig: EquipmentFilters): ModSpawn;
|
||||
protected shouldModBeSpawned(itemSlot: ISlot, modSlotName: string, modSpawnChances: IModsChances, botEquipConfig: EquipmentFilters): ModSpawn;
|
||||
/**
|
||||
* Choose a mod to fit into the desired slot
|
||||
* @param request Data used to choose an appropriate mod with
|
||||
@ -235,7 +236,7 @@ export declare class BotEquipmentModGenerator {
|
||||
* @param modPool Pool of mods we are adding to
|
||||
* @param botEquipBlacklist A blacklist of items that cannot be picked
|
||||
*/
|
||||
protected addCompatibleModsForProvidedMod(desiredSlotName: string, modTemplate: ITemplateItem, modPool: IMods, botEquipBlacklist: EquipmentFilterDetails): void;
|
||||
protected addCompatibleModsForProvidedMod(desiredSlotName: string, modTemplate: ITemplateItem, modPool: IMods, botEquipBlacklist: IEquipmentFilterDetails): void;
|
||||
/**
|
||||
* Get the possible items that fit a slot
|
||||
* @param parentItemId item tpl to get compatible items for
|
||||
@ -243,7 +244,7 @@ export declare class BotEquipmentModGenerator {
|
||||
* @param botEquipBlacklist Equipment that should not be picked
|
||||
* @returns Array of compatible items for that slot
|
||||
*/
|
||||
protected getDynamicModPool(parentItemId: string, modSlot: string, botEquipBlacklist: EquipmentFilterDetails): string[];
|
||||
protected getDynamicModPool(parentItemId: string, modSlot: string, botEquipBlacklist: IEquipmentFilterDetails): string[];
|
||||
/**
|
||||
* Take a list of tpls and filter out blacklisted values using itemFilterService + botEquipmentBlacklist
|
||||
* @param allowedMods Base mods to filter
|
||||
@ -251,7 +252,7 @@ export declare class BotEquipmentModGenerator {
|
||||
* @param modSlot Slot mods belong to
|
||||
* @returns Filtered array of mod tpls
|
||||
*/
|
||||
protected filterWeaponModsByBlacklist(allowedMods: string[], botEquipBlacklist: EquipmentFilterDetails, modSlot: string): string[];
|
||||
protected filterModsByBlacklist(allowedMods: string[], botEquipBlacklist: IEquipmentFilterDetails, modSlot: string): string[];
|
||||
/**
|
||||
* With the shotgun revolver (60db29ce99594040e04c4a27) 12.12 introduced CylinderMagazines.
|
||||
* Those magazines (e.g. 60dc519adf4c47305f6d410d) have a "Cartridges" entry with a _max_count=0.
|
||||
|
@ -5,7 +5,7 @@ import { ProfileHelper } from "@spt/helpers/ProfileHelper";
|
||||
import { WeightedRandomHelper } from "@spt/helpers/WeightedRandomHelper";
|
||||
import { IBaseJsonSkills, IBaseSkill, IBotBase, IInfo, IHealth as PmcHealth, ISkills as botSkills } from "@spt/models/eft/common/tables/IBotBase";
|
||||
import { IAppearance, IBodyPart, IBotType, IHealth, IInventory } from "@spt/models/eft/common/tables/IBotType";
|
||||
import { BotGenerationDetails } from "@spt/models/spt/bots/BotGenerationDetails";
|
||||
import { IBotGenerationDetails } from "@spt/models/spt/bots/BotGenerationDetails";
|
||||
import { IBotConfig } from "@spt/models/spt/config/IBotConfig";
|
||||
import { IPmcConfig } from "@spt/models/spt/config/IPmcConfig";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
@ -53,7 +53,7 @@ export declare class BotGenerator {
|
||||
* @param botGenerationDetails details on how to generate bots
|
||||
* @returns constructed bot
|
||||
*/
|
||||
prepareAndGenerateBot(sessionId: string, botGenerationDetails: BotGenerationDetails): IBotBase;
|
||||
prepareAndGenerateBot(sessionId: string, botGenerationDetails: IBotGenerationDetails): IBotBase;
|
||||
/**
|
||||
* Get a clone of the default bot base object and adjust its role/side/difficulty values
|
||||
* @param botRole Role bot should have
|
||||
@ -75,7 +75,7 @@ export declare class BotGenerator {
|
||||
* @param botGenerationDetails details on how to generate the bot
|
||||
* @returns IBotBase object
|
||||
*/
|
||||
protected generateBot(sessionId: string, bot: IBotBase, botJsonTemplate: IBotType, botGenerationDetails: BotGenerationDetails): IBotBase;
|
||||
protected generateBot(sessionId: string, bot: IBotBase, botJsonTemplate: IBotType, botGenerationDetails: IBotGenerationDetails): IBotBase;
|
||||
protected addAdditionalPocketLootWeightsForUnheardBot(botJsonTemplate: IBotType): void;
|
||||
/**
|
||||
* Remove items from item.json/lootableItemBlacklist from bots inventory
|
||||
@ -88,7 +88,7 @@ export declare class BotGenerator {
|
||||
* @param appearance Appearance settings to choose from
|
||||
* @param botGenerationDetails Generation details
|
||||
*/
|
||||
protected setBotAppearance(bot: IBotBase, appearance: IAppearance, botGenerationDetails: BotGenerationDetails): void;
|
||||
protected setBotAppearance(bot: IBotBase, appearance: IAppearance, botGenerationDetails: IBotGenerationDetails): void;
|
||||
/**
|
||||
* Log the number of PMCs generated to the debug console
|
||||
* @param output Generated bot array, ready to send to client
|
||||
|
@ -1,17 +1,22 @@
|
||||
import { ApplicationContext } from "@spt/context/ApplicationContext";
|
||||
import { BotEquipmentModGenerator } from "@spt/generators/BotEquipmentModGenerator";
|
||||
import { BotLootGenerator } from "@spt/generators/BotLootGenerator";
|
||||
import { BotWeaponGenerator } from "@spt/generators/BotWeaponGenerator";
|
||||
import { BotGeneratorHelper } from "@spt/helpers/BotGeneratorHelper";
|
||||
import { BotHelper } from "@spt/helpers/BotHelper";
|
||||
import { ItemHelper } from "@spt/helpers/ItemHelper";
|
||||
import { ProfileHelper } from "@spt/helpers/ProfileHelper";
|
||||
import { WeatherHelper } from "@spt/helpers/WeatherHelper";
|
||||
import { WeightedRandomHelper } from "@spt/helpers/WeightedRandomHelper";
|
||||
import { IInventory as PmcInventory } from "@spt/models/eft/common/tables/IBotBase";
|
||||
import { IBotType, IChances, IEquipment, IGeneration, IInventory } from "@spt/models/eft/common/tables/IBotType";
|
||||
import { IGetRaidConfigurationRequestData } from "@spt/models/eft/match/IGetRaidConfigurationRequestData";
|
||||
import { EquipmentSlots } from "@spt/models/enums/EquipmentSlots";
|
||||
import { IGenerateEquipmentProperties } from "@spt/models/spt/bots/IGenerateEquipmentProperties";
|
||||
import { EquipmentFilterDetails, IBotConfig } from "@spt/models/spt/config/IBotConfig";
|
||||
import { IBotConfig } from "@spt/models/spt/config/IBotConfig";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||
import { BotEquipmentFilterService } from "@spt/services/BotEquipmentFilterService";
|
||||
import { BotEquipmentModPoolService } from "@spt/services/BotEquipmentModPoolService";
|
||||
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||
import { LocalisationService } from "@spt/services/LocalisationService";
|
||||
@ -22,18 +27,22 @@ export declare class BotInventoryGenerator {
|
||||
protected hashUtil: HashUtil;
|
||||
protected randomUtil: RandomUtil;
|
||||
protected databaseService: DatabaseService;
|
||||
protected applicationContext: ApplicationContext;
|
||||
protected botWeaponGenerator: BotWeaponGenerator;
|
||||
protected botLootGenerator: BotLootGenerator;
|
||||
protected botGeneratorHelper: BotGeneratorHelper;
|
||||
protected profileHelper: ProfileHelper;
|
||||
protected botHelper: BotHelper;
|
||||
protected weightedRandomHelper: WeightedRandomHelper;
|
||||
protected itemHelper: ItemHelper;
|
||||
protected weatherHelper: WeatherHelper;
|
||||
protected localisationService: LocalisationService;
|
||||
protected botEquipmentFilterService: BotEquipmentFilterService;
|
||||
protected botEquipmentModPoolService: BotEquipmentModPoolService;
|
||||
protected botEquipmentModGenerator: BotEquipmentModGenerator;
|
||||
protected configServer: ConfigServer;
|
||||
protected botConfig: IBotConfig;
|
||||
constructor(logger: ILogger, hashUtil: HashUtil, randomUtil: RandomUtil, databaseService: DatabaseService, botWeaponGenerator: BotWeaponGenerator, botLootGenerator: BotLootGenerator, botGeneratorHelper: BotGeneratorHelper, botHelper: BotHelper, weightedRandomHelper: WeightedRandomHelper, itemHelper: ItemHelper, localisationService: LocalisationService, botEquipmentModPoolService: BotEquipmentModPoolService, botEquipmentModGenerator: BotEquipmentModGenerator, configServer: ConfigServer);
|
||||
constructor(logger: ILogger, hashUtil: HashUtil, randomUtil: RandomUtil, databaseService: DatabaseService, applicationContext: ApplicationContext, botWeaponGenerator: BotWeaponGenerator, botLootGenerator: BotLootGenerator, botGeneratorHelper: BotGeneratorHelper, profileHelper: ProfileHelper, botHelper: BotHelper, weightedRandomHelper: WeightedRandomHelper, itemHelper: ItemHelper, weatherHelper: WeatherHelper, localisationService: LocalisationService, botEquipmentFilterService: BotEquipmentFilterService, botEquipmentModPoolService: BotEquipmentModPoolService, botEquipmentModGenerator: BotEquipmentModGenerator, configServer: ConfigServer);
|
||||
/**
|
||||
* Add equipment/weapons/loot to bot
|
||||
* @param sessionId Session id
|
||||
@ -52,6 +61,7 @@ export declare class BotInventoryGenerator {
|
||||
protected generateInventoryBase(): PmcInventory;
|
||||
/**
|
||||
* Add equipment to a bot
|
||||
* @param sessionId Session id
|
||||
* @param templateInventory bot/x.json data from db
|
||||
* @param wornItemChances Chances items will be added to bot
|
||||
* @param botRole Role bot has (assault/pmcBot)
|
||||
@ -59,7 +69,7 @@ export declare class BotInventoryGenerator {
|
||||
* @param botLevel Level of bot
|
||||
* @param chosenGameVersion Game version for bot, only really applies for PMCs
|
||||
*/
|
||||
protected generateAndAddEquipmentToBot(templateInventory: IInventory, wornItemChances: IChances, botRole: string, botInventory: PmcInventory, botLevel: number, chosenGameVersion: string): void;
|
||||
protected generateAndAddEquipmentToBot(sessionId: string, templateInventory: IInventory, wornItemChances: IChances, botRole: string, botInventory: PmcInventory, botLevel: number, chosenGameVersion: string, raidConfig: IGetRaidConfigurationRequestData): void;
|
||||
/**
|
||||
* Remove non-armored rigs from parameter data
|
||||
* @param templateEquipment Equpiment to filter TacticalVest of
|
||||
@ -75,6 +85,7 @@ export declare class BotInventoryGenerator {
|
||||
protected filterRigsToThoseWithoutProtection(templateEquipment: IEquipment, botRole: string, allowEmptyResult?: boolean): void;
|
||||
/**
|
||||
* Add a piece of equipment with mods to inventory from the provided pools
|
||||
* @param sessionId Session id
|
||||
* @param settings Values to adjust how item is chosen and added to bot
|
||||
* @returns true when item added
|
||||
*/
|
||||
@ -82,10 +93,10 @@ export declare class BotInventoryGenerator {
|
||||
/**
|
||||
* Get all possible mods for item and filter down based on equipment blacklist from bot.json config
|
||||
* @param itemTpl Item mod pool is being retrieved and filtered
|
||||
* @param equipmentBlacklist blacklist to filter mod pool with
|
||||
* @param equipmentBlacklist Blacklist to filter mod pool with
|
||||
* @returns Filtered pool of mods
|
||||
*/
|
||||
protected getFilteredDynamicModsForItem(itemTpl: string, equipmentBlacklist: EquipmentFilterDetails[]): Record<string, string[]>;
|
||||
protected getFilteredDynamicModsForItem(itemTpl: string, equipmentBlacklist: Record<string, string[]>): Record<string, string[]>;
|
||||
/**
|
||||
* Work out what weapons bot should have equipped and add them to bot inventory
|
||||
* @param templateInventory bot/x.json data from db
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { MinMax } from "@spt/models/common/MinMax";
|
||||
import { IRandomisedBotLevelResult } from "@spt/models/eft/bot/IRandomisedBotLevelResult";
|
||||
import { IBotBase } from "@spt/models/eft/common/tables/IBotBase";
|
||||
import { BotGenerationDetails } from "@spt/models/spt/bots/BotGenerationDetails";
|
||||
import { IBotGenerationDetails } from "@spt/models/spt/bots/BotGenerationDetails";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||
import { MathUtil } from "@spt/utils/MathUtil";
|
||||
@ -19,7 +19,7 @@ export declare class BotLevelGenerator {
|
||||
* @param bot Bot the level is being generated for
|
||||
* @returns IRandomisedBotLevelResult object
|
||||
*/
|
||||
generateBotLevel(levelDetails: MinMax, botGenerationDetails: BotGenerationDetails, bot: IBotBase): IRandomisedBotLevelResult;
|
||||
generateBotLevel(levelDetails: MinMax, botGenerationDetails: IBotGenerationDetails, bot: IBotBase): IRandomisedBotLevelResult;
|
||||
protected chooseBotLevel(min: number, max: number, shift: number, number: number): number;
|
||||
/**
|
||||
* Return the min and max bot level based on a relative delta from the PMC level
|
||||
@ -28,5 +28,5 @@ export declare class BotLevelGenerator {
|
||||
* @param maxlevel Max level allowed
|
||||
* @returns A MinMax of the lowest and highest level to generate the bots
|
||||
*/
|
||||
protected getRelativeBotLevelRange(botGenerationDetails: BotGenerationDetails, levelDetails: MinMax, maxAvailableLevel: number): MinMax;
|
||||
protected getRelativeBotLevelRange(botGenerationDetails: IBotGenerationDetails, levelDetails: MinMax, maxAvailableLevel: number): MinMax;
|
||||
}
|
||||
|
@ -8,7 +8,7 @@ import { IInventory as PmcInventory } from "@spt/models/eft/common/tables/IBotBa
|
||||
import { IGenerationData, IInventory, IModsChances } from "@spt/models/eft/common/tables/IBotType";
|
||||
import { IItem } from "@spt/models/eft/common/tables/IItem";
|
||||
import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
|
||||
import { GenerateWeaponResult } from "@spt/models/spt/bots/GenerateWeaponResult";
|
||||
import { IGenerateWeaponResult } from "@spt/models/spt/bots/IGenerateWeaponResult";
|
||||
import { IBotConfig } from "@spt/models/spt/config/IBotConfig";
|
||||
import { IPmcConfig } from "@spt/models/spt/config/IPmcConfig";
|
||||
import { IRepairConfig } from "@spt/models/spt/config/IRepairConfig";
|
||||
@ -52,7 +52,7 @@ export declare class BotWeaponGenerator {
|
||||
* @param isPmc Is weapon generated for a pmc
|
||||
* @returns GenerateWeaponResult object
|
||||
*/
|
||||
generateRandomWeapon(sessionId: string, equipmentSlot: string, botTemplateInventory: IInventory, weaponParentId: string, modChances: IModsChances, botRole: string, isPmc: boolean, botLevel: number): GenerateWeaponResult;
|
||||
generateRandomWeapon(sessionId: string, equipmentSlot: string, botTemplateInventory: IInventory, weaponParentId: string, modChances: IModsChances, botRole: string, isPmc: boolean, botLevel: number): IGenerateWeaponResult;
|
||||
/**
|
||||
* Get a random weighted weapon from a bots pool of weapons
|
||||
* @param equipmentSlot Primary/secondary/holster
|
||||
@ -71,7 +71,7 @@ export declare class BotWeaponGenerator {
|
||||
* @param isPmc Is weapon being generated for a pmc
|
||||
* @returns GenerateWeaponResult object
|
||||
*/
|
||||
generateWeaponByTpl(sessionId: string, weaponTpl: string, slotName: string, botTemplateInventory: IInventory, weaponParentId: string, modChances: IModsChances, botRole: string, isPmc: boolean, botLevel: number): GenerateWeaponResult;
|
||||
generateWeaponByTpl(sessionId: string, weaponTpl: string, slotName: string, botTemplateInventory: IInventory, weaponParentId: string, modChances: IModsChances, botRole: string, isPmc: boolean, botLevel: number): IGenerateWeaponResult;
|
||||
/**
|
||||
* Insert a cartridge(s) into a weapon
|
||||
* Handles all chambers - patron_in_weapon, patron_in_weapon_000 etc
|
||||
@ -114,14 +114,14 @@ export declare class BotWeaponGenerator {
|
||||
* @param inventory Inventory to add magazines to
|
||||
* @param botRole The bot type we're getting generating extra mags for
|
||||
*/
|
||||
addExtraMagazinesToInventory(generatedWeaponResult: GenerateWeaponResult, magWeights: IGenerationData, inventory: PmcInventory, botRole: string): void;
|
||||
addExtraMagazinesToInventory(generatedWeaponResult: IGenerateWeaponResult, magWeights: IGenerationData, inventory: PmcInventory, botRole: string): void;
|
||||
/**
|
||||
* Add Grendaes for UBGL to bots vest and secure container
|
||||
* @param weaponMods Weapon array with mods
|
||||
* @param generatedWeaponResult result of weapon generation
|
||||
* @param inventory bot inventory to add grenades to
|
||||
*/
|
||||
protected addUbglGrenadesToBotInventory(weaponMods: IItem[], generatedWeaponResult: GenerateWeaponResult, inventory: PmcInventory): void;
|
||||
protected addUbglGrenadesToBotInventory(weaponMods: IItem[], generatedWeaponResult: IGenerateWeaponResult, inventory: PmcInventory): void;
|
||||
/**
|
||||
* Add ammo to the secure container
|
||||
* @param stackCount How many stacks of ammo to add
|
||||
|
@ -2,11 +2,12 @@ import { InventoryHelper } from "@spt/helpers/InventoryHelper";
|
||||
import { ItemHelper } from "@spt/helpers/ItemHelper";
|
||||
import { PresetHelper } from "@spt/helpers/PresetHelper";
|
||||
import { WeightedRandomHelper } from "@spt/helpers/WeightedRandomHelper";
|
||||
import { MinMax } from "@spt/models/common/MinMax";
|
||||
import { IPreset } from "@spt/models/eft/common/IGlobals";
|
||||
import { IItem } from "@spt/models/eft/common/tables/IItem";
|
||||
import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
|
||||
import { ISealedAirdropContainerSettings, RewardDetails } from "@spt/models/spt/config/IInventoryConfig";
|
||||
import { LootRequest } from "@spt/models/spt/services/LootRequest";
|
||||
import { IRewardDetails, ISealedAirdropContainerSettings } from "@spt/models/spt/config/IInventoryConfig";
|
||||
import { ILootRequest } from "@spt/models/spt/services/ILootRequest";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||
import { ItemFilterService } from "@spt/services/ItemFilterService";
|
||||
@ -36,7 +37,22 @@ export declare class LootGenerator {
|
||||
* @param options parameters to adjust how loot is generated
|
||||
* @returns An array of loot items
|
||||
*/
|
||||
createRandomLoot(options: LootRequest): IItem[];
|
||||
createRandomLoot(options: ILootRequest): IItem[];
|
||||
/**
|
||||
* Generate An array of items
|
||||
* TODO - handle weapon presets/ammo packs
|
||||
* @param forcedLootDict Dictionary of item tpls with minmax values
|
||||
* @returns Array of IItem
|
||||
*/
|
||||
createForcedLoot(forcedLootDict: Record<string, MinMax>): IItem[];
|
||||
/**
|
||||
* Get pool of items from item db that fit passed in param criteria
|
||||
* @param itemTplBlacklist Prevent these items
|
||||
* @param itemTypeWhitelist Only allow these items
|
||||
* @param useRewardItemBlacklist Should item.json reward item config be used
|
||||
* @param allowBossItems Should boss items be allowed in result
|
||||
* @returns results of filtering + blacklist used
|
||||
*/
|
||||
protected getItemRewardPool(itemTplBlacklist: string[], itemTypeWhitelist: string[], useRewardItemBlacklist: boolean, allowBossItems: boolean): {
|
||||
itemPool: [string, ITemplateItem][];
|
||||
blacklist: Set<string>;
|
||||
@ -47,7 +63,7 @@ export declare class LootGenerator {
|
||||
* @param options Loot request options - armor level etc
|
||||
* @returns True if item has desired armor level
|
||||
*/
|
||||
protected isArmorOfDesiredProtectionLevel(armor: IPreset, options: LootRequest): boolean;
|
||||
protected isArmorOfDesiredProtectionLevel(armor: IPreset, options: ILootRequest): boolean;
|
||||
/**
|
||||
* Construct item limit record to hold max and current item count for each item type
|
||||
* @param limits limits as defined in config
|
||||
@ -65,14 +81,14 @@ export declare class LootGenerator {
|
||||
protected findAndAddRandomItemToLoot(items: [string, ITemplateItem][], itemTypeCounts: Record<string, {
|
||||
current: number;
|
||||
max: number;
|
||||
}>, options: LootRequest, result: IItem[]): boolean;
|
||||
}>, options: ILootRequest, result: IItem[]): boolean;
|
||||
/**
|
||||
* Get a randomised stack count for an item between its StackMinRandom and StackMaxSize values
|
||||
* @param item item to get stack count of
|
||||
* @param options loot options
|
||||
* @returns stack count
|
||||
*/
|
||||
protected getRandomisedStackCount(item: ITemplateItem, options: LootRequest): number;
|
||||
protected getRandomisedStackCount(item: ITemplateItem, options: ILootRequest): number;
|
||||
/**
|
||||
* Find a random item in items.json and add to result array
|
||||
* @param presetPool Presets to choose from
|
||||
@ -111,12 +127,12 @@ export declare class LootGenerator {
|
||||
* @param rewardContainerDetails
|
||||
* @returns Array of item with children arrays
|
||||
*/
|
||||
getRandomLootContainerLoot(rewardContainerDetails: RewardDetails): IItem[][];
|
||||
getRandomLootContainerLoot(rewardContainerDetails: IRewardDetails): IItem[][];
|
||||
/**
|
||||
* Pick a reward item based on the reward details data
|
||||
* @param rewardContainerDetails
|
||||
* @returns Single tpl
|
||||
*/
|
||||
protected pickRewardItem(rewardContainerDetails: RewardDetails): string;
|
||||
protected pickRewardItem(rewardContainerDetails: IRewardDetails): string;
|
||||
}
|
||||
export {};
|
||||
|
@ -6,7 +6,7 @@ import { ProfileHelper } from "@spt/helpers/ProfileHelper";
|
||||
import { IPmcData } from "@spt/models/eft/common/IPmcData";
|
||||
import { IBotBase, ISkills, IStats } from "@spt/models/eft/common/tables/IBotBase";
|
||||
import { IBotType } from "@spt/models/eft/common/tables/IBotType";
|
||||
import { IPlayerScavConfig, KarmaLevel } from "@spt/models/spt/config/IPlayerScavConfig";
|
||||
import { IKarmaLevel, IPlayerScavConfig } from "@spt/models/spt/config/IPlayerScavConfig";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||
import { SaveServer } from "@spt/servers/SaveServer";
|
||||
@ -67,7 +67,7 @@ export declare class PlayerScavGenerator {
|
||||
* @param karmaSettings Values to modify the bot template with
|
||||
* @param baseBotNode bot template to modify according to karama level settings
|
||||
*/
|
||||
protected adjustBotTemplateWithKarmaSpecificSettings(karmaSettings: KarmaLevel, baseBotNode: IBotType): void;
|
||||
protected adjustBotTemplateWithKarmaSpecificSettings(karmaSettings: IKarmaLevel, baseBotNode: IBotType): void;
|
||||
protected getScavSkills(scavProfile: IPmcData): ISkills;
|
||||
protected getDefaultScavSkills(): ISkills;
|
||||
protected getScavStats(scavProfile: IPmcData): IStats;
|
||||
|
@ -9,8 +9,10 @@ import { RagfairServerHelper } from "@spt/helpers/RagfairServerHelper";
|
||||
import { IItem } from "@spt/models/eft/common/tables/IItem";
|
||||
import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
|
||||
import { IBarterScheme } from "@spt/models/eft/common/tables/ITrader";
|
||||
import { IRagfairOffer, IRagfairOfferUser, OfferRequirement } from "@spt/models/eft/ragfair/IRagfairOffer";
|
||||
import { Dynamic, IArmorPlateBlacklistSettings, IRagfairConfig } from "@spt/models/spt/config/IRagfairConfig";
|
||||
import { IOfferRequirement, IRagfairOffer, IRagfairOfferUser } from "@spt/models/eft/ragfair/IRagfairOffer";
|
||||
import { IBotConfig } from "@spt/models/spt/config/IBotConfig";
|
||||
import { IArmorPlateBlacklistSettings, IBarterDetails, IDynamic, IRagfairConfig } from "@spt/models/spt/config/IRagfairConfig";
|
||||
import { ITplWithFleaPrice } from "@spt/models/spt/ragfair/ITplWithFleaPrice";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||
import { SaveServer } from "@spt/servers/SaveServer";
|
||||
@ -45,6 +47,7 @@ export declare class RagfairOfferGenerator {
|
||||
protected configServer: ConfigServer;
|
||||
protected cloner: ICloner;
|
||||
protected ragfairConfig: IRagfairConfig;
|
||||
protected botConfig: IBotConfig;
|
||||
protected allowedFleaPriceItemsForBarter: {
|
||||
tpl: string;
|
||||
price: number;
|
||||
@ -86,7 +89,7 @@ export declare class RagfairOfferGenerator {
|
||||
* @param offerRequirements barter requirements for offer
|
||||
* @returns rouble cost of offer
|
||||
*/
|
||||
protected convertOfferRequirementsIntoRoubles(offerRequirements: OfferRequirement[]): number;
|
||||
protected convertOfferRequirementsIntoRoubles(offerRequirements: IOfferRequirement[]): number;
|
||||
/**
|
||||
* Get avatar url from trader table in db
|
||||
* @param isTrader Is user we're getting avatar for a trader
|
||||
@ -136,7 +139,7 @@ export declare class RagfairOfferGenerator {
|
||||
* @param isExpiredOffer is an expired offer
|
||||
* @param config Ragfair dynamic config
|
||||
*/
|
||||
protected createOffersFromAssort(assortItemWithChildren: IItem[], isExpiredOffer: boolean, config: Dynamic): Promise<void>;
|
||||
protected createOffersFromAssort(assortItemWithChildren: IItem[], isExpiredOffer: boolean, config: IDynamic): Promise<void>;
|
||||
/**
|
||||
* iterate over an items chidren and look for plates above desired level and remove them
|
||||
* @param presetWithChildren preset to check for plates
|
||||
@ -203,17 +206,15 @@ export declare class RagfairOfferGenerator {
|
||||
/**
|
||||
* Create a barter-based barter scheme, if not possible, fall back to making barter scheme currency based
|
||||
* @param offerItems Items for sale in offer
|
||||
* @param barterConfig Barter config from ragfairConfig.dynamic.barter
|
||||
* @returns Barter scheme
|
||||
*/
|
||||
protected createBarterBarterScheme(offerItems: IItem[]): IBarterScheme[];
|
||||
protected createBarterBarterScheme(offerItems: IItem[], barterConfig: IBarterDetails): IBarterScheme[];
|
||||
/**
|
||||
* Get an array of flea prices + item tpl, cached in generator class inside `allowedFleaPriceItemsForBarter`
|
||||
* @returns array with tpl/price values
|
||||
*/
|
||||
protected getFleaPricesAsArray(): {
|
||||
tpl: string;
|
||||
price: number;
|
||||
}[];
|
||||
protected getFleaPricesAsArray(): ITplWithFleaPrice[];
|
||||
/**
|
||||
* Create a random currency-based barter scheme for an array of items
|
||||
* @param offerWithChildren Items on offer
|
||||
|
@ -33,26 +33,30 @@ export declare class RepeatableQuestRewardGenerator {
|
||||
protected questConfig: IQuestConfig;
|
||||
constructor(logger: ILogger, randomUtil: RandomUtil, mathUtil: MathUtil, databaseService: DatabaseService, itemHelper: ItemHelper, presetHelper: PresetHelper, handbookHelper: HandbookHelper, localisationService: LocalisationService, objectId: ObjectId, itemFilterService: ItemFilterService, seasonalEventService: SeasonalEventService, configServer: ConfigServer, cloner: ICloner);
|
||||
/**
|
||||
* Generate the reward for a mission. A reward can consist of
|
||||
* Generate the reward for a mission. A reward can consist of:
|
||||
* - Experience
|
||||
* - Money
|
||||
* - GP coins
|
||||
* - Weapon preset
|
||||
* - Items
|
||||
* - Trader Reputation
|
||||
* - Skill level experience
|
||||
*
|
||||
* The reward is dependent on the player level as given by the wiki. The exact mapping of pmcLevel to
|
||||
* experience / money / items / trader reputation can be defined in QuestConfig.js
|
||||
*
|
||||
* There's also a random variation of the reward the spread of which can be also defined in the config.
|
||||
* There's also a random variation of the reward the spread of which can be also defined in the config
|
||||
*
|
||||
* Additionally, a scaling factor w.r.t. quest difficulty going from 0.2...1 can be used
|
||||
*
|
||||
* @param {integer} pmcLevel player's level
|
||||
* @param {number} difficulty a reward scaling factor from 0.2 to 1
|
||||
* @param {string} traderId the trader for reputation gain (and possible in the future filtering of reward item type based on trader)
|
||||
* @param {object} repeatableConfig The configuration for the repeatable kind (daily, weekly) as configured in QuestConfig for the requested quest
|
||||
* @returns {object} object of "Reward"-type that can be given for a repeatable mission
|
||||
* @param pmcLevel Level of player reward is being generated for
|
||||
* @param difficulty Reward scaling factor from 0.2 to 1
|
||||
* @param traderId Trader reward will be given by
|
||||
* @param repeatableConfig Config for quest type (daily, weekly)
|
||||
* @param questConfig
|
||||
* @param rewardTplBlacklist OPTIONAL: list of tpls to NOT use when picking a reward
|
||||
* @returns IQuestRewards
|
||||
*/
|
||||
generateReward(pmcLevel: number, difficulty: number, traderId: string, repeatableConfig: IRepeatableQuestConfig, questConfig: IBaseQuestConfig): IQuestRewards;
|
||||
generateReward(pmcLevel: number, difficulty: number, traderId: string, repeatableConfig: IRepeatableQuestConfig, questConfig: IBaseQuestConfig, rewardTplBlacklist?: string[]): IQuestRewards;
|
||||
protected getQuestRewardValues(rewardScaling: IRewardScaling, difficulty: number, pmcLevel: number): IQuestRewardValues;
|
||||
/**
|
||||
* Get an array of items + stack size to give to player as reward that fit inside of a rouble budget
|
||||
|
@ -4,7 +4,7 @@ import { IItem } from "@spt/models/eft/common/tables/IItem";
|
||||
import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
|
||||
import { IHideoutScavCase } from "@spt/models/eft/hideout/IHideoutScavCase";
|
||||
import { IScavCaseConfig } from "@spt/models/spt/config/IScavCaseConfig";
|
||||
import { RewardCountAndPriceDetails, ScavCaseRewardCountsAndPrices } from "@spt/models/spt/hideout/ScavCaseRewardCountsAndPrices";
|
||||
import { IRewardCountAndPriceDetails, IScavCaseRewardCountsAndPrices } from "@spt/models/spt/hideout/ScavCaseRewardCountsAndPrices";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||
@ -48,7 +48,7 @@ export declare class ScavCaseRewardGenerator {
|
||||
* @param itemFilters how the rewards should be filtered down (by item count)
|
||||
* @returns
|
||||
*/
|
||||
protected pickRandomRewards(items: ITemplateItem[], itemFilters: RewardCountAndPriceDetails, rarity: string): ITemplateItem[];
|
||||
protected pickRandomRewards(items: ITemplateItem[], itemFilters: IRewardCountAndPriceDetails, rarity: string): ITemplateItem[];
|
||||
/**
|
||||
* Choose if money should be a reward based on the moneyRewardChancePercent config chance in scavCaseConfig
|
||||
* @returns true if reward should be money
|
||||
@ -81,13 +81,13 @@ export declare class ScavCaseRewardGenerator {
|
||||
* @param itemFilters controls how the dbItems will be filtered and returned (handbook price)
|
||||
* @returns filtered dbItems array
|
||||
*/
|
||||
protected getFilteredItemsByPrice(dbItems: ITemplateItem[], itemFilters: RewardCountAndPriceDetails): ITemplateItem[];
|
||||
protected getFilteredItemsByPrice(dbItems: ITemplateItem[], itemFilters: IRewardCountAndPriceDetails): ITemplateItem[];
|
||||
/**
|
||||
* Gathers the reward min and max count params for each reward quality level from config and scavcase.json into a single object
|
||||
* @param scavCaseDetails scavcase.json values
|
||||
* @returns ScavCaseRewardCountsAndPrices object
|
||||
*/
|
||||
protected getScavCaseRewardCountsAndPrices(scavCaseDetails: IHideoutScavCase): ScavCaseRewardCountsAndPrices;
|
||||
protected getScavCaseRewardCountsAndPrices(scavCaseDetails: IHideoutScavCase): IScavCaseRewardCountsAndPrices;
|
||||
/**
|
||||
* Randomises the size of ammo and money stacks
|
||||
* @param itemToCalculate ammo or money item
|
||||
|
@ -1,6 +1,8 @@
|
||||
import { ApplicationContext } from "@spt/context/ApplicationContext";
|
||||
import { WeatherHelper } from "@spt/helpers/WeatherHelper";
|
||||
import { WeightedRandomHelper } from "@spt/helpers/WeightedRandomHelper";
|
||||
import { IWeather, IWeatherData } from "@spt/models/eft/weather/IWeatherData";
|
||||
import { Season } from "@spt/models/enums/Season";
|
||||
import { WindDirection } from "@spt/models/enums/WindDirection";
|
||||
import { IWeatherConfig } from "@spt/models/spt/config/IWeatherConfig";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
@ -10,6 +12,7 @@ import { RandomUtil } from "@spt/utils/RandomUtil";
|
||||
import { TimeUtil } from "@spt/utils/TimeUtil";
|
||||
export declare class WeatherGenerator {
|
||||
protected weightedRandomHelper: WeightedRandomHelper;
|
||||
protected weatherHelper: WeatherHelper;
|
||||
protected logger: ILogger;
|
||||
protected randomUtil: RandomUtil;
|
||||
protected timeUtil: TimeUtil;
|
||||
@ -18,7 +21,7 @@ export declare class WeatherGenerator {
|
||||
protected configServer: ConfigServer;
|
||||
protected weatherConfig: IWeatherConfig;
|
||||
private serverStartTimestampMS;
|
||||
constructor(weightedRandomHelper: WeightedRandomHelper, logger: ILogger, randomUtil: RandomUtil, timeUtil: TimeUtil, seasonalEventService: SeasonalEventService, applicationContext: ApplicationContext, configServer: ConfigServer);
|
||||
constructor(weightedRandomHelper: WeightedRandomHelper, weatherHelper: WeatherHelper, logger: ILogger, randomUtil: RandomUtil, timeUtil: TimeUtil, seasonalEventService: SeasonalEventService, applicationContext: ApplicationContext, configServer: ConfigServer);
|
||||
/**
|
||||
* Get current + raid datetime and format into correct BSG format and return
|
||||
* @param data Weather data
|
||||
@ -32,12 +35,6 @@ export declare class WeatherGenerator {
|
||||
* @returns formatted time
|
||||
*/
|
||||
protected getBsgFormattedInRaidTime(): string;
|
||||
/**
|
||||
* Get the current in-raid time
|
||||
* @param currentDate (new Date())
|
||||
* @returns Date object of current in-raid time
|
||||
*/
|
||||
getInRaidTime(): Date;
|
||||
/**
|
||||
* Get current time formatted to fit BSGs requirement
|
||||
* @param date date to format into bsg style
|
||||
@ -46,14 +43,24 @@ export declare class WeatherGenerator {
|
||||
protected getBSGFormattedTime(date: Date): string;
|
||||
/**
|
||||
* Return randomised Weather data with help of config/weather.json
|
||||
* @param currentSeason the currently active season
|
||||
* @param timestamp OPTIONAL what timestamp to generate the weather data at, defaults to now when not supplied
|
||||
* @returns Randomised weather data
|
||||
*/
|
||||
generateWeather(): IWeather;
|
||||
generateWeather(currentSeason: Season, timestamp?: number): IWeather;
|
||||
/**
|
||||
* Choose a temprature for the raid based on time of day and current season
|
||||
* @param currentSeason What season tarkov is currently in
|
||||
* @param inRaidTimestamp What time is the raid running at
|
||||
* @returns Timestamp
|
||||
*/
|
||||
protected getRaidTemperature(currentSeason: Season, inRaidTimestamp: number): number;
|
||||
/**
|
||||
* Set IWeather date/time/timestamp values to now
|
||||
* @param weather Object to update
|
||||
* @param timestamp OPTIONAL, define timestamp used
|
||||
*/
|
||||
protected setCurrentDateTime(weather: IWeather): void;
|
||||
protected setCurrentDateTime(weather: IWeather, timestamp?: number): void;
|
||||
protected getWeightedWindDirection(): WindDirection;
|
||||
protected getWeightedClouds(): number;
|
||||
protected getWeightedWindSpeed(): number;
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { MinMax } from "@spt/models/common/MinMax";
|
||||
import { IBotType, IDifficultyCategories } from "@spt/models/eft/common/tables/IBotType";
|
||||
import { EquipmentFilters, IBotConfig, RandomisationDetails } from "@spt/models/spt/config/IBotConfig";
|
||||
import { EquipmentFilters, IBotConfig, IRandomisationDetails } from "@spt/models/spt/config/IBotConfig";
|
||||
import { IPmcConfig } from "@spt/models/spt/config/IPmcConfig";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||
@ -54,7 +54,7 @@ export declare class BotHelper {
|
||||
* @param botEquipConfig bot equipment json
|
||||
* @returns RandomisationDetails
|
||||
*/
|
||||
getBotRandomizationDetails(botLevel: number, botEquipConfig: EquipmentFilters): RandomisationDetails | undefined;
|
||||
getBotRandomizationDetails(botLevel: number, botEquipConfig: EquipmentFilters): IRandomisationDetails | undefined;
|
||||
/**
|
||||
* Choose between pmcBEAR and pmcUSEC at random based on the % defined in pmcConfig.isUsec
|
||||
* @returns pmc role
|
||||
@ -71,5 +71,11 @@ export declare class BotHelper {
|
||||
* @returns pmc side as string
|
||||
*/
|
||||
protected getRandomizedPmcSide(): string;
|
||||
getPmcNicknameOfMaxLength(userId: string, maxLength: number): string;
|
||||
/**
|
||||
* Get a name from a PMC that fits the desired length
|
||||
* @param maxLength Max length of name, inclusive
|
||||
* @param side OPTIONAL - what side PMC to get name from (usec/bear)
|
||||
* @returns name of PMC
|
||||
*/
|
||||
getPmcNicknameOfMaxLength(maxLength: number, side?: string): string;
|
||||
}
|
||||
|
@ -2,7 +2,7 @@ import { ItemHelper } from "@spt/helpers/ItemHelper";
|
||||
import { NotificationSendHelper } from "@spt/helpers/NotificationSendHelper";
|
||||
import { NotifierHelper } from "@spt/helpers/NotifierHelper";
|
||||
import { IItem } from "@spt/models/eft/common/tables/IItem";
|
||||
import { Dialogue, MessagePreview } from "@spt/models/eft/profile/ISptProfile";
|
||||
import { IDialogue, IMessagePreview } from "@spt/models/eft/profile/ISptProfile";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
||||
import { SaveServer } from "@spt/servers/SaveServer";
|
||||
@ -23,7 +23,7 @@ export declare class DialogueHelper {
|
||||
* @param dialogue
|
||||
* @returns MessagePreview
|
||||
*/
|
||||
getMessagePreview(dialogue: Dialogue): MessagePreview;
|
||||
getMessagePreview(dialogue: IDialogue): IMessagePreview;
|
||||
/**
|
||||
* Get the item contents for a particular message.
|
||||
* @param messageID
|
||||
@ -37,5 +37,5 @@ export declare class DialogueHelper {
|
||||
* @param sessionId Session/player id
|
||||
* @returns Dialog dictionary
|
||||
*/
|
||||
getDialogsForProfile(sessionId: string): Record<string, Dialogue>;
|
||||
getDialogsForProfile(sessionId: string): Record<string, IDialogue>;
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { IPmcData } from "@spt/models/eft/common/IPmcData";
|
||||
import { IBodyPartsHealth, IHealth } from "@spt/models/eft/common/tables/IBotBase";
|
||||
import { ISyncHealthRequestData } from "@spt/models/eft/health/ISyncHealthRequestData";
|
||||
import { Effects, ISptProfile } from "@spt/models/eft/profile/ISptProfile";
|
||||
import { IEffects, ISptProfile } from "@spt/models/eft/profile/ISptProfile";
|
||||
import { IHealthConfig } from "@spt/models/spt/config/IHealthConfig";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||
@ -63,7 +63,7 @@ export declare class HealthHelper {
|
||||
* @param bodyPartsWithEffects dict of body parts with effects that should be added to profile
|
||||
* @param addEffects Should effects be added back to profile
|
||||
*/
|
||||
protected saveEffects(pmcData: IPmcData, sessionId: string, bodyPartsWithEffects: Effects, deleteExistingEffects?: boolean): void;
|
||||
protected saveEffects(pmcData: IPmcData, sessionId: string, bodyPartsWithEffects: IEffects, deleteExistingEffects?: boolean): void;
|
||||
/**
|
||||
* Add effect to body part in profile
|
||||
* @param pmcData Player profile
|
||||
|
@ -4,12 +4,13 @@ import { ProfileHelper } from "@spt/helpers/ProfileHelper";
|
||||
import { IPmcData } from "@spt/models/eft/common/IPmcData";
|
||||
import { IBotHideoutArea, IHideoutImprovement, IProduction, IProductive } from "@spt/models/eft/common/tables/IBotBase";
|
||||
import { IItem, IUpd } from "@spt/models/eft/common/tables/IItem";
|
||||
import { IHideoutArea, StageBonus } from "@spt/models/eft/hideout/IHideoutArea";
|
||||
import { IHideoutArea, IStageBonus } from "@spt/models/eft/hideout/IHideoutArea";
|
||||
import { IHideoutContinuousProductionStartRequestData } from "@spt/models/eft/hideout/IHideoutContinuousProductionStartRequestData";
|
||||
import { IHideoutProduction } from "@spt/models/eft/hideout/IHideoutProduction";
|
||||
import { IHideoutSingleProductionStartRequestData } from "@spt/models/eft/hideout/IHideoutSingleProductionStartRequestData";
|
||||
import { IHideoutTakeProductionRequestData } from "@spt/models/eft/hideout/IHideoutTakeProductionRequestData";
|
||||
import { IItemEventRouterResponse } from "@spt/models/eft/itemEvent/IItemEventRouterResponse";
|
||||
import { HideoutAreas } from "@spt/models/enums/HideoutAreas";
|
||||
import { SkillTypes } from "@spt/models/enums/SkillTypes";
|
||||
import { IHideoutConfig } from "@spt/models/spt/config/IHideoutConfig";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
@ -55,7 +56,7 @@ export declare class HideoutHelper {
|
||||
* This convenience function initializes new Production Object
|
||||
* with all the constants.
|
||||
*/
|
||||
initProduction(recipeId: string, productionTime: number, needFuelForAllProductionTime: boolean, isCultistCircle?: boolean): IProduction;
|
||||
initProduction(recipeId: string, productionTime: number, needFuelForAllProductionTime: boolean): IProduction;
|
||||
/**
|
||||
* Is the provided object a Production type
|
||||
* @param productive
|
||||
@ -67,7 +68,7 @@ export declare class HideoutHelper {
|
||||
* @param pmcData Profile to add bonus to
|
||||
* @param bonus Bonus to add to profile
|
||||
*/
|
||||
applyPlayerUpgradesBonuses(pmcData: IPmcData, bonus: StageBonus): void;
|
||||
applyPlayerUpgradesBonuses(pmcData: IPmcData, bonus: IStageBonus): void;
|
||||
/**
|
||||
* Process a players hideout, update areas that use resources + increment production timers
|
||||
* @param sessionID Session id
|
||||
@ -94,6 +95,21 @@ export declare class HideoutHelper {
|
||||
isGeneratorOn: boolean;
|
||||
waterCollectorHasFilter: boolean;
|
||||
}): void;
|
||||
/**
|
||||
* Is a craft from a particular hideout area
|
||||
* @param craft Craft to check
|
||||
* @param hideoutType Type to check craft against
|
||||
* @returns True it is from that area
|
||||
*/
|
||||
protected isCraftOfType(craft: IProduction, hideoutType: HideoutAreas): boolean;
|
||||
/**
|
||||
* Has the craft completed
|
||||
* Ignores bitcoin farm/cultist circle as they're continuous crafts
|
||||
* @param craft Craft to check
|
||||
|
||||
* @returns True when craft is compelte
|
||||
*/
|
||||
protected isCraftComplete(craft: IProduction): boolean;
|
||||
/**
|
||||
* Update progress timer for water collector
|
||||
* @param pmcData profile to update
|
||||
|
@ -39,7 +39,7 @@ export declare class InRaidHelper {
|
||||
* @param serverProfile Profile to update
|
||||
* @param postRaidProfile Profile returned by client after a raid
|
||||
*/
|
||||
setInventory(sessionID: string, serverProfile: IPmcData, postRaidProfile: IPmcData, isSurvived: boolean): void;
|
||||
setInventory(sessionID: string, serverProfile: IPmcData, postRaidProfile: IPmcData, isSurvived: boolean, isTransfer: boolean): void;
|
||||
/**
|
||||
* Iterate over inventory items and remove the property that defines an item as Found in Raid
|
||||
* Only removes property if item had FiR when entering raid
|
||||
|
@ -16,7 +16,7 @@ import { IInventoryRemoveRequestData } from "@spt/models/eft/inventory/IInventor
|
||||
import { IInventorySplitRequestData } from "@spt/models/eft/inventory/IInventorySplitRequestData";
|
||||
import { IInventoryTransferRequestData } from "@spt/models/eft/inventory/IInventoryTransferRequestData";
|
||||
import { IItemEventRouterResponse } from "@spt/models/eft/itemEvent/IItemEventRouterResponse";
|
||||
import { IInventoryConfig, RewardDetails } from "@spt/models/spt/config/IInventoryConfig";
|
||||
import { IInventoryConfig, IRewardDetails } from "@spt/models/spt/config/IInventoryConfig";
|
||||
import { IOwnerInventoryItems } from "@spt/models/spt/inventory/IOwnerInventoryItems";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||
@ -246,7 +246,7 @@ export declare class InventoryHelper {
|
||||
* @param itemTpl Container being opened
|
||||
* @returns Reward details
|
||||
*/
|
||||
getRandomLootContainerRewardDetails(itemTpl: string): RewardDetails;
|
||||
getRandomLootContainerRewardDetails(itemTpl: string): IRewardDetails;
|
||||
getInventoryConfig(): IInventoryConfig;
|
||||
/**
|
||||
* Recursively checks if the given item is
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { Dialogue, IUserDialogInfo } from "@spt/models/eft/profile/ISptProfile";
|
||||
import { IDialogue, IUserDialogInfo } from "@spt/models/eft/profile/ISptProfile";
|
||||
import { IWsNotificationEvent } from "@spt/models/eft/ws/IWsNotificationEvent";
|
||||
import { MessageType } from "@spt/models/enums/MessageType";
|
||||
import { SaveServer } from "@spt/servers/SaveServer";
|
||||
@ -32,5 +32,5 @@ export declare class NotificationSendHelper {
|
||||
* @param senderDetails Who is sending the message
|
||||
* @returns Dialogue
|
||||
*/
|
||||
protected getDialog(sessionId: string, messageType: MessageType, senderDetails: IUserDialogInfo): Dialogue;
|
||||
protected getDialog(sessionId: string, messageType: MessageType, senderDetails: IUserDialogInfo): IDialogue;
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
|
||||
import { Message, MessageContentRagfair } from "@spt/models/eft/profile/ISptProfile";
|
||||
import { IMessage, IMessageContentRagfair } from "@spt/models/eft/profile/ISptProfile";
|
||||
import { IWsChatMessageReceived } from "@spt/models/eft/ws/IWsChatMessageReceived";
|
||||
import { IWsNotificationEvent } from "@spt/models/eft/ws/IWsNotificationEvent";
|
||||
import { IWsRagfairOfferSold } from "@spt/models/eft/ws/IWsRagfairOfferSold";
|
||||
@ -17,12 +17,12 @@ export declare class NotifierHelper {
|
||||
* @param ragfairData Ragfair data to attach to notification
|
||||
* @returns
|
||||
*/
|
||||
createRagfairOfferSoldNotification(dialogueMessage: Message, ragfairData: MessageContentRagfair): IWsRagfairOfferSold;
|
||||
createRagfairOfferSoldNotification(dialogueMessage: IMessage, ragfairData: IMessageContentRagfair): IWsRagfairOfferSold;
|
||||
/**
|
||||
* Create a new notification with the specified dialogueMessage object
|
||||
* @param dialogueMessage
|
||||
* @returns
|
||||
*/
|
||||
createNewMessageNotification(dialogueMessage: Message): IWsChatMessageReceived;
|
||||
createNewMessageNotification(dialogueMessage: IMessage): IWsChatMessageReceived;
|
||||
getWebSocketServer(sessionID: string): string;
|
||||
}
|
||||
|
@ -11,7 +11,6 @@ import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||
import { SaveServer } from "@spt/servers/SaveServer";
|
||||
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||
import { LocalisationService } from "@spt/services/LocalisationService";
|
||||
import { ProfileSnapshotService } from "@spt/services/ProfileSnapshotService";
|
||||
import { HashUtil } from "@spt/utils/HashUtil";
|
||||
import { TimeUtil } from "@spt/utils/TimeUtil";
|
||||
import { Watermark } from "@spt/utils/Watermark";
|
||||
@ -24,12 +23,11 @@ export declare class ProfileHelper {
|
||||
protected saveServer: SaveServer;
|
||||
protected databaseService: DatabaseService;
|
||||
protected itemHelper: ItemHelper;
|
||||
protected profileSnapshotService: ProfileSnapshotService;
|
||||
protected localisationService: LocalisationService;
|
||||
protected configServer: ConfigServer;
|
||||
protected cloner: ICloner;
|
||||
protected inventoryConfig: IInventoryConfig;
|
||||
constructor(logger: ILogger, hashUtil: HashUtil, watermark: Watermark, timeUtil: TimeUtil, saveServer: SaveServer, databaseService: DatabaseService, itemHelper: ItemHelper, profileSnapshotService: ProfileSnapshotService, localisationService: LocalisationService, configServer: ConfigServer, cloner: ICloner);
|
||||
constructor(logger: ILogger, hashUtil: HashUtil, watermark: Watermark, timeUtil: TimeUtil, saveServer: SaveServer, databaseService: DatabaseService, itemHelper: ItemHelper, localisationService: LocalisationService, configServer: ConfigServer, cloner: ICloner);
|
||||
/**
|
||||
* Remove/reset a completed quest condtion from players profile quest data
|
||||
* @param sessionID Session id
|
||||
@ -47,19 +45,6 @@ export declare class ProfileHelper {
|
||||
* @returns Array of IPmcData objects
|
||||
*/
|
||||
getCompleteProfile(sessionId: string): IPmcData[];
|
||||
/**
|
||||
* Fix xp doubling on post-raid xp reward screen by sending a 'dummy' profile to the post-raid screen
|
||||
* Server saves the post-raid changes prior to the xp screen getting the profile, this results in the xp screen using
|
||||
* the now updated profile values as a base, meaning it shows x2 xp gained
|
||||
* Instead, clone the post-raid profile (so we dont alter its values), apply the pre-raid xp values to the cloned objects and return
|
||||
* Delete snapshot of pre-raid profile prior to returning profile data
|
||||
* @param sessionId Session id
|
||||
* @param output pmc and scav profiles array
|
||||
* @param pmcProfile post-raid pmc profile
|
||||
* @param scavProfile post-raid scav profile
|
||||
* @returns Updated profile array
|
||||
*/
|
||||
protected postRaidXpWorkaroundFix(sessionId: string, clonedPmc: IPmcData, clonedScav: IPmcData, output: IPmcData[]): IPmcData[];
|
||||
/**
|
||||
* Sanitize any information from the profile that the client does not expect to receive
|
||||
* @param clonedProfile A clone of the full player profile
|
||||
|
@ -15,6 +15,7 @@ import { IItemEventRouterResponse } from "@spt/models/eft/itemEvent/IItemEventRo
|
||||
import { ISptProfile } from "@spt/models/eft/profile/ISptProfile";
|
||||
import { IRagfairOffer } from "@spt/models/eft/ragfair/IRagfairOffer";
|
||||
import { ISearchRequestData } from "@spt/models/eft/ragfair/ISearchRequestData";
|
||||
import { IBotConfig } from "@spt/models/spt/config/IBotConfig";
|
||||
import { IQuestConfig } from "@spt/models/spt/config/IQuestConfig";
|
||||
import { IRagfairConfig, ITieredFlea } from "@spt/models/spt/config/IRagfairConfig";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
@ -55,6 +56,7 @@ export declare class RagfairOfferHelper {
|
||||
protected static goodSoldTemplate: string;
|
||||
protected ragfairConfig: IRagfairConfig;
|
||||
protected questConfig: IQuestConfig;
|
||||
protected botConfig: IBotConfig;
|
||||
constructor(logger: ILogger, timeUtil: TimeUtil, hashUtil: HashUtil, eventOutputHolder: EventOutputHolder, databaseService: DatabaseService, traderHelper: TraderHelper, saveServer: SaveServer, itemHelper: ItemHelper, botHelper: BotHelper, paymentHelper: PaymentHelper, presetHelper: PresetHelper, profileHelper: ProfileHelper, questHelper: QuestHelper, ragfairServerHelper: RagfairServerHelper, ragfairSortHelper: RagfairSortHelper, ragfairHelper: RagfairHelper, ragfairOfferService: RagfairOfferService, ragfairRequiredItemsService: RagfairRequiredItemsService, localeService: LocaleService, localisationService: LocalisationService, mailSendService: MailSendService, configServer: ConfigServer);
|
||||
/**
|
||||
* Passthrough to ragfairOfferService.getOffers(), get flea offers a player should see
|
||||
@ -65,7 +67,7 @@ export declare class RagfairOfferHelper {
|
||||
* @returns Offers the player should see
|
||||
*/
|
||||
getValidOffers(searchRequest: ISearchRequestData, itemsToAdd: string[], traderAssorts: Record<string, ITraderAssort>, pmcData: IPmcData): IRagfairOffer[];
|
||||
protected offerIsHiddenFromPlayerTieredFlea(tieredFlea: ITieredFlea, offer: IRagfairOffer, tieredFleaLimitTypes: string[], playerLevel: number): boolean;
|
||||
protected checkAndLockOfferFromPlayerTieredFlea(tieredFlea: ITieredFlea, offer: IRagfairOffer, tieredFleaLimitTypes: string[], playerLevel: number): void;
|
||||
/**
|
||||
* Get matching offers that require the desired item and filter out offers from non traders if player is below ragfair unlock level
|
||||
* @param searchRequest Search request from client
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { IItem } from "@spt/models/eft/common/tables/IItem";
|
||||
import { ITemplateItem, Props } from "@spt/models/eft/common/tables/ITemplateItem";
|
||||
import { IProps, ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
|
||||
import { IRepairConfig } from "@spt/models/spt/config/IRepairConfig";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||
@ -42,5 +42,5 @@ export declare class RepairHelper {
|
||||
* @param traderQualityMultipler Different traders produce different loss values
|
||||
* @returns Amount to reduce max durability by
|
||||
*/
|
||||
protected getRandomisedWeaponRepairDegradationValue(itemProps: Props, isRepairKit: boolean, weaponMax: number, traderQualityMultipler: number): number;
|
||||
protected getRandomisedWeaponRepairDegradationValue(itemProps: IProps, isRepairKit: boolean, weaponMax: number, traderQualityMultipler: number): number;
|
||||
}
|
||||
|
25
TypeScript/10ScopesAndTypes/types/helpers/WeatherHelper.d.ts
vendored
Normal file
25
TypeScript/10ScopesAndTypes/types/helpers/WeatherHelper.d.ts
vendored
Normal file
@ -0,0 +1,25 @@
|
||||
import { DateTime } from "@spt/models/enums/DateTime";
|
||||
import { IWeatherConfig } from "@spt/models/spt/config/IWeatherConfig";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||
import { TimeUtil } from "@spt/utils/TimeUtil";
|
||||
export declare class WeatherHelper {
|
||||
protected logger: ILogger;
|
||||
protected timeUtil: TimeUtil;
|
||||
protected configServer: ConfigServer;
|
||||
protected weatherConfig: IWeatherConfig;
|
||||
constructor(logger: ILogger, timeUtil: TimeUtil, configServer: ConfigServer);
|
||||
/**
|
||||
* Get the current in-raid time
|
||||
* @param currentDate (new Date())
|
||||
* @returns Date object of current in-raid time
|
||||
*/
|
||||
getInRaidTime(timestamp?: number): Date;
|
||||
/**
|
||||
* Is the current raid at nighttime
|
||||
* @param timeVariant PASS OR CURR (from raid settings)
|
||||
* @returns True when nighttime
|
||||
*/
|
||||
isNightTime(timeVariant: DateTime): boolean;
|
||||
isHourAtNightTime(currentHour: number): boolean;
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
import { ModLoadOrder } from "@spt/loaders/ModLoadOrder";
|
||||
import { ModTypeCheck } from "@spt/loaders/ModTypeCheck";
|
||||
import { ModDetails } from "@spt/models/eft/profile/ISptProfile";
|
||||
import { IModDetails } from "@spt/models/eft/profile/ISptProfile";
|
||||
import { ICoreConfig } from "@spt/models/spt/config/ICoreConfig";
|
||||
import { IModLoader } from "@spt/models/spt/mod/IModLoader";
|
||||
import { IPackageJsonData } from "@spt/models/spt/mod/IPackageJsonData";
|
||||
@ -36,7 +36,7 @@ export declare class PreSptModLoader implements IModLoader {
|
||||
*/
|
||||
getImportedModsNames(): string[];
|
||||
getImportedModDetails(): Record<string, IPackageJsonData>;
|
||||
getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[];
|
||||
getProfileModsGroupedByModName(profileMods: IModDetails[]): IModDetails[];
|
||||
getModPath(mod: string): string;
|
||||
protected importModsAsync(): Promise<void>;
|
||||
protected sortMods(prev: string, next: string, missingFromOrderJSON: Record<string, boolean>): number;
|
||||
|
@ -299,7 +299,7 @@ export interface IInsuredItem {
|
||||
itemId: string;
|
||||
}
|
||||
export interface IHideout {
|
||||
Production: Record<string, IProductive>;
|
||||
Production: Record<string, IProduction>;
|
||||
Areas: IBotHideoutArea[];
|
||||
Improvements: Record<string, IHideoutImprovement>;
|
||||
HideoutCounters: IHideoutCounters;
|
||||
@ -347,8 +347,8 @@ export interface IProductive {
|
||||
}
|
||||
export interface IProduction extends IProductive {
|
||||
RecipeId: string;
|
||||
SkipTime: number;
|
||||
ProductionTime: number;
|
||||
SkipTime?: number;
|
||||
ProductionTime?: number;
|
||||
}
|
||||
export interface IScavCase extends IProductive {
|
||||
RecipeId: string;
|
||||
|
@ -4,10 +4,10 @@ export interface ICustomizationItem {
|
||||
_name: string;
|
||||
_parent: string;
|
||||
_type: string;
|
||||
_props: Props;
|
||||
_props: IProps;
|
||||
_proto: string;
|
||||
}
|
||||
export interface Props {
|
||||
export interface IProps {
|
||||
Name: string;
|
||||
ShortName: string;
|
||||
Description: string;
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { IPmcData } from "@spt/models/eft/common/IPmcData";
|
||||
import { Dialogue, IUserBuilds } from "@spt/models/eft/profile/ISptProfile";
|
||||
import { IDialogue, IUserBuilds } from "@spt/models/eft/profile/ISptProfile";
|
||||
export interface IProfileTemplates {
|
||||
Standard: IProfileSides;
|
||||
"Left Behind": IProfileSides;
|
||||
@ -19,7 +19,7 @@ export interface IProfileSides {
|
||||
export interface ITemplateSide {
|
||||
character: IPmcData;
|
||||
suits: string[];
|
||||
dialogues: Record<string, Dialogue>;
|
||||
dialogues: Record<string, IDialogue>;
|
||||
userbuilds: IUserBuilds;
|
||||
trader: IProfileTraderTemplate;
|
||||
}
|
||||
|
@ -17,21 +17,19 @@ export interface IQuest {
|
||||
image: string;
|
||||
type: QuestTypeEnum;
|
||||
isKey: boolean;
|
||||
/** @deprecated - Likely not used, use 'status' instead */
|
||||
questStatus: QuestStatus;
|
||||
restartable: boolean;
|
||||
instantComplete: boolean;
|
||||
secretQuest: boolean;
|
||||
startedMessageText: string;
|
||||
successMessageText: string;
|
||||
acceptPlayerMessage: string;
|
||||
acceptPlayerMessage?: string;
|
||||
declinePlayerMessage: string;
|
||||
completePlayerMessage: string;
|
||||
templateId: string;
|
||||
completePlayerMessage?: string;
|
||||
templateId?: string;
|
||||
rewards: IQuestRewards;
|
||||
/** Becomes 'AppearStatus' inside client */
|
||||
status: string | number;
|
||||
KeyQuest: boolean;
|
||||
status?: string | number;
|
||||
KeyQuest?: boolean;
|
||||
changeQuestMessageText: string;
|
||||
/** "Pmc" or "Scav" */
|
||||
side: string;
|
||||
@ -39,10 +37,10 @@ export interface IQuest {
|
||||
sptStatus?: QuestStatus;
|
||||
}
|
||||
export interface IQuestConditionTypes {
|
||||
Started: IQuestCondition[];
|
||||
Started?: IQuestCondition[];
|
||||
AvailableForFinish: IQuestCondition[];
|
||||
AvailableForStart: IQuestCondition[];
|
||||
Success: IQuestCondition[];
|
||||
Success?: IQuestCondition[];
|
||||
Fail: IQuestCondition[];
|
||||
}
|
||||
export interface IQuestCondition {
|
||||
@ -53,9 +51,9 @@ export interface IQuestCondition {
|
||||
visibilityConditions?: IVisibilityCondition[];
|
||||
globalQuestCounterId?: string;
|
||||
parentId?: string;
|
||||
target: string[] | string;
|
||||
target?: string[] | string;
|
||||
value?: string | number;
|
||||
type?: boolean;
|
||||
type?: boolean | string;
|
||||
status?: QuestStatus[];
|
||||
availableAfter?: number;
|
||||
dispersion?: number;
|
||||
@ -64,10 +62,10 @@ export interface IQuestCondition {
|
||||
isResetOnConditionFailed?: boolean;
|
||||
isNecessary?: boolean;
|
||||
doNotResetIfCounterCompleted?: boolean;
|
||||
dogtagLevel?: number;
|
||||
dogtagLevel?: number | string;
|
||||
traderId?: string;
|
||||
maxDurability?: number;
|
||||
minDurability?: number;
|
||||
maxDurability?: number | string;
|
||||
minDurability?: number | string;
|
||||
counter?: IQuestConditionCounter;
|
||||
plantTime?: number;
|
||||
zoneId?: string;
|
||||
@ -82,7 +80,7 @@ export interface IQuestConditionCounter {
|
||||
}
|
||||
export interface IQuestConditionCounterCondition {
|
||||
id: string;
|
||||
dynamicLocale: boolean;
|
||||
dynamicLocale?: boolean;
|
||||
target?: string[] | string;
|
||||
completeInSeconds?: number;
|
||||
energy?: IValueCompare;
|
||||
@ -90,7 +88,7 @@ export interface IQuestConditionCounterCondition {
|
||||
hydration?: IValueCompare;
|
||||
time?: IValueCompare;
|
||||
compareMethod?: string;
|
||||
value?: number;
|
||||
value?: number | string;
|
||||
weapon?: string[];
|
||||
distance?: ICounterConditionDistance;
|
||||
equipmentInclusive?: string[][];
|
||||
@ -128,7 +126,7 @@ export interface IVisibilityCondition {
|
||||
target: string;
|
||||
value?: number;
|
||||
dynamicLocale?: boolean;
|
||||
oneSessionOnly: boolean;
|
||||
oneSessionOnly?: boolean;
|
||||
conditionType: string;
|
||||
}
|
||||
export interface IQuestRewards {
|
||||
@ -152,4 +150,8 @@ export interface IQuestReward {
|
||||
traderId?: string;
|
||||
unknown?: boolean;
|
||||
findInRaid?: boolean;
|
||||
/** Game editions whitelisted to get reward */
|
||||
availableInGameEditions?: string[];
|
||||
/** Game editions blacklisted from getting reward */
|
||||
notAvailableInGameEditions?: string[];
|
||||
}
|
||||
|
@ -4,11 +4,11 @@ export interface ITemplateItem {
|
||||
_name: string;
|
||||
_parent: string;
|
||||
_type: ItemType;
|
||||
_props: Props;
|
||||
_props: IProps;
|
||||
_proto?: string;
|
||||
}
|
||||
export interface Props {
|
||||
AllowSpawnOnLocations?: any[];
|
||||
export interface IProps {
|
||||
AllowSpawnOnLocations?: string[];
|
||||
BeltMagazineRefreshCount?: number;
|
||||
ChangePriceCoef?: number;
|
||||
FixedPrice?: boolean;
|
||||
@ -175,7 +175,7 @@ export interface Props {
|
||||
spawnRarity?: string;
|
||||
minCountSpawn?: number;
|
||||
maxCountSpawn?: number;
|
||||
openedByKeyID?: any[];
|
||||
openedByKeyID?: string[];
|
||||
RigLayoutName?: string;
|
||||
MaxDurability?: number;
|
||||
armorZone?: string[];
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { Message } from "@spt/models/eft/profile/ISptProfile";
|
||||
import { IMessage } from "@spt/models/eft/profile/ISptProfile";
|
||||
export interface IGetAllAttachmentsResponse {
|
||||
messages: Message[];
|
||||
messages: IMessage[];
|
||||
profiles: any[];
|
||||
hasMessagesWithRewards: boolean;
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { IUserDialogInfo, Message } from "@spt/models/eft/profile/ISptProfile";
|
||||
import { IMessage, IUserDialogInfo } from "@spt/models/eft/profile/ISptProfile";
|
||||
export interface IGetMailDialogViewResponseData {
|
||||
messages: Message[];
|
||||
messages: IMessage[];
|
||||
profiles: IUserDialogInfo[];
|
||||
hasMessagesWithRewards: boolean;
|
||||
}
|
||||
|
@ -1,8 +1,8 @@
|
||||
export interface IVersionValidateRequestData {
|
||||
version: Version;
|
||||
version: IVersion;
|
||||
develop: boolean;
|
||||
}
|
||||
export interface Version {
|
||||
export interface IVersion {
|
||||
major: string;
|
||||
minor: string;
|
||||
game: string;
|
||||
|
@ -1,4 +1,36 @@
|
||||
export interface IWorkoutData extends Record<string, any> {
|
||||
skills: any;
|
||||
effects: any;
|
||||
skills: IWorkoutSkills;
|
||||
effects: IWorkoutEffects;
|
||||
}
|
||||
export interface IWorkoutSkills {
|
||||
Common: IWorkoutSkillCommon[];
|
||||
Mastering: any[];
|
||||
Bonuses: any;
|
||||
Points: number;
|
||||
}
|
||||
export interface IWorkoutSkillCommon {
|
||||
Id: string;
|
||||
Progress: number;
|
||||
PointsEarnedDuringSession: number;
|
||||
LastAccess: number;
|
||||
}
|
||||
export interface IWorkoutEffects {
|
||||
Effects: IWorkoutEffectsParts;
|
||||
Hydration: number;
|
||||
Energy: number;
|
||||
}
|
||||
export interface IWorkoutEffectsParts {
|
||||
Head: IWorkoutBodyPart;
|
||||
Chest: IWorkoutBodyPart;
|
||||
Stomach: IWorkoutBodyPart;
|
||||
LeftArm: IWorkoutBodyPart;
|
||||
RightArm: IWorkoutBodyPart;
|
||||
LeftLeg: IWorkoutBodyPart;
|
||||
RightLeg: IWorkoutBodyPart;
|
||||
Common: IWorkoutBodyPart;
|
||||
}
|
||||
export interface IWorkoutBodyPart {
|
||||
Regeneration: number;
|
||||
Fracture: number;
|
||||
MildMusclePain: number;
|
||||
}
|
||||
|
@ -1,5 +0,0 @@
|
||||
export interface HideoutUpgradeCompleteRequestData {
|
||||
Action: string;
|
||||
areaType: number;
|
||||
timestamp: number;
|
||||
}
|
@ -12,16 +12,16 @@ export interface IHideoutArea {
|
||||
displayLevel: boolean;
|
||||
enableAreaRequirements: boolean;
|
||||
parentArea?: string;
|
||||
stages: Record<string, Stage>;
|
||||
stages: Record<string, IStage>;
|
||||
}
|
||||
export interface IAreaRequirement {
|
||||
areaType: number;
|
||||
requiredlevel: number;
|
||||
type: string;
|
||||
}
|
||||
export interface Stage {
|
||||
export interface IStage {
|
||||
autoUpgrade: boolean;
|
||||
bonuses: StageBonus[];
|
||||
bonuses: IStageBonus[];
|
||||
constructionTime: number;
|
||||
/** Containers inventory tpl */
|
||||
container?: string;
|
||||
@ -63,7 +63,7 @@ export interface IStageRequirement extends IRequirementBase {
|
||||
skillName?: string;
|
||||
skillLevel?: number;
|
||||
}
|
||||
export interface StageBonus {
|
||||
export interface IStageBonus {
|
||||
value: number;
|
||||
passive: boolean;
|
||||
production: boolean;
|
||||
|
@ -3,10 +3,10 @@ export interface IHideoutImproveAreaRequestData {
|
||||
/** Hideout area id from areas.json */
|
||||
id: string;
|
||||
areaType: number;
|
||||
items: HideoutItem[];
|
||||
items: IHideoutItem[];
|
||||
timestamp: number;
|
||||
}
|
||||
export interface HideoutItem {
|
||||
export interface IHideoutItem {
|
||||
/** Hideout inventory id that was used by improvement action */
|
||||
id: string;
|
||||
count: number;
|
||||
|
@ -7,7 +7,7 @@ export interface IHideoutProductionData {
|
||||
export interface IHideoutProduction {
|
||||
_id: string;
|
||||
areaType: number;
|
||||
requirements: Requirement[];
|
||||
requirements: IRequirement[];
|
||||
productionTime: number;
|
||||
/** Tpl of item being crafted */
|
||||
endProduct: string;
|
||||
@ -18,7 +18,7 @@ export interface IHideoutProduction {
|
||||
count: number;
|
||||
productionLimitCount: number;
|
||||
}
|
||||
export interface Requirement extends IRequirementBase {
|
||||
export interface IRequirement extends IRequirementBase {
|
||||
templateId?: string;
|
||||
count?: number;
|
||||
isEncoded?: boolean;
|
||||
@ -33,7 +33,7 @@ export interface IRequirementBase {
|
||||
}
|
||||
export type IScavRecipe = {
|
||||
_id: string;
|
||||
requirements: Requirement[];
|
||||
requirements: IRequirement[];
|
||||
productionTime: number;
|
||||
endProducts: IEndProducts;
|
||||
};
|
||||
|
@ -2,16 +2,16 @@ import { MinMax } from "@spt/models/common/MinMax";
|
||||
export interface IHideoutScavCase {
|
||||
_id: string;
|
||||
ProductionTime: number;
|
||||
Requirements: Requirement[];
|
||||
EndProducts: EndProducts;
|
||||
Requirements: IRequirement[];
|
||||
EndProducts: IEndProducts;
|
||||
}
|
||||
export interface Requirement {
|
||||
export interface IRequirement {
|
||||
templateId: string;
|
||||
count: number;
|
||||
isFunctional: boolean;
|
||||
type: string;
|
||||
}
|
||||
export interface EndProducts {
|
||||
export interface IEndProducts {
|
||||
Common: MinMax;
|
||||
Rare: MinMax;
|
||||
Superrare: MinMax;
|
||||
|
@ -1,15 +1,15 @@
|
||||
export interface IHideoutScavCaseStartRequestData {
|
||||
Action: "HideoutScavCaseProductionStart";
|
||||
recipeId: string;
|
||||
items: HideoutItem[];
|
||||
tools: Tool[];
|
||||
items: IHideoutItem[];
|
||||
tools: ITool[];
|
||||
timestamp: number;
|
||||
}
|
||||
export interface HideoutItem {
|
||||
export interface IHideoutItem {
|
||||
id: string;
|
||||
count: number;
|
||||
}
|
||||
export interface Tool {
|
||||
export interface ITool {
|
||||
id: string;
|
||||
count: number;
|
||||
}
|
||||
|
@ -1,10 +1,10 @@
|
||||
export interface IHideoutUpgradeRequestData {
|
||||
Action: "HideoutUpgrade";
|
||||
areaType: number;
|
||||
items: HideoutItem[];
|
||||
items: IHideoutItem[];
|
||||
timestamp: number;
|
||||
}
|
||||
export interface HideoutItem {
|
||||
export interface IHideoutItem {
|
||||
count: number;
|
||||
id: string;
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { Container, IInventoryBaseActionRequestData } from "@spt/models/eft/inventory/IInventoryBaseActionRequestData";
|
||||
import { IContainer, IInventoryBaseActionRequestData } from "@spt/models/eft/inventory/IInventoryBaseActionRequestData";
|
||||
export interface IInventoryAddRequestData extends IInventoryBaseActionRequestData {
|
||||
Action: "Add";
|
||||
item: string;
|
||||
container: Container;
|
||||
container: IContainer;
|
||||
}
|
||||
|
@ -2,18 +2,18 @@ import { IBaseInteractionRequestData } from "@spt/models/eft/common/request/IBas
|
||||
import { IItemLocation } from "@spt/models/eft/common/tables/IItem";
|
||||
export interface IInventoryBaseActionRequestData extends IBaseInteractionRequestData {
|
||||
}
|
||||
export interface To {
|
||||
export interface ITo {
|
||||
id: string;
|
||||
container: string;
|
||||
location?: IItemLocation | number;
|
||||
isSearched?: boolean;
|
||||
}
|
||||
export interface Container {
|
||||
export interface IContainer {
|
||||
id: string;
|
||||
container: string;
|
||||
location?: Location | number;
|
||||
location?: ILocation | number;
|
||||
}
|
||||
export interface Location {
|
||||
export interface ILocation {
|
||||
x: number;
|
||||
y: number;
|
||||
r: string;
|
||||
|
@ -2,9 +2,9 @@ import { IInventoryBaseActionRequestData } from "@spt/models/eft/inventory/IInve
|
||||
export interface IInventoryCreateMarkerRequestData extends IInventoryBaseActionRequestData {
|
||||
Action: "CreateMapMarker";
|
||||
item: string;
|
||||
mapMarker: MapMarker;
|
||||
mapMarker: IMapMarker;
|
||||
}
|
||||
export interface MapMarker {
|
||||
export interface IMapMarker {
|
||||
Type: string;
|
||||
X: number;
|
||||
Y: number;
|
||||
|
@ -4,9 +4,9 @@ export interface IInventoryEditMarkerRequestData extends IInventoryBaseActionReq
|
||||
item: string;
|
||||
X: number;
|
||||
Y: number;
|
||||
mapMarker: MapMarker;
|
||||
mapMarker: IMapMarker;
|
||||
}
|
||||
export interface MapMarker {
|
||||
export interface IMapMarker {
|
||||
Type: string;
|
||||
X: number;
|
||||
Y: number;
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { IInventoryBaseActionRequestData, To } from "@spt/models/eft/inventory/IInventoryBaseActionRequestData";
|
||||
import { IInventoryBaseActionRequestData, ITo } from "@spt/models/eft/inventory/IInventoryBaseActionRequestData";
|
||||
export interface IInventoryMoveRequestData extends IInventoryBaseActionRequestData {
|
||||
Action: "Move";
|
||||
item: string;
|
||||
to: To;
|
||||
to: ITo;
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { Container, IInventoryBaseActionRequestData } from "@spt/models/eft/inventory/IInventoryBaseActionRequestData";
|
||||
import { IContainer, IInventoryBaseActionRequestData } from "@spt/models/eft/inventory/IInventoryBaseActionRequestData";
|
||||
export interface IInventorySplitRequestData extends IInventoryBaseActionRequestData {
|
||||
Action: "Split";
|
||||
/** Id of item to split */
|
||||
@ -6,6 +6,6 @@ export interface IInventorySplitRequestData extends IInventoryBaseActionRequestD
|
||||
/** Id of new item stack */
|
||||
newItem: string;
|
||||
/** Destination new item will be placed in */
|
||||
container: Container;
|
||||
container: IContainer;
|
||||
count: number;
|
||||
}
|
||||
|
@ -1,11 +1,11 @@
|
||||
import { OwnerInfo } from "@spt/models/eft/common/request/IBaseInteractionRequestData";
|
||||
import { IInventoryBaseActionRequestData, To } from "@spt/models/eft/inventory/IInventoryBaseActionRequestData";
|
||||
import { IInventoryBaseActionRequestData, ITo } from "@spt/models/eft/inventory/IInventoryBaseActionRequestData";
|
||||
export interface IInventorySwapRequestData extends IInventoryBaseActionRequestData {
|
||||
Action: "Swap";
|
||||
item: string;
|
||||
to: To;
|
||||
to: ITo;
|
||||
item2: string;
|
||||
to2: To;
|
||||
to2: ITo;
|
||||
fromOwner2: OwnerInfo;
|
||||
toOwner2: OwnerInfo;
|
||||
}
|
||||
|
@ -3,9 +3,9 @@ export interface IOpenRandomLootContainerRequestData extends IInventoryBaseActio
|
||||
Action: "OpenRandomLootContainer";
|
||||
/** Container item id being opened */
|
||||
item: string;
|
||||
to: To[];
|
||||
to: ITo[];
|
||||
}
|
||||
export interface To {
|
||||
export interface ITo {
|
||||
/** Player character (pmc/scav) id items will be sent to */
|
||||
id: string;
|
||||
}
|
||||
|
@ -28,7 +28,7 @@ export interface IProfileChange {
|
||||
improvements: Record<string, IHideoutImprovement>;
|
||||
skills: ISkills;
|
||||
health: IHealth;
|
||||
traderRelations: Record<string, TraderData>;
|
||||
traderRelations: Record<string, ITraderData>;
|
||||
moneyTransferLimitData: IMoneyTransferLimits;
|
||||
repeatableQuests?: IPmcDataRepeatableQuest[];
|
||||
recipeUnlocked: Record<string, boolean>;
|
||||
@ -60,7 +60,7 @@ export interface IItemChanges {
|
||||
del: IProduct[];
|
||||
}
|
||||
/** Related to TraderInfo */
|
||||
export interface TraderData {
|
||||
export interface ITraderData {
|
||||
salesSum: number;
|
||||
standing: number;
|
||||
loyalty: number;
|
||||
|
@ -1,19 +1,19 @@
|
||||
export interface IItemEventRouterRequest {
|
||||
data: Daum[];
|
||||
data: IDaum[];
|
||||
tm: number;
|
||||
reload: number;
|
||||
}
|
||||
export interface Daum {
|
||||
export interface IDaum {
|
||||
Action: string;
|
||||
item: string;
|
||||
to: To;
|
||||
to: ITo;
|
||||
}
|
||||
export interface To {
|
||||
export interface ITo {
|
||||
id: string;
|
||||
container: string;
|
||||
location?: Location;
|
||||
location?: ILocation;
|
||||
}
|
||||
export interface Location {
|
||||
export interface ILocation {
|
||||
x: number;
|
||||
y: number;
|
||||
r: string;
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { Spt } from "../profile/ISptProfile";
|
||||
import { ISpt } from "../profile/ISptProfile";
|
||||
export interface IMiniProfile {
|
||||
username: string;
|
||||
nickname: string;
|
||||
@ -10,5 +10,5 @@ export interface IMiniProfile {
|
||||
maxlvl: number;
|
||||
edition: string;
|
||||
profileId: string;
|
||||
sptData: Spt;
|
||||
sptData: ISpt;
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { LootItem } from "@spt/models/spt/services/LootItem";
|
||||
import { ILootItem } from "@spt/models/spt/services/LootItem";
|
||||
export interface IAirdropLootResult {
|
||||
dropType: string;
|
||||
loot: LootItem[];
|
||||
loot: ILootItem[];
|
||||
}
|
||||
|
3
TypeScript/10ScopesAndTypes/types/models/eft/location/IGetAirdropLootRequest.d.ts
vendored
Normal file
3
TypeScript/10ScopesAndTypes/types/models/eft/location/IGetAirdropLootRequest.d.ts
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
export interface IGetAirdropLootRequest {
|
||||
containerId: string;
|
||||
}
|
@ -13,6 +13,7 @@ export interface IEndLocalRaidRequestData {
|
||||
}
|
||||
export interface IEndRaidResult {
|
||||
profile: IPmcData;
|
||||
/** "Survived/Transit etc" */
|
||||
result: string;
|
||||
ExitStatus: ExitStatus;
|
||||
killerId: string;
|
||||
|
@ -15,15 +15,15 @@ export interface IRaidSettings {
|
||||
isLocationTransition: boolean;
|
||||
timeVariant: DateTime;
|
||||
metabolismDisabled: boolean;
|
||||
timeAndWeatherSettings: TimeAndWeatherSettings;
|
||||
botSettings: BotSettings;
|
||||
wavesSettings: WavesSettings;
|
||||
timeAndWeatherSettings: ITimeAndWeatherSettings;
|
||||
botSettings: IBotSettings;
|
||||
wavesSettings: IWavesSettings;
|
||||
side: SideType;
|
||||
raidMode: RaidMode;
|
||||
playersSpawnPlace: PlayersSpawnPlace;
|
||||
CanShowGroupPreview: boolean;
|
||||
}
|
||||
export interface TimeAndWeatherSettings {
|
||||
export interface ITimeAndWeatherSettings {
|
||||
isRandomTime: boolean;
|
||||
isRandomWeather: boolean;
|
||||
cloudinessType: CloudinessType;
|
||||
@ -33,11 +33,11 @@ export interface TimeAndWeatherSettings {
|
||||
timeFlowType: TimeFlowType;
|
||||
hourOfDay: number;
|
||||
}
|
||||
export interface BotSettings {
|
||||
export interface IBotSettings {
|
||||
isScavWars: boolean;
|
||||
botAmount: BotAmount;
|
||||
}
|
||||
export interface WavesSettings {
|
||||
export interface IWavesSettings {
|
||||
botAmount: BotAmount;
|
||||
botDifficulty: BotDifficulty;
|
||||
isBosses: boolean;
|
||||
|
@ -6,6 +6,8 @@ export interface IStartLocalRaidRequestData {
|
||||
playerSide: string;
|
||||
isLocationTransition: boolean;
|
||||
transition: IStartLocalRaidTransition;
|
||||
/** Should loot generation be skipped, default false */
|
||||
sptSkipLootGeneration?: boolean;
|
||||
}
|
||||
export interface IStartLocalRaidTransition {
|
||||
isLocationTransition: boolean;
|
||||
|
@ -6,21 +6,21 @@ import { MessageType } from "@spt/models/enums/MessageType";
|
||||
import { IProfileChangeEvent } from "@spt/models/spt/dialog/ISendMessageDetails";
|
||||
export interface ISptProfile {
|
||||
info: Info;
|
||||
characters: Characters;
|
||||
characters: ICharacters;
|
||||
/** Clothing purchases */
|
||||
suits: string[];
|
||||
userbuilds: IUserBuilds;
|
||||
dialogues: Record<string, Dialogue>;
|
||||
spt: Spt;
|
||||
vitality: Vitality;
|
||||
inraid: Inraid;
|
||||
insurance: Insurance[];
|
||||
dialogues: Record<string, IDialogue>;
|
||||
spt: ISpt;
|
||||
vitality: IVitality;
|
||||
inraid: IInraid;
|
||||
insurance: IInsurance[];
|
||||
/** Assort purchases made by player since last trader refresh */
|
||||
traderPurchases?: Record<string, Record<string, TraderPurchaseData>>;
|
||||
traderPurchases?: Record<string, Record<string, ITraderPurchaseData>>;
|
||||
/** Achievements earned by player */
|
||||
achievements: Record<string, number>;
|
||||
}
|
||||
export declare class TraderPurchaseData {
|
||||
export declare class ITraderPurchaseData {
|
||||
count: number;
|
||||
purchaseTimestamp: number;
|
||||
}
|
||||
@ -34,7 +34,7 @@ export interface Info {
|
||||
wipe: boolean;
|
||||
edition: string;
|
||||
}
|
||||
export interface Characters {
|
||||
export interface ICharacters {
|
||||
pmc: IPmcData;
|
||||
scav: IPmcData;
|
||||
}
|
||||
@ -74,13 +74,13 @@ export interface IDefaultEquipmentPreset extends IUserBuild {
|
||||
BuildType: EquipmentBuildType;
|
||||
type: string;
|
||||
}
|
||||
export interface Dialogue {
|
||||
export interface IDialogue {
|
||||
attachmentsNew: number;
|
||||
new: number;
|
||||
type: MessageType;
|
||||
Users?: IUserDialogInfo[];
|
||||
pinned: boolean;
|
||||
messages: Message[];
|
||||
messages: IMessage[];
|
||||
_id: string;
|
||||
}
|
||||
export interface IUserDialogInfo {
|
||||
@ -95,16 +95,16 @@ export interface IUserDialogDetails {
|
||||
MemberCategory: MemberCategory;
|
||||
SelectedMemberCategory: MemberCategory;
|
||||
}
|
||||
export interface DialogueInfo {
|
||||
export interface IDialogueInfo {
|
||||
attachmentsNew: number;
|
||||
new: number;
|
||||
_id: string;
|
||||
type: MessageType;
|
||||
pinned: boolean;
|
||||
Users?: IUserDialogInfo[];
|
||||
message: MessagePreview;
|
||||
message: IMessagePreview;
|
||||
}
|
||||
export interface Message {
|
||||
export interface IMessage {
|
||||
_id: string;
|
||||
uid: string;
|
||||
type: MessageType;
|
||||
@ -116,7 +116,7 @@ export interface Message {
|
||||
replyTo?: IReplyTo;
|
||||
hasRewards?: boolean;
|
||||
rewardCollected: boolean;
|
||||
items?: MessageItems;
|
||||
items?: IMessageItems;
|
||||
maxStorageTime?: number;
|
||||
systemData?: ISystemData;
|
||||
profileChangeEvents?: IProfileChangeEvent[];
|
||||
@ -128,7 +128,7 @@ export interface IReplyTo {
|
||||
dt: number;
|
||||
text?: string;
|
||||
}
|
||||
export interface MessagePreview {
|
||||
export interface IMessagePreview {
|
||||
uid: string;
|
||||
type: MessageType;
|
||||
dt: number;
|
||||
@ -136,7 +136,7 @@ export interface MessagePreview {
|
||||
text?: string;
|
||||
systemData?: ISystemData;
|
||||
}
|
||||
export interface MessageItems {
|
||||
export interface IMessageItems {
|
||||
stash?: string;
|
||||
data?: IItem[];
|
||||
}
|
||||
@ -156,17 +156,13 @@ export interface IUpdatableChatMember {
|
||||
Ignored: boolean;
|
||||
Banned: boolean;
|
||||
}
|
||||
export interface DateTime {
|
||||
date: string;
|
||||
time: string;
|
||||
}
|
||||
export interface Spt {
|
||||
export interface ISpt {
|
||||
/** What version of SPT was this profile made with */
|
||||
version: string;
|
||||
/** What mods has this profile loaded at any point in time */
|
||||
mods?: ModDetails[];
|
||||
mods?: IModDetails[];
|
||||
/** What gifts has this profile received and how many */
|
||||
receivedGifts?: ReceivedGift[];
|
||||
receivedGifts?: IReceivedGift[];
|
||||
/** item TPLs blacklisted from being sold on flea for this profile */
|
||||
blacklistedItemTpls?: string[];
|
||||
/** key: daily type */
|
||||
@ -174,23 +170,23 @@ export interface Spt {
|
||||
/** When was a profile migrated, value is timestamp */
|
||||
migrations?: Record<string, number>;
|
||||
}
|
||||
export interface ModDetails {
|
||||
export interface IModDetails {
|
||||
name: string;
|
||||
version: string;
|
||||
author: string;
|
||||
dateAdded: number;
|
||||
url: string;
|
||||
}
|
||||
export interface ReceivedGift {
|
||||
export interface IReceivedGift {
|
||||
giftId: string;
|
||||
timestampLastAccepted: number;
|
||||
current: number;
|
||||
}
|
||||
export interface Vitality {
|
||||
health: Health;
|
||||
effects: Effects;
|
||||
export interface IVitality {
|
||||
health: IHealth;
|
||||
effects: IEffects;
|
||||
}
|
||||
export interface Health {
|
||||
export interface IHealth {
|
||||
Hydration: number;
|
||||
Energy: number;
|
||||
Temperature: number;
|
||||
@ -202,35 +198,35 @@ export interface Health {
|
||||
LeftLeg: number;
|
||||
RightLeg: number;
|
||||
}
|
||||
export interface Effects {
|
||||
Head: Head;
|
||||
Chest: Chest;
|
||||
Stomach: Stomach;
|
||||
LeftArm: LeftArm;
|
||||
RightArm: RightArm;
|
||||
LeftLeg: LeftLeg;
|
||||
RightLeg: RightLeg;
|
||||
export interface IEffects {
|
||||
Head: IHead;
|
||||
Chest: IChest;
|
||||
Stomach: IStomach;
|
||||
LeftArm: ILeftArm;
|
||||
RightArm: IRightArm;
|
||||
LeftLeg: ILeftLeg;
|
||||
RightLeg: IRightLeg;
|
||||
}
|
||||
export type Head = {};
|
||||
export type Chest = {};
|
||||
export type Stomach = {};
|
||||
export interface LeftArm {
|
||||
export type IHead = {};
|
||||
export type IChest = {};
|
||||
export type IStomach = {};
|
||||
export interface ILeftArm {
|
||||
Fracture?: number;
|
||||
}
|
||||
export interface RightArm {
|
||||
export interface IRightArm {
|
||||
Fracture?: number;
|
||||
}
|
||||
export interface LeftLeg {
|
||||
export interface ILeftLeg {
|
||||
Fracture?: number;
|
||||
}
|
||||
export interface RightLeg {
|
||||
export interface IRightLeg {
|
||||
Fracture?: number;
|
||||
}
|
||||
export interface Inraid {
|
||||
export interface IInraid {
|
||||
location: string;
|
||||
character: string;
|
||||
}
|
||||
export interface Insurance {
|
||||
export interface IInsurance {
|
||||
scheduledTime: number;
|
||||
traderId: string;
|
||||
maxStorageTime: number;
|
||||
@ -239,7 +235,7 @@ export interface Insurance {
|
||||
messageTemplateId: string;
|
||||
items: IItem[];
|
||||
}
|
||||
export interface MessageContentRagfair {
|
||||
export interface IMessageContentRagfair {
|
||||
offerId: string;
|
||||
count: number;
|
||||
handbookId: string;
|
||||
|
@ -2,9 +2,9 @@ export interface IAddOfferRequestData {
|
||||
Action: string;
|
||||
sellInOnePiece: boolean;
|
||||
items: string[];
|
||||
requirements: Requirement[];
|
||||
requirements: IRequirement[];
|
||||
}
|
||||
export interface Requirement {
|
||||
export interface IRequirement {
|
||||
_tpl: string;
|
||||
count: number;
|
||||
level: number;
|
||||
|
@ -5,7 +5,7 @@ export interface IRagfairOffer {
|
||||
sellResult?: ISellResult[];
|
||||
_id: string;
|
||||
items: IItem[];
|
||||
requirements: OfferRequirement[];
|
||||
requirements: IOfferRequirement[];
|
||||
root: string;
|
||||
intId: number;
|
||||
/** Handbook price */
|
||||
@ -14,6 +14,7 @@ export interface IRagfairOffer {
|
||||
requirementsCost: number;
|
||||
startTime: number;
|
||||
endTime: number;
|
||||
/** True when offer is sold as pack */
|
||||
sellInOnePiece: boolean;
|
||||
/** Rouble price - same as requirementsCost */
|
||||
summaryCost: number;
|
||||
@ -25,7 +26,7 @@ export interface IRagfairOffer {
|
||||
buyRestrictionCurrent?: number;
|
||||
locked?: boolean;
|
||||
}
|
||||
export interface OfferRequirement {
|
||||
export interface IOfferRequirement {
|
||||
_tpl: string;
|
||||
count: number;
|
||||
onlyFunctional: boolean;
|
||||
|
@ -1,10 +1,10 @@
|
||||
import { IBaseRepairActionDataRequest } from "@spt/models/eft/repair/IBaseRepairActionDataRequest";
|
||||
export interface IRepairActionDataRequest extends IBaseRepairActionDataRequest {
|
||||
Action: "Repair";
|
||||
repairKitsInfo: RepairKitsInfo[];
|
||||
repairKitsInfo: IRepairKitsInfo[];
|
||||
target: string;
|
||||
}
|
||||
export interface RepairKitsInfo {
|
||||
export interface IRepairKitsInfo {
|
||||
_id: string;
|
||||
count: number;
|
||||
}
|
||||
|
@ -2,9 +2,9 @@ import { IBaseRepairActionDataRequest } from "@spt/models/eft/repair/IBaseRepair
|
||||
export interface ITraderRepairActionDataRequest extends IBaseRepairActionDataRequest {
|
||||
Action: "TraderRepair";
|
||||
tid: string;
|
||||
repairItems: RepairItem[];
|
||||
repairItems: IRepairItem[];
|
||||
}
|
||||
export interface RepairItem {
|
||||
export interface IRepairItem {
|
||||
_id: string;
|
||||
count: number;
|
||||
}
|
||||
|
@ -12,12 +12,15 @@ export interface IWeather {
|
||||
temp: number;
|
||||
fog: number;
|
||||
rain_intensity: number;
|
||||
/** 1 - 3 light rain, 3+ 'rain' */
|
||||
rain: number;
|
||||
wind_gustiness: number;
|
||||
wind_direction: WindDirection;
|
||||
wind_speed: number;
|
||||
/** < -0.4 = clear day */
|
||||
cloud: number;
|
||||
time: string;
|
||||
date: string;
|
||||
timestamp: number;
|
||||
sptInRaidTimestamp: number;
|
||||
}
|
||||
|
@ -1,8 +1,8 @@
|
||||
import { IGroupCharacter } from "@spt/models/eft/match/IGroupCharacter";
|
||||
import { Message } from "@spt/models/eft/profile/ISptProfile";
|
||||
import { IMessage } from "@spt/models/eft/profile/ISptProfile";
|
||||
import { IWsNotificationEvent } from "@spt/models/eft/ws/IWsNotificationEvent";
|
||||
export interface IWsChatMessageReceived extends IWsNotificationEvent {
|
||||
dialogId: string;
|
||||
message: Message;
|
||||
message: IMessage;
|
||||
profiles?: IGroupCharacter[];
|
||||
}
|
||||
|
@ -1,6 +1,13 @@
|
||||
export declare enum AirdropTypeEnum {
|
||||
COMMON = "Common",
|
||||
SUPPLY = "Supply",
|
||||
MEDICAL = "Medical",
|
||||
WEAPON_ARMOR = "Weapon"
|
||||
}
|
||||
export declare enum SptAirdropTypeEnum {
|
||||
COMMON = "mixed",
|
||||
SUPPLY = "barter",
|
||||
FOOD_MEDICAL = "foodMedical",
|
||||
WEAPON_ARMOR = "weaponArmor"
|
||||
WEAPON_ARMOR = "weaponArmor",
|
||||
RADAR = "radar"
|
||||
}
|
||||
|
@ -54,7 +54,5 @@ export declare enum WildSpawnTypeNumber {
|
||||
SKIER = 53,
|
||||
SECTANTPREDVESTNIK = 57,
|
||||
SECTANTPRIZRAK = 58,
|
||||
SECTANTONI = 59,
|
||||
SPTUSEC = 100,
|
||||
SPTBEAR = 101
|
||||
SECTANTONI = 59
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
export declare enum QteEffectType {
|
||||
FINISH_EFFECT = "FinishEffect",
|
||||
SINGLE_SUCCESS_EFFECT = "SingleSuccessEffect",
|
||||
SINGLE_FAIL_EFFECT = "SingleFailEffect"
|
||||
FINISH_EFFECT = "finishEffect",
|
||||
SINGLE_SUCCESS_EFFECT = "singleSuccessEffect",
|
||||
SINGLE_FAIL_EFFECT = "singleFailEffect"
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { MinMax } from "@spt/models/common/MinMax";
|
||||
export interface BotGenerationDetails {
|
||||
export interface IBotGenerationDetails {
|
||||
/** Should the bot be generated as a PMC */
|
||||
isPmc: boolean;
|
||||
/** assault/pmcBot etc */
|
||||
|
@ -1,6 +1,7 @@
|
||||
import { IInventory as PmcInventory } from "@spt/models/eft/common/tables/IBotBase";
|
||||
import { IChances, IMods } from "@spt/models/eft/common/tables/IBotType";
|
||||
import { EquipmentFilters, RandomisationDetails } from "@spt/models/spt/config/IBotConfig";
|
||||
import { EquipmentFilters, IRandomisationDetails } from "@spt/models/spt/config/IBotConfig";
|
||||
import { IBotData } from "./IGenerateWeaponRequest";
|
||||
export interface IGenerateEquipmentProperties {
|
||||
/** Root Slot being generated */
|
||||
rootEquipmentSlot: string;
|
||||
@ -9,14 +10,13 @@ export interface IGenerateEquipmentProperties {
|
||||
modPool: IMods;
|
||||
/** Dictionary of mod items and their chance to spawn for this bot type */
|
||||
spawnChances: IChances;
|
||||
/** Role being generated for */
|
||||
botRole: string;
|
||||
/** Level of bot being generated */
|
||||
botLevel: number;
|
||||
/** Bot-specific properties */
|
||||
botData: IBotData;
|
||||
inventory: PmcInventory;
|
||||
botEquipmentConfig: EquipmentFilters;
|
||||
/** Settings from bot.json to adjust how item is generated */
|
||||
randomisationDetails: RandomisationDetails;
|
||||
randomisationDetails: IRandomisationDetails;
|
||||
/** OPTIONAL - Do not generate mods for tpls in this array */
|
||||
generateModsBlacklist?: string[];
|
||||
generatingPlayerLevel: number;
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { IMods } from "@spt/models/eft/common/tables/IBotType";
|
||||
import { IItem } from "@spt/models/eft/common/tables/IItem";
|
||||
import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
|
||||
export declare class GenerateWeaponResult {
|
||||
export interface IGenerateWeaponResult {
|
||||
weapon: IItem[];
|
||||
chosenAmmoTpl: string;
|
||||
chosenUbglAmmoTpl: string;
|
@ -2,7 +2,7 @@ import { IItem } from "@spt/models/eft/common/tables/IItem";
|
||||
import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
|
||||
import { ModSpawn } from "@spt/models/enums/ModSpawn";
|
||||
import { IBotData, IWeaponStats } from "@spt/models/spt/bots/IGenerateWeaponRequest";
|
||||
import { EquipmentFilterDetails } from "@spt/models/spt/config/IBotConfig";
|
||||
import { IEquipmentFilterDetails } from "@spt/models/spt/config/IBotConfig";
|
||||
export interface IModToSpawnRequest {
|
||||
/** Slot mod will fit into */
|
||||
modSlot: string;
|
||||
@ -11,7 +11,7 @@ export interface IModToSpawnRequest {
|
||||
/** Parent slot the item will be a part of */
|
||||
botWeaponSightWhitelist: Record<string, string[]>;
|
||||
/** Blacklist to prevent mods from being picked */
|
||||
botEquipBlacklist: EquipmentFilterDetails;
|
||||
botEquipBlacklist: IEquipmentFilterDetails;
|
||||
/** Pool of items to pick from */
|
||||
itemModPool: Record<string, string[]>;
|
||||
/** Array with only weapon tpl in it, ready for mods to be added */
|
||||
|
@ -14,11 +14,11 @@ import { ISendMessageRequest } from "@spt/models/eft/dialog/ISendMessageRequest"
|
||||
import { ISetDialogReadRequestData } from "@spt/models/eft/dialog/ISetDialogReadRequestData";
|
||||
import { IGetBodyResponseData } from "@spt/models/eft/httpResponse/IGetBodyResponseData";
|
||||
import { INullResponseData } from "@spt/models/eft/httpResponse/INullResponseData";
|
||||
import { DialogueInfo } from "@spt/models/eft/profile/ISptProfile";
|
||||
import { IDialogueInfo } from "@spt/models/eft/profile/ISptProfile";
|
||||
export interface IDialogueCallbacks {
|
||||
getFriendList(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<IGetFriendListDataResponse>;
|
||||
getChatServerList(url: string, info: IGetChatServerListRequestData, sessionID: string): IGetBodyResponseData<any[]>;
|
||||
getMailDialogList(url: string, info: IGetMailDialogListRequestData, sessionID: string): IGetBodyResponseData<DialogueInfo[]>;
|
||||
getMailDialogList(url: string, info: IGetMailDialogListRequestData, sessionID: string): IGetBodyResponseData<IDialogueInfo[]>;
|
||||
getMailDialogView(url: string, info: IGetMailDialogViewRequestData, sessionID: string): IGetBodyResponseData<IGetMailDialogViewResponseData>;
|
||||
getMailDialogInfo(url: string, info: IGetMailDialogInfoRequestData, sessionID: string): IGetBodyResponseData<any>;
|
||||
removeDialog(url: string, info: IRemoveDialogRequestData, sessionID: string): IGetBodyResponseData<any[]>;
|
||||
|
@ -1,11 +1,12 @@
|
||||
import { MinMax } from "@spt/models/common/MinMax";
|
||||
import { AirdropTypeEnum } from "@spt/models/enums/AirdropType";
|
||||
import { AirdropTypeEnum, SptAirdropTypeEnum } from "@spt/models/enums/AirdropType";
|
||||
import { IBaseConfig } from "@spt/models/spt/config/IBaseConfig";
|
||||
export interface IAirdropConfig extends IBaseConfig {
|
||||
kind: "spt-airdrop";
|
||||
airdropTypeWeightings: Record<AirdropTypeEnum, number>;
|
||||
airdropTypeWeightings: Record<SptAirdropTypeEnum, number>;
|
||||
/** What rewards will the loot crate contain, keyed by drop type e.g. mixed/weaponArmor/foodMedical/barter */
|
||||
loot: Record<string, IAirdropLoot>;
|
||||
customAirdropMapping: Record<string, SptAirdropTypeEnum>;
|
||||
}
|
||||
/** Chance map will have an airdrop occur out of 100 - locations not included count as 0% */
|
||||
export interface IAirdropChancePercent {
|
||||
@ -20,6 +21,7 @@ export interface IAirdropChancePercent {
|
||||
}
|
||||
/** Loot inside crate */
|
||||
export interface IAirdropLoot {
|
||||
icon: AirdropTypeEnum;
|
||||
/** Min/max of weapons inside crate */
|
||||
weaponPresetCount?: MinMax;
|
||||
/** Min/max of armors (head/chest/rig) inside crate */
|
||||
@ -40,4 +42,6 @@ export interface IAirdropLoot {
|
||||
armorLevelWhitelist?: number[];
|
||||
/** Should boss items be added to airdrop crate */
|
||||
allowBossItems: boolean;
|
||||
useForcedLoot?: boolean;
|
||||
forcedLoot?: Record<string, MinMax>;
|
||||
}
|
||||
|
@ -5,7 +5,7 @@ import { IBotDurability } from "@spt/models/spt/config/IBotDurability";
|
||||
export interface IBotConfig extends IBaseConfig {
|
||||
kind: "spt-bot";
|
||||
/** How many variants of each bot should be generated on raid start */
|
||||
presetBatch: PresetBatch;
|
||||
presetBatch: IPresetBatch;
|
||||
/** Bot roles that should not have PMC types (pmcBEAR/pmcUSEC) added as enemies to */
|
||||
botsToNotAddPMCsAsEnemiesTo: string[];
|
||||
/** What bot types should be classified as bosses */
|
||||
@ -44,6 +44,10 @@ export interface IBotConfig extends IBaseConfig {
|
||||
/** What bottypes should be excluded from having loot generated on them (backpack/pocket/vest) does not disable food/drink/special/ */
|
||||
disableLootOnBotTypes: string[];
|
||||
assaultToBossConversion: IAssaultToBossConversion;
|
||||
/** Max length a bots name can be */
|
||||
botNameLengthLimit: number;
|
||||
/** Bot roles that must have a unique name when generated vs other bots in raid */
|
||||
botRolesThatMustHaveUniqueName: string[];
|
||||
}
|
||||
export interface IAssaultToBossConversion {
|
||||
bossConvertEnabled: boolean;
|
||||
@ -51,7 +55,7 @@ export interface IAssaultToBossConversion {
|
||||
bossConvertMinMax: Record<string, MinMax>;
|
||||
}
|
||||
/** Number of bots to generate and store in cache on raid start per bot type */
|
||||
export interface PresetBatch {
|
||||
export interface IPresetBatch {
|
||||
assault: number;
|
||||
bossBully: number;
|
||||
bossGluhar: number;
|
||||
@ -100,7 +104,7 @@ export interface IWalletLootSettings {
|
||||
}
|
||||
export interface EquipmentFilters {
|
||||
/** Limits for mod types per weapon .e.g. scopes */
|
||||
weaponModLimits: ModLimits;
|
||||
weaponModLimits: IModLimits;
|
||||
/** Whitelist for weapon sight types allowed per gun */
|
||||
weaponSightWhitelist: Record<string, string[]>;
|
||||
/** Chance face shield is down/active */
|
||||
@ -121,27 +125,27 @@ export interface EquipmentFilters {
|
||||
/** What additional slot ids should be seen as required when choosing a mod to add to a weapon */
|
||||
weaponSlotIdsToMakeRequired?: string[];
|
||||
/** Adjust weighting/chances of items on bot by level of bot */
|
||||
randomisation: RandomisationDetails[];
|
||||
randomisation: IRandomisationDetails[];
|
||||
/** Blacklist equipment by level of bot */
|
||||
blacklist: EquipmentFilterDetails[];
|
||||
blacklist: IEquipmentFilterDetails[];
|
||||
/** Whitelist equipment by level of bot */
|
||||
whitelist: EquipmentFilterDetails[];
|
||||
whitelist: IEquipmentFilterDetails[];
|
||||
/** Adjust equipment/ammo */
|
||||
weightingAdjustmentsByBotLevel: WeightingAdjustmentDetails[];
|
||||
weightingAdjustmentsByBotLevel: IWeightingAdjustmentDetails[];
|
||||
/** Same as weightingAdjustments but based on player level instead of bot level */
|
||||
weightingAdjustmentsByPlayerLevel?: WeightingAdjustmentDetails[];
|
||||
weightingAdjustmentsByPlayerLevel?: IWeightingAdjustmentDetails[];
|
||||
/** Should the stock mod be forced to spawn on bot */
|
||||
forceStock?: boolean;
|
||||
armorPlateWeighting?: IArmorPlateWeights[];
|
||||
forceRigWhenNoVest?: boolean;
|
||||
}
|
||||
export interface ModLimits {
|
||||
export interface IModLimits {
|
||||
/** How many scopes are allowed on a weapon - hard coded to work with OPTIC_SCOPE, ASSAULT_SCOPE, COLLIMATOR, COMPACT_COLLIMATOR */
|
||||
scopeLimit?: number;
|
||||
/** How many lasers or lights are allowed on a weapon - hard coded to work with TACTICAL_COMBO, and FLASHLIGHT */
|
||||
lightLaserLimit?: number;
|
||||
}
|
||||
export interface RandomisationDetails {
|
||||
export interface IRandomisationDetails {
|
||||
/** Between what levels do these randomisation setting apply to */
|
||||
levelRange: MinMax;
|
||||
generation?: Record<string, IGenerationData>;
|
||||
@ -155,8 +159,13 @@ export interface RandomisationDetails {
|
||||
weaponMods?: Record<string, number>;
|
||||
/** Equipment mod chances */
|
||||
equipmentMods?: Record<string, number>;
|
||||
nighttimeChanges?: INighttimeChanges;
|
||||
}
|
||||
export interface EquipmentFilterDetails {
|
||||
export interface INighttimeChanges {
|
||||
/** Applies changes to values stored in equipmentMods */
|
||||
equipmentModsModifiers: Record<string, number>;
|
||||
}
|
||||
export interface IEquipmentFilterDetails {
|
||||
/** Between what levels do these equipment filter setting apply to */
|
||||
levelRange: MinMax;
|
||||
/** Key: mod slot name e.g. mod_magazine, value: item tpls */
|
||||
@ -164,7 +173,7 @@ export interface EquipmentFilterDetails {
|
||||
/** Key: cartridge type e.g. Caliber23x75, value: item tpls */
|
||||
cartridge: Record<string, string[]>;
|
||||
}
|
||||
export interface WeightingAdjustmentDetails {
|
||||
export interface IWeightingAdjustmentDetails {
|
||||
/** Between what levels do these weight settings apply to */
|
||||
levelRange: MinMax;
|
||||
/** Key: ammo type e.g. Caliber556x45NATO, value: item tpl + weight */
|
||||
|
@ -1,6 +1,6 @@
|
||||
export interface IBotDurability {
|
||||
default: IDefaultDurability;
|
||||
pmc: PmcDurability;
|
||||
pmc: IPmcDurability;
|
||||
boss: IBotDurability;
|
||||
follower: IBotDurability;
|
||||
assault: IBotDurability;
|
||||
@ -20,7 +20,7 @@ export interface IDefaultDurability {
|
||||
armor: IArmorDurability;
|
||||
weapon: IWeaponDurability;
|
||||
}
|
||||
export interface PmcDurability {
|
||||
export interface IPmcDurability {
|
||||
armor: IPmcDurabilityArmor;
|
||||
weapon: IWeaponDurability;
|
||||
}
|
||||
|
@ -1,14 +1,14 @@
|
||||
import { IBaseConfig } from "@spt/models/spt/config/IBaseConfig";
|
||||
export interface IHealthConfig extends IBaseConfig {
|
||||
kind: "spt-health";
|
||||
healthMultipliers: HealthMultipliers;
|
||||
save: Save;
|
||||
healthMultipliers: IHealthMultipliers;
|
||||
save: ISave;
|
||||
}
|
||||
export interface HealthMultipliers {
|
||||
export interface IHealthMultipliers {
|
||||
death: number;
|
||||
blacked: number;
|
||||
}
|
||||
export interface Save {
|
||||
export interface ISave {
|
||||
health: boolean;
|
||||
effects: boolean;
|
||||
}
|
||||
|
@ -18,11 +18,11 @@ export interface ICultistCircleSettings {
|
||||
maxRewardItemCount: number;
|
||||
maxAttemptsToPickRewardsWithinBudget: number;
|
||||
rewardPriceMultiplerMinMax: MinMax;
|
||||
craftTimeThreshholds: CraftTimeThreshhold[];
|
||||
craftTimeThreshholds: ICraftTimeThreshhold[];
|
||||
/** -1 means no override */
|
||||
craftTimeOverride: number;
|
||||
/** Specific reward pool when player sacrificed one specific item */
|
||||
directRewards: Record<string, DirectRewardSettings>;
|
||||
directRewards: Record<string, IDirectRewardSettings>;
|
||||
directRewardStackSize: Record<string, MinMax>;
|
||||
/** Item tpls to exclude from the reward pool */
|
||||
rewardItemBlacklist: string[];
|
||||
@ -30,10 +30,10 @@ export interface ICultistCircleSettings {
|
||||
additionalRewardItemPool: string[];
|
||||
currencyRewards: Record<string, MinMax>;
|
||||
}
|
||||
export interface CraftTimeThreshhold extends MinMax {
|
||||
export interface ICraftTimeThreshhold extends MinMax {
|
||||
craftTimeSeconds: number;
|
||||
}
|
||||
export interface DirectRewardSettings {
|
||||
export interface IDirectRewardSettings {
|
||||
rewardTpls: string[];
|
||||
craftTimeSeconds: number;
|
||||
}
|
||||
|
@ -2,9 +2,9 @@ import { IBaseConfig } from "@spt/models/spt/config/IBaseConfig";
|
||||
export interface IInRaidConfig extends IBaseConfig {
|
||||
kind: "spt-inraid";
|
||||
/** Overrides to apply to the pre-raid settings screen */
|
||||
raidMenuSettings: RaidMenuSettings;
|
||||
raidMenuSettings: IRaidMenuSettings;
|
||||
/** What effects should be saved post-raid */
|
||||
save: Save;
|
||||
save: ISave;
|
||||
/** Names of car extracts */
|
||||
carExtracts: string[];
|
||||
/** Names of coop extracts */
|
||||
@ -14,7 +14,7 @@ export interface IInRaidConfig extends IBaseConfig {
|
||||
/** Fence rep gain from a single coop extract */
|
||||
coopExtractBaseStandingGain: number;
|
||||
/** Fence rep gain when successfully extracting as pscav */
|
||||
scavExtractGain: number;
|
||||
scavExtractStandingGain: number;
|
||||
/** The likelihood of PMC eliminating a minimum of 2 scavs while you engage them as a pscav. */
|
||||
pmcKillProbabilityForScavGain: number;
|
||||
/** On death should items in your secure keep their Find in raid status regardless of how you finished the raid */
|
||||
@ -24,7 +24,7 @@ export interface IInRaidConfig extends IBaseConfig {
|
||||
/** Percentage chance a player scav hot is hostile to the player when scavving */
|
||||
playerScavHostileChancePercent: number;
|
||||
}
|
||||
export interface RaidMenuSettings {
|
||||
export interface IRaidMenuSettings {
|
||||
aiAmount: string;
|
||||
aiDifficulty: string;
|
||||
bossEnabled: boolean;
|
||||
@ -34,7 +34,7 @@ export interface RaidMenuSettings {
|
||||
randomWeather: boolean;
|
||||
randomTime: boolean;
|
||||
}
|
||||
export interface Save {
|
||||
export interface ISave {
|
||||
/** Should loot gained from raid be saved */
|
||||
loot: boolean;
|
||||
}
|
||||
|
@ -4,14 +4,14 @@ export interface IInventoryConfig extends IBaseConfig {
|
||||
kind: "spt-inventory";
|
||||
/** Should new items purchased by flagged as found in raid */
|
||||
newItemsMarkedFound: boolean;
|
||||
randomLootContainers: Record<string, RewardDetails>;
|
||||
randomLootContainers: Record<string, IRewardDetails>;
|
||||
sealedAirdropContainer: ISealedAirdropContainerSettings;
|
||||
/** Contains item tpls that the server should consider money and treat the same as roubles/euros/dollars */
|
||||
customMoneyTpls: string[];
|
||||
/** Multipliers for skill gain when inside menus, NOT in-game */
|
||||
skillGainMultiplers: Record<string, number>;
|
||||
}
|
||||
export interface RewardDetails {
|
||||
export interface IRewardDetails {
|
||||
rewardCount: number;
|
||||
foundInRaid: boolean;
|
||||
rewardTplPool?: Record<string, number>;
|
||||
|
@ -2,16 +2,16 @@ import { IGenerationData } from "@spt/models/eft/common/tables/IBotType";
|
||||
import { IBaseConfig } from "@spt/models/spt/config/IBaseConfig";
|
||||
export interface IPlayerScavConfig extends IBaseConfig {
|
||||
kind: "spt-playerscav";
|
||||
karmaLevel: Record<string, KarmaLevel>;
|
||||
karmaLevel: Record<string, IKarmaLevel>;
|
||||
}
|
||||
export interface KarmaLevel {
|
||||
export interface IKarmaLevel {
|
||||
botTypeForLoot: string;
|
||||
modifiers: Modifiers;
|
||||
modifiers: IModifiers;
|
||||
itemLimits: ItemLimits;
|
||||
equipmentBlacklist: Record<string, string[]>;
|
||||
lootItemsToAddChancePercent: Record<string, number>;
|
||||
}
|
||||
export interface Modifiers {
|
||||
export interface IModifiers {
|
||||
equipment: Record<string, number>;
|
||||
mod: Record<string, number>;
|
||||
}
|
||||
|
@ -9,11 +9,11 @@ export interface IPmcConfig extends IBaseConfig {
|
||||
/** What account type should the PMC have */
|
||||
accountTypeWeight: Record<MemberCategory, number>;
|
||||
/** Global whitelist/blacklist of vest loot for PMCs */
|
||||
vestLoot: SlotLootSettings;
|
||||
vestLoot: ISlotLootSettings;
|
||||
/** Global whitelist/blacklist of pocket loot for PMCs */
|
||||
pocketLoot: SlotLootSettings;
|
||||
pocketLoot: ISlotLootSettings;
|
||||
/** Global whitelist/blacklist of backpack loot for PMCs */
|
||||
backpackLoot: SlotLootSettings;
|
||||
backpackLoot: ISlotLootSettings;
|
||||
/** Use difficulty defined in config/bot.json/difficulty instead of chosen difficulty dropdown value */
|
||||
useDifficultyOverride: boolean;
|
||||
/** Difficulty override e.g. "AsOnline/Hard" */
|
||||
@ -32,7 +32,7 @@ export interface IPmcConfig extends IBaseConfig {
|
||||
bearType: string;
|
||||
/** What 'brain' does a PMC use, keyed by map and side (USEC/BEAR) key: map location, value: type for usec/bear */
|
||||
pmcType: Record<string, Record<string, Record<string, number>>>;
|
||||
maxBackpackLootTotalRub: MinMaxLootValue[];
|
||||
maxBackpackLootTotalRub: IMinMaxLootValue[];
|
||||
maxPocketLootTotalRub: number;
|
||||
maxVestLootTotalRub: number;
|
||||
/** Percentage chance a bot from a wave is converted into a PMC, first key = map, second key = bot wildspawn type (assault/exusec), value: min+max chance to be converted */
|
||||
@ -61,14 +61,14 @@ export interface IHostilitySettings {
|
||||
additionalFriendlyTypes?: string[];
|
||||
savagePlayerBehaviour?: string;
|
||||
}
|
||||
export interface PmcTypes {
|
||||
export interface IPmcTypes {
|
||||
usec: string;
|
||||
bear: string;
|
||||
}
|
||||
export interface SlotLootSettings {
|
||||
export interface ISlotLootSettings {
|
||||
whitelist: string[];
|
||||
blacklist: string[];
|
||||
}
|
||||
export interface MinMaxLootValue extends MinMax {
|
||||
export interface IMinMaxLootValue extends MinMax {
|
||||
value: number;
|
||||
}
|
||||
|
@ -7,13 +7,13 @@ export interface IRagfairConfig extends IBaseConfig {
|
||||
/** Default values used to hydrate `runIntervalSeconds` with */
|
||||
runIntervalValues: IRunIntervalValues;
|
||||
/** Player listing settings */
|
||||
sell: Sell;
|
||||
sell: ISell;
|
||||
/** Trader ids + should their assorts be listed on flea */
|
||||
traders: Record<string, boolean>;
|
||||
dynamic: Dynamic;
|
||||
dynamic: IDynamic;
|
||||
tieredFlea: ITieredFlea;
|
||||
}
|
||||
export interface Sell {
|
||||
export interface ISell {
|
||||
/** Should a fee be deducted from player when liting an item for sale */
|
||||
fees: boolean;
|
||||
/** Settings to control chances of offer being sold */
|
||||
@ -33,7 +33,7 @@ export interface Chance {
|
||||
/** Min possible sell chance % for a player listed offer */
|
||||
minSellChancePercent: number;
|
||||
}
|
||||
export interface Dynamic {
|
||||
export interface IDynamic {
|
||||
purchasesAreFoundInRaid: boolean;
|
||||
/** Use the highest trader price for an offer if its greater than the price in templates/prices.json */
|
||||
useTraderPriceForOffersIfHigher: boolean;
|
||||
@ -41,7 +41,7 @@ export interface Dynamic {
|
||||
barter: IBarterDetails;
|
||||
pack: IPackDetails;
|
||||
/** Dynamic offer price below handbook adjustment values */
|
||||
offerAdjustment: OfferAdjustment;
|
||||
offerAdjustment: IOfferAdjustment;
|
||||
/** How many offers should expire before an offer regeneration occurs */
|
||||
expiredOfferThreshold: number;
|
||||
/** How many offers should be listed */
|
||||
@ -70,7 +70,7 @@ export interface Dynamic {
|
||||
/** Should christmas/halloween items be removed from flea when not within the seasonal bounds */
|
||||
removeSeasonalItemsWhenNotInEvent: boolean;
|
||||
/** Flea blacklist settings */
|
||||
blacklist: Blacklist;
|
||||
blacklist: IRagfairBlacklist;
|
||||
/** Dict of price limits keyed by item type */
|
||||
unreasonableModPrices: Record<string, IUnreasonableModPrices>;
|
||||
}
|
||||
@ -103,7 +103,7 @@ export interface IPackDetails {
|
||||
/** item types to allow being a pack */
|
||||
itemTypeWhitelist: string[];
|
||||
}
|
||||
export interface OfferAdjustment {
|
||||
export interface IOfferAdjustment {
|
||||
/** Shuld offer price be adjusted when below handbook price */
|
||||
adjustPriceWhenBelowHandbookPrice: boolean;
|
||||
/** How big a percentage difference does price need to vary from handbook to be considered for adjustment */
|
||||
@ -119,7 +119,7 @@ export interface Condition {
|
||||
current: MinMax;
|
||||
max: MinMax;
|
||||
}
|
||||
export interface Blacklist {
|
||||
export interface IRagfairBlacklist {
|
||||
/** Damaged ammo packs */
|
||||
damagedAmmoPacks: boolean;
|
||||
/** Custom blacklist for item Tpls */
|
||||
@ -159,7 +159,10 @@ export interface IArmorSettings {
|
||||
}
|
||||
export interface ITieredFlea {
|
||||
enabled: boolean;
|
||||
unlocks: Record<string, number>;
|
||||
/** key: tpl, value: playerlevel */
|
||||
unlocksTpl: Record<string, number>;
|
||||
/** key: item type id, value: playerlevel */
|
||||
unlocksType: Record<string, number>;
|
||||
ammoTiersEnabled: boolean;
|
||||
ammoTplUnlocks: Record<string, number>;
|
||||
}
|
||||
|
@ -10,7 +10,7 @@ export interface IRepairConfig extends IBaseConfig {
|
||||
repairKitIntellectGainMultiplier: IIntellectGainValues;
|
||||
maxIntellectGainPerRepair: IMaxIntellectGainValues;
|
||||
weaponTreatment: IWeaponTreatmentRepairValues;
|
||||
repairKit: RepairKit;
|
||||
repairKit: IRepairKit;
|
||||
}
|
||||
export interface IIntellectGainValues {
|
||||
weapon: number;
|
||||
@ -30,17 +30,17 @@ export interface IWeaponTreatmentRepairValues {
|
||||
/** The multiplier used for calculating weapon maintenance XP */
|
||||
pointGainMultiplier: number;
|
||||
}
|
||||
export interface RepairKit {
|
||||
armor: BonusSettings;
|
||||
weapon: BonusSettings;
|
||||
export interface IRepairKit {
|
||||
armor: IBonusSettings;
|
||||
weapon: IBonusSettings;
|
||||
}
|
||||
export interface BonusSettings {
|
||||
export interface IBonusSettings {
|
||||
rarityWeight: Record<string, number>;
|
||||
bonusTypeWeight: Record<string, number>;
|
||||
common: Record<string, BonusValues>;
|
||||
rare: Record<string, BonusValues>;
|
||||
common: Record<string, IBonusValues>;
|
||||
rare: Record<string, IBonusValues>;
|
||||
}
|
||||
export interface BonusValues {
|
||||
export interface IBonusValues {
|
||||
valuesMinMax: MinMax;
|
||||
/** What dura is buff active between (min max of current max) */
|
||||
activeDurabilityPercentMinMax: MinMax;
|
||||
|
@ -1,24 +1,24 @@
|
||||
import { MinMax } from "@spt/models/common/MinMax";
|
||||
import { IBaseConfig } from "@spt/models/spt/config/IBaseConfig";
|
||||
import { LootRequest } from "@spt/models/spt/services/LootRequest";
|
||||
import { ILootRequest } from "@spt/models/spt/services/ILootRequest";
|
||||
export interface ITraderConfig extends IBaseConfig {
|
||||
kind: "spt-trader";
|
||||
updateTime: UpdateTime[];
|
||||
updateTime: IUpdateTime[];
|
||||
purchasesAreFoundInRaid: boolean;
|
||||
/** Should trader reset times be set based on server start time (false = bsg time - on the hour) */
|
||||
tradersResetFromServerStart: boolean;
|
||||
updateTimeDefault: number;
|
||||
traderPriceMultipler: number;
|
||||
fence: FenceConfig;
|
||||
moddedTraders: ModdedTraders;
|
||||
fence: IFenceConfig;
|
||||
moddedTraders: IModdedTraders;
|
||||
}
|
||||
export interface UpdateTime {
|
||||
export interface IUpdateTime {
|
||||
traderId: string;
|
||||
/** Seconds between trader resets */
|
||||
seconds: MinMax;
|
||||
}
|
||||
export interface FenceConfig {
|
||||
discountOptions: DiscountOptions;
|
||||
export interface IFenceConfig {
|
||||
discountOptions: IDiscountOptions;
|
||||
partialRefreshTimeSeconds: number;
|
||||
partialRefreshChangePercent: number;
|
||||
assortSize: number;
|
||||
@ -45,19 +45,19 @@ export interface FenceConfig {
|
||||
/** Max pen value allowed to be listed on flea - affects ammo + ammo boxes */
|
||||
ammoMaxPenLimit: number;
|
||||
blacklist: string[];
|
||||
coopExtractGift: CoopExtractReward;
|
||||
coopExtractGift: ICoopExtractReward;
|
||||
btrDeliveryExpireHours: number;
|
||||
}
|
||||
export interface IItemDurabilityCurrentMax {
|
||||
current: MinMax;
|
||||
max: MinMax;
|
||||
}
|
||||
export interface CoopExtractReward extends LootRequest {
|
||||
export interface ICoopExtractReward extends ILootRequest {
|
||||
sendGift: boolean;
|
||||
messageLocaleIds: string[];
|
||||
giftExpiryHours: number;
|
||||
}
|
||||
export interface DiscountOptions {
|
||||
export interface IDiscountOptions {
|
||||
assortSize: number;
|
||||
itemPriceMult: number;
|
||||
presetPriceMult: number;
|
||||
@ -65,7 +65,7 @@ export interface DiscountOptions {
|
||||
equipmentPresetMinMax: MinMax;
|
||||
}
|
||||
/** Custom trader data needed client side for things such as the clothing service */
|
||||
export interface ModdedTraders {
|
||||
export interface IModdedTraders {
|
||||
/** Trader Ids to enable the clothing service for */
|
||||
clothingService: string[];
|
||||
}
|
||||
|
@ -5,7 +5,7 @@ import { IBaseConfig } from "@spt/models/spt/config/IBaseConfig";
|
||||
export interface IWeatherConfig extends IBaseConfig {
|
||||
kind: "spt-weather";
|
||||
acceleration: number;
|
||||
weather: Weather;
|
||||
weather: IWeatherValues;
|
||||
seasonDates: ISeasonDateTimes[];
|
||||
overrideSeason?: Season;
|
||||
}
|
||||
@ -17,7 +17,9 @@ export interface ISeasonDateTimes {
|
||||
endDay: number;
|
||||
endMonth: number;
|
||||
}
|
||||
export interface Weather {
|
||||
export interface IWeatherValues {
|
||||
/** How many hours to generate weather data into the future */
|
||||
generateWeatherAmountHours: number;
|
||||
clouds: WeatherSettings<string>;
|
||||
windSpeed: WeatherSettings<number>;
|
||||
windDirection: WeatherSettings<WindDirection>;
|
||||
@ -25,8 +27,14 @@ export interface Weather {
|
||||
rain: WeatherSettings<number>;
|
||||
rainIntensity: MinMax;
|
||||
fog: WeatherSettings<string>;
|
||||
temp: MinMax;
|
||||
temp: Record<Season, ITempDayNight>;
|
||||
pressure: MinMax;
|
||||
/** Length of each weather period */
|
||||
timePeriod: WeatherSettings<number>;
|
||||
}
|
||||
export interface ITempDayNight {
|
||||
day: MinMax;
|
||||
night: MinMax;
|
||||
}
|
||||
export interface WeatherSettings<T> {
|
||||
values: T[];
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { IItem } from "@spt/models/eft/common/tables/IItem";
|
||||
import { ISystemData, IUserDialogInfo, MessageContentRagfair } from "@spt/models/eft/profile/ISptProfile";
|
||||
import { IMessageContentRagfair, ISystemData, IUserDialogInfo } from "@spt/models/eft/profile/ISptProfile";
|
||||
import { MessageType } from "@spt/models/enums/MessageType";
|
||||
import { Traders } from "@spt/models/enums/Traders";
|
||||
export interface ISendMessageDetails {
|
||||
@ -24,7 +24,7 @@ export interface ISendMessageDetails {
|
||||
/** Optional - ragfair related */
|
||||
systemData?: ISystemData;
|
||||
/** Optional - Used by ragfair messages */
|
||||
ragfairDetails?: MessageContentRagfair;
|
||||
ragfairDetails?: IMessageContentRagfair;
|
||||
/** OPTIONAL - allows modification of profile settings via mail */
|
||||
profileChangeEvents?: IProfileChangeEvent[];
|
||||
}
|
||||
|
@ -1,9 +1,9 @@
|
||||
export interface ScavCaseRewardCountsAndPrices {
|
||||
Common: RewardCountAndPriceDetails;
|
||||
Rare: RewardCountAndPriceDetails;
|
||||
Superrare: RewardCountAndPriceDetails;
|
||||
export interface IScavCaseRewardCountsAndPrices {
|
||||
Common: IRewardCountAndPriceDetails;
|
||||
Rare: IRewardCountAndPriceDetails;
|
||||
Superrare: IRewardCountAndPriceDetails;
|
||||
}
|
||||
export interface RewardCountAndPriceDetails {
|
||||
export interface IRewardCountAndPriceDetails {
|
||||
minCount: number;
|
||||
maxCount: number;
|
||||
minPriceRub: number;
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user