Update types to match server
This commit is contained in:
parent
30186be2d2
commit
edfffaa320
@ -10,6 +10,7 @@ export declare class BotCallbacks {
|
||||
constructor(botController: BotController, httpResponse: HttpResponseUtil);
|
||||
/**
|
||||
* Handle singleplayer/settings/bot/limit
|
||||
* Is called by client to define each bot roles wave limit
|
||||
* @returns string
|
||||
*/
|
||||
getBotLimit(url: string, info: IEmptyRequestData, sessionID: string): string;
|
||||
|
@ -13,6 +13,9 @@ export declare class BundleCallbacks {
|
||||
protected httpConfig: IHttpConfig;
|
||||
constructor(logger: ILogger, httpResponse: HttpResponseUtil, httpFileUtil: HttpFileUtil, bundleLoader: BundleLoader, configServer: ConfigServer);
|
||||
sendBundle(sessionID: string, req: any, resp: any, body: any): any;
|
||||
/**
|
||||
* Handle singleplayer/bundles
|
||||
*/
|
||||
getBundles(url: string, info: any, sessionID: string): string;
|
||||
getBundle(url: string, info: any, sessionID: string): string;
|
||||
}
|
||||
|
@ -15,15 +15,21 @@ export declare class CustomizationCallbacks {
|
||||
protected httpResponse: HttpResponseUtil;
|
||||
constructor(customizationController: CustomizationController, saveServer: SaveServer, httpResponse: HttpResponseUtil);
|
||||
/**
|
||||
* Handles client/trading/customization/storage
|
||||
* @returns
|
||||
* Handle client/trading/customization/storage
|
||||
* @returns IGetSuitsResponse
|
||||
*/
|
||||
getSuits(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<IGetSuitsResponse>;
|
||||
/**
|
||||
* Handles client/trading/customization
|
||||
* Handle client/trading/customization
|
||||
* @returns ISuit[]
|
||||
*/
|
||||
getTraderSuits(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<ISuit[]>;
|
||||
/**
|
||||
* Handle CustomizationWear event
|
||||
*/
|
||||
wearClothing(pmcData: IPmcData, body: IWearClothingRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
/**
|
||||
* Handle CustomizationBuy event
|
||||
*/
|
||||
buyClothing(pmcData: IPmcData, body: IBuyClothingRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
}
|
||||
|
@ -4,7 +4,6 @@ import { IEmptyRequestData } from "../models/eft/common/IEmptyRequestData";
|
||||
import { IGlobals } from "../models/eft/common/IGlobals";
|
||||
import { ICustomizationItem } from "../models/eft/common/tables/ICustomizationItem";
|
||||
import { IHandbookBase } from "../models/eft/common/tables/IHandbookBase";
|
||||
import { IQuest } from "../models/eft/common/tables/IQuest";
|
||||
import { IGetItemPricesResponse } from "../models/eft/game/IGetItemPricesResponse";
|
||||
import { IHideoutArea } from "../models/eft/hideout/IHideoutArea";
|
||||
import { IHideoutProduction } from "../models/eft/hideout/IHideoutProduction";
|
||||
@ -24,42 +23,54 @@ export declare class DataCallbacks {
|
||||
protected hideoutController: HideoutController;
|
||||
constructor(httpResponse: HttpResponseUtil, databaseServer: DatabaseServer, ragfairController: RagfairController, hideoutController: HideoutController);
|
||||
/**
|
||||
* Handles client/settings
|
||||
* Handle client/settings
|
||||
* @returns ISettingsBase
|
||||
*/
|
||||
getSettings(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<ISettingsBase>;
|
||||
/**
|
||||
* Handles client/globals
|
||||
* Handle client/globals
|
||||
* @returns IGlobals
|
||||
*/
|
||||
getGlobals(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<IGlobals>;
|
||||
/**
|
||||
* Handles client/items
|
||||
* Handle client/items
|
||||
* @returns string
|
||||
*/
|
||||
getTemplateItems(url: string, info: IEmptyRequestData, sessionID: string): string;
|
||||
/**
|
||||
* Handles client/handbook/templates
|
||||
* Handle client/handbook/templates
|
||||
* @returns IHandbookBase
|
||||
*/
|
||||
getTemplateHandbook(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<IHandbookBase>;
|
||||
/**
|
||||
* Handles client/customization
|
||||
* Handle client/customization
|
||||
* @returns Record<string, ICustomizationItem
|
||||
*/
|
||||
getTemplateSuits(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<Record<string, ICustomizationItem>>;
|
||||
/**
|
||||
* Handles client/account/customization
|
||||
* Handle client/account/customization
|
||||
* @returns string[]
|
||||
*/
|
||||
getTemplateCharacter(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<string[]>;
|
||||
getTemplateQuests(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<IQuest[]>;
|
||||
/**
|
||||
* Handle client/hideout/settings
|
||||
* @returns IHideoutSettingsBase
|
||||
*/
|
||||
getHideoutSettings(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<IHideoutSettingsBase>;
|
||||
getHideoutAreas(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<IHideoutArea[]>;
|
||||
gethideoutProduction(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<IHideoutProduction[]>;
|
||||
getHideoutScavcase(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<IHideoutScavCase[]>;
|
||||
/**
|
||||
* Handle client/languages
|
||||
*/
|
||||
getLocalesLanguages(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<Record<string, string>>;
|
||||
/**
|
||||
* Handle client/menu/locale
|
||||
*/
|
||||
getLocalesMenu(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<string>;
|
||||
/**
|
||||
* Handle client/locale
|
||||
*/
|
||||
getLocalesGlobal(url: string, info: IEmptyRequestData, sessionID: string): string;
|
||||
/**
|
||||
* Handle client/hideout/qte/list
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { DialogueController } from "../controllers/DialogueController";
|
||||
import { OnUpdate } from "../di/OnUpdate";
|
||||
import { IEmptyRequestData } from "../models/eft/common/IEmptyRequestData";
|
||||
import { IAcceptFriendRequestData } from "../models/eft/dialog/IAcceptFriendRequestData";
|
||||
import { IAcceptFriendRequestData, ICancelFriendRequestData } from "../models/eft/dialog/IAcceptFriendRequestData";
|
||||
import { IChatServer } from "../models/eft/dialog/IChatServer";
|
||||
import { IClearMailMessageRequest } from "../models/eft/dialog/IClearMailMessageRequest";
|
||||
import { IDeleteFriendRequest } from "../models/eft/dialog/IDeleteFriendRequest";
|
||||
@ -33,13 +33,13 @@ export declare class DialogueCallbacks implements OnUpdate {
|
||||
protected dialogueController: DialogueController;
|
||||
constructor(hashUtil: HashUtil, timeUtil: TimeUtil, httpResponse: HttpResponseUtil, dialogueController: DialogueController);
|
||||
/**
|
||||
* Handles client/friend/list
|
||||
* Handle client/friend/list
|
||||
* @returns IGetFriendListDataResponse
|
||||
*/
|
||||
getFriendList(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<IGetFriendListDataResponse>;
|
||||
/**
|
||||
* Handles client/chatServer/list
|
||||
* @returns
|
||||
* Handle client/chatServer/list
|
||||
* @returns IChatServer[]
|
||||
*/
|
||||
getChatServerList(url: string, info: IGetChatServerListRequestData, sessionID: string): IGetBodyResponseData<IChatServer[]>;
|
||||
/** Handle client/mail/dialog/list */
|
||||
@ -50,21 +50,47 @@ export declare class DialogueCallbacks implements OnUpdate {
|
||||
getMailDialogInfo(url: string, info: IGetMailDialogInfoRequestData, sessionID: string): IGetBodyResponseData<DialogueInfo>;
|
||||
/** Handle client/mail/dialog/remove */
|
||||
removeDialog(url: string, info: IRemoveDialogRequestData, sessionID: string): IGetBodyResponseData<any[]>;
|
||||
/** Handle client/mail/dialog/pin */
|
||||
pinDialog(url: string, info: IPinDialogRequestData, sessionID: string): IGetBodyResponseData<any[]>;
|
||||
/** Handle client/mail/dialog/unpin */
|
||||
unpinDialog(url: string, info: IPinDialogRequestData, sessionID: string): IGetBodyResponseData<any[]>;
|
||||
/** Handle client/mail/dialog/read */
|
||||
setRead(url: string, info: ISetDialogReadRequestData, sessionID: string): IGetBodyResponseData<any[]>;
|
||||
/**
|
||||
* Handles client/mail/dialog/getAllAttachments
|
||||
* Handle client/mail/dialog/getAllAttachments
|
||||
* @returns IGetAllAttachmentsResponse
|
||||
*/
|
||||
getAllAttachments(url: string, info: IGetAllAttachmentsRequestData, sessionID: string): IGetBodyResponseData<IGetAllAttachmentsResponse>;
|
||||
/** Handle client/mail/msg/send */
|
||||
sendMessage(url: string, request: ISendMessageRequest, sessionID: string): IGetBodyResponseData<string>;
|
||||
/** Handle client/friend/request/list/outbox */
|
||||
listOutbox(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<any[]>;
|
||||
/**
|
||||
* Handle client/friend/request/list/inbox
|
||||
*/
|
||||
listInbox(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<any[]>;
|
||||
/**
|
||||
* Handle client/friend/request/send
|
||||
*/
|
||||
sendFriendRequest(url: string, request: IFriendRequestData, sessionID: string): IGetBodyResponseData<IFriendRequestSendResponse>;
|
||||
/**
|
||||
* Handle client/friend/request/accept
|
||||
*/
|
||||
acceptFriendRequest(url: string, request: IAcceptFriendRequestData, sessionID: string): IGetBodyResponseData<boolean>;
|
||||
/**
|
||||
* Handle client/friend/request/cancel
|
||||
*/
|
||||
cancelFriendRequest(url: string, request: ICancelFriendRequestData, sessionID: string): IGetBodyResponseData<boolean>;
|
||||
/** Handle client/friend/delete */
|
||||
deleteFriend(url: string, request: IDeleteFriendRequest, sessionID: string): INullResponseData;
|
||||
sendMessage(url: string, request: ISendMessageRequest, sessionID: string): IGetBodyResponseData<number>;
|
||||
/** Handle client/friend/ignore/set */
|
||||
ignoreFriend(url: string, request: {
|
||||
uid: string;
|
||||
}, sessionID: string): any;
|
||||
/** Handle client/friend/ignore/remove */
|
||||
unIgnoreFriend(url: string, request: {
|
||||
uid: string;
|
||||
}, sessionID: string): any;
|
||||
clearMail(url: string, request: IClearMailMessageRequest, sessionID: string): IGetBodyResponseData<any[]>;
|
||||
removeMail(url: string, request: IRemoveMailMessageRequest, sessionID: string): IGetBodyResponseData<any[]>;
|
||||
onUpdate(timeSinceLastRun: number): Promise<boolean>;
|
||||
|
@ -1,6 +1,7 @@
|
||||
import { GameController } from "../controllers/GameController";
|
||||
import { IEmptyRequestData } from "../models/eft/common/IEmptyRequestData";
|
||||
import { ICheckVersionResponse } from "../models/eft/game/ICheckVersionResponse";
|
||||
import { ICurrentGroupResponse } from "../models/eft/game/ICurrentGroupResponse";
|
||||
import { IGameConfigResponse } from "../models/eft/game/IGameConfigResponse";
|
||||
import { IGameEmptyCrcRequestData } from "../models/eft/game/IGameEmptyCrcRequestData";
|
||||
import { IGameKeepAliveResponse } from "../models/eft/game/IGameKeepAliveResponse";
|
||||
@ -41,8 +42,17 @@ declare class GameCallbacks {
|
||||
* @returns IGameConfigResponse
|
||||
*/
|
||||
getGameConfig(url: string, info: IGameEmptyCrcRequestData, sessionID: string): IGetBodyResponseData<IGameConfigResponse>;
|
||||
/**
|
||||
* Handle client/server/list
|
||||
*/
|
||||
getServer(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<IServerDetails[]>;
|
||||
getCurrentGroup(url: string, info: IEmptyRequestData, sessionID: string): any;
|
||||
/**
|
||||
* Handle client/match/group/current
|
||||
*/
|
||||
getCurrentGroup(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<ICurrentGroupResponse>;
|
||||
/**
|
||||
* Handle client/checkVersion
|
||||
*/
|
||||
validateGameVersion(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<ICheckVersionResponse>;
|
||||
/**
|
||||
* Handle client/game/keepalive
|
||||
|
@ -23,11 +23,11 @@ export declare class HideoutCallbacks implements OnUpdate {
|
||||
constructor(hideoutController: HideoutController, // TODO: delay needed
|
||||
configServer: ConfigServer);
|
||||
/**
|
||||
* Handle HideoutUpgrade
|
||||
* Handle HideoutUpgrade event
|
||||
*/
|
||||
upgrade(pmcData: IPmcData, body: IHideoutUpgradeRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
/**
|
||||
* Handle HideoutUpgradeComplete
|
||||
* Handle HideoutUpgradeComplete event
|
||||
*/
|
||||
upgradeComplete(pmcData: IPmcData, body: IHideoutUpgradeCompleteRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
/**
|
||||
@ -35,19 +35,19 @@ export declare class HideoutCallbacks implements OnUpdate {
|
||||
*/
|
||||
putItemsInAreaSlots(pmcData: IPmcData, body: IHideoutPutItemInRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
/**
|
||||
* Handle HideoutTakeItemsFromAreaSlots
|
||||
* Handle HideoutTakeItemsFromAreaSlots event
|
||||
*/
|
||||
takeItemsFromAreaSlots(pmcData: IPmcData, body: IHideoutTakeItemOutRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
/**
|
||||
* Handle HideoutToggleArea
|
||||
* Handle HideoutToggleArea event
|
||||
*/
|
||||
toggleArea(pmcData: IPmcData, body: IHideoutToggleAreaRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
/**
|
||||
* Handle HideoutSingleProductionStart
|
||||
* Handle HideoutSingleProductionStart event
|
||||
*/
|
||||
singleProductionStart(pmcData: IPmcData, body: IHideoutSingleProductionStartRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
/**
|
||||
* Handle HideoutScavCaseProductionStart
|
||||
* Handle HideoutScavCaseProductionStart event
|
||||
*/
|
||||
scavCaseProductionStart(pmcData: IPmcData, body: IHideoutScavCaseStartRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
/**
|
||||
@ -55,7 +55,7 @@ export declare class HideoutCallbacks implements OnUpdate {
|
||||
*/
|
||||
continuousProductionStart(pmcData: IPmcData, body: IHideoutContinuousProductionStartRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
/**
|
||||
* Handle HideoutTakeProduction
|
||||
* Handle HideoutTakeProduction event
|
||||
*/
|
||||
takeProduction(pmcData: IPmcData, body: IHideoutTakeProductionRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
/**
|
||||
|
@ -12,6 +12,7 @@ export declare class InraidCallbacks {
|
||||
constructor(inraidController: InraidController, httpResponse: HttpResponseUtil);
|
||||
/**
|
||||
* Handle client/location/getLocalloot
|
||||
* Store active map in profile + applicationContext
|
||||
* @param url
|
||||
* @param info register player request
|
||||
* @param sessionID Session id
|
||||
|
@ -23,7 +23,7 @@ export declare class InsuranceCallbacks implements OnUpdate {
|
||||
*/
|
||||
getInsuranceCost(url: string, info: IGetInsuranceCostRequestData, sessionID: string): IGetBodyResponseData<IGetInsuranceCostResponseData>;
|
||||
/**
|
||||
* Handle Insure
|
||||
* Handle Insure event
|
||||
* @returns IItemEventRouterResponse
|
||||
*/
|
||||
insure(pmcData: IPmcData, body: IInsureRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
|
@ -26,16 +26,20 @@ export declare class InventoryCallbacks {
|
||||
splitItem(pmcData: IPmcData, body: IInventorySplitRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
mergeItem(pmcData: IPmcData, body: IInventoryMergeRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
transferItem(pmcData: IPmcData, body: IInventoryTransferRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
/** Handle Swap */
|
||||
swapItem(pmcData: IPmcData, body: IInventorySwapRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
foldItem(pmcData: IPmcData, body: IInventoryFoldRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
toggleItem(pmcData: IPmcData, body: IInventoryToggleRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
tagItem(pmcData: IPmcData, body: IInventoryTagRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
bindItem(pmcData: IPmcData, body: IInventoryBindRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
examineItem(pmcData: IPmcData, body: IInventoryExamineRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
/** Handle ReadEncyclopedia */
|
||||
readEncyclopedia(pmcData: IPmcData, body: IInventoryReadEncyclopediaRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
/** Handle ApplyInventoryChanges */
|
||||
sortInventory(pmcData: IPmcData, body: IInventorySortRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
createMapMarker(pmcData: IPmcData, body: IInventoryCreateMarkerRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
deleteMapMarker(pmcData: IPmcData, body: IInventoryDeleteMarkerRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
editMapMarker(pmcData: IPmcData, body: IInventoryEditMarkerRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
/** Handle OpenRandomLootContainer */
|
||||
openRandomLootContainer(pmcData: IPmcData, body: IOpenRandomLootContainerRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
}
|
||||
|
@ -9,7 +9,10 @@ export declare class LocationCallbacks {
|
||||
protected httpResponse: HttpResponseUtil;
|
||||
protected locationController: LocationController;
|
||||
constructor(httpResponse: HttpResponseUtil, locationController: LocationController);
|
||||
/** Handle client/locations */
|
||||
getLocationData(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<ILocationsGenerateAllResponse>;
|
||||
/** Handle client/location/getLocalloot */
|
||||
getLocation(url: string, info: IGetLocationRequestData, sessionID: string): IGetBodyResponseData<ILocationBase>;
|
||||
/** Handle client/location/getAirdropLoot */
|
||||
getAirdropLoot(url: string, info: IEmptyRequestData, sessionID: string): string;
|
||||
}
|
||||
|
@ -27,11 +27,14 @@ export declare class MatchCallbacks {
|
||||
protected matchController: MatchController;
|
||||
protected databaseServer: DatabaseServer;
|
||||
constructor(httpResponse: HttpResponseUtil, jsonUtil: JsonUtil, matchController: MatchController, databaseServer: DatabaseServer);
|
||||
/** Handle client/match/updatePing */
|
||||
updatePing(url: string, info: IUpdatePingRequestData, sessionID: string): INullResponseData;
|
||||
exitMatch(url: string, info: IEmptyRequestData, sessionID: string): INullResponseData;
|
||||
/** Handle client/match/group/exit_from_menu */
|
||||
exitToMenu(url: string, info: IEmptyRequestData, sessionID: string): INullResponseData;
|
||||
startGroupSearch(url: string, info: IEmptyRequestData, sessionID: string): INullResponseData;
|
||||
stopGroupSearch(url: string, info: IEmptyRequestData, sessionID: string): INullResponseData;
|
||||
/** Handle client/match/group/invite/send */
|
||||
sendGroupInvite(url: string, info: ISendGroupInviteRequest, sessionID: string): IGetBodyResponseData<string>;
|
||||
/** Handle client/match/group/invite/accept */
|
||||
acceptGroupInvite(url: string, info: IAcceptGroupInviteRequest, sessionID: string): IGetBodyResponseData<IAcceptGroupInviteResponse[]>;
|
||||
@ -39,21 +42,32 @@ export declare class MatchCallbacks {
|
||||
cancelGroupInvite(url: string, info: ICancelGroupInviteRequest, sessionID: string): IGetBodyResponseData<boolean>;
|
||||
/** Handle client/match/group/transfer */
|
||||
transferGroup(url: string, info: ITransferGroupRequest, sessionID: string): IGetBodyResponseData<boolean>;
|
||||
/** Handle client/match/group/invite/cancel-all */
|
||||
cancelAllGroupInvite(url: string, info: any, sessionID: string): INullResponseData;
|
||||
/** @deprecated - not called on raid start/end or game start/exit */
|
||||
putMetrics(url: string, info: IPutMetricsRequestData, sessionID: string): INullResponseData;
|
||||
/** Handle raid/profile/list */
|
||||
getProfile(url: string, info: IGetProfileRequestData, sessionID: string): IGetBodyResponseData<IPmcData[]>;
|
||||
serverAvailable(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<boolean>;
|
||||
/** Handle match/group/start_game */
|
||||
joinMatch(url: string, info: IJoinMatchRequestData, sessionID: string): IGetBodyResponseData<IJoinMatchResult>;
|
||||
/** Handle client/getMetricsConfig */
|
||||
getMetrics(url: string, info: any, sessionID: string): IGetBodyResponseData<string>;
|
||||
/**
|
||||
* @deprecated - not called on raid start/end or game start/exit
|
||||
* Handle client/match/group/status
|
||||
* @returns
|
||||
*/
|
||||
getGroupStatus(url: string, info: IGetGroupStatusRequestData, sessionID: string): IGetBodyResponseData<any>;
|
||||
/** Handle client/match/group/create */
|
||||
createGroup(url: string, info: ICreateGroupRequestData, sessionID: string): IGetBodyResponseData<any>;
|
||||
/** Handle client/match/group/delete */
|
||||
deleteGroup(url: string, info: any, sessionID: string): INullResponseData;
|
||||
leaveGroup(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<boolean>;
|
||||
/** Handle client/match/group/player/remove */
|
||||
removePlayerFromGroup(url: string, info: IRemovePlayerFromGroupRequest, sessionID: string): INullResponseData;
|
||||
/** Handle client/match/offline/end */
|
||||
endOfflineRaid(url: string, info: IEndOfflineRaidRequestData, sessionID: string): INullResponseData;
|
||||
/** Handle client/raid/configuration */
|
||||
getRaidConfiguration(url: string, info: IGetRaidConfigurationRequestData, sessionID: string): INullResponseData;
|
||||
}
|
||||
|
@ -5,7 +5,10 @@ import { INoteActionData } from "../models/eft/notes/INoteActionData";
|
||||
export declare class NoteCallbacks {
|
||||
protected noteController: NoteController;
|
||||
constructor(noteController: NoteController);
|
||||
/** Handle AddNote event */
|
||||
addNote(pmcData: IPmcData, body: INoteActionData, sessionID: string): IItemEventRouterResponse;
|
||||
/** Handle EditNote event */
|
||||
editNote(pmcData: IPmcData, body: INoteActionData, sessionID: string): IItemEventRouterResponse;
|
||||
/** Handle DeleteNote event */
|
||||
deleteNote(pmcData: IPmcData, body: INoteActionData, sessionID: string): IItemEventRouterResponse;
|
||||
}
|
||||
|
@ -18,7 +18,10 @@ export declare class NotifierCallbacks {
|
||||
* and the client would abort the connection due to spam.
|
||||
*/
|
||||
sendNotification(sessionID: string, req: any, resp: any, data: any): void;
|
||||
/** Handle push/notifier/get */
|
||||
/** Handle push/notifier/getwebsocket */
|
||||
getNotifier(url: string, info: any, sessionID: string): IGetBodyResponseData<any[]>;
|
||||
/** Handle client/notifier/channel/create */
|
||||
createNotifierChannel(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<INotifierChannel>;
|
||||
/**
|
||||
* Handle client/game/profile/select
|
||||
|
@ -10,7 +10,10 @@ export declare class PresetBuildCallbacks {
|
||||
protected httpResponse: HttpResponseUtil;
|
||||
protected presetBuildController: PresetBuildController;
|
||||
constructor(httpResponse: HttpResponseUtil, presetBuildController: PresetBuildController);
|
||||
/** Handle client/handbook/builds/my/list */
|
||||
getHandbookUserlist(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<WeaponBuild[]>;
|
||||
/** Handle SaveBuild event */
|
||||
saveBuild(pmcData: IPmcData, body: IPresetBuildActionRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
/** Handle RemoveBuild event*/
|
||||
removeBuild(pmcData: IPmcData, body: IPresetBuildActionRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
}
|
||||
|
@ -20,16 +20,17 @@ export declare class ProfileCallbacks {
|
||||
protected timeUtil: TimeUtil;
|
||||
protected profileController: ProfileController;
|
||||
constructor(httpResponse: HttpResponseUtil, timeUtil: TimeUtil, profileController: ProfileController);
|
||||
/**
|
||||
* Handle client/game/profile/create
|
||||
*/
|
||||
createProfile(url: string, info: IProfileCreateRequestData, sessionID: string): IGetBodyResponseData<any>;
|
||||
/**
|
||||
* Handle client/game/profile/list
|
||||
* Get the complete player profile (scav + pmc character)
|
||||
* @param url
|
||||
* @param info Empty
|
||||
* @param sessionID Session id
|
||||
* @returns Profile object
|
||||
*/
|
||||
getProfileData(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<IPmcData[]>;
|
||||
/**
|
||||
* Handle client/game/profile/savage/regenerate
|
||||
* Handle the creation of a scav profile for player
|
||||
* Occurs post-raid and when profile first created immediately after character details are confirmed by player
|
||||
* @param url
|
||||
@ -40,33 +41,40 @@ export declare class ProfileCallbacks {
|
||||
regenerateScav(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<IPmcData[]>;
|
||||
/**
|
||||
* Handle client/game/profile/voice/change event
|
||||
* @param url
|
||||
* @param info Change voice request object
|
||||
* @param sessionID Session id
|
||||
* @returns Client response
|
||||
*/
|
||||
changeVoice(url: string, info: IProfileChangeVoiceRequestData, sessionID: string): INullResponseData;
|
||||
/**
|
||||
* Handle client/game/profile/nickname/change event
|
||||
* Client allows player to adjust their profile name
|
||||
* @param url
|
||||
* @param info Change nickname request object
|
||||
* @param sessionID Session id
|
||||
* @returns client response
|
||||
*/
|
||||
changeNickname(url: string, info: IProfileChangeNicknameRequestData, sessionID: string): IGetBodyResponseData<any>;
|
||||
/**
|
||||
* Handle client/game/profile/nickname/validate
|
||||
*/
|
||||
validateNickname(url: string, info: IValidateNicknameRequestData, sessionID: string): IGetBodyResponseData<any>;
|
||||
/**
|
||||
* Handle client/game/profile/nickname/reserved
|
||||
*/
|
||||
getReservedNickname(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<string>;
|
||||
/**
|
||||
* Handle client/profile/status
|
||||
* Called when creating a character when choosing a character face/voice
|
||||
* @param url
|
||||
* @param info response (empty)
|
||||
* @param sessionID
|
||||
* @returns
|
||||
*/
|
||||
getProfileStatus(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<GetProfileStatusResponseData>;
|
||||
/**
|
||||
* Handle client/profile/settings
|
||||
*/
|
||||
getProfileSettings(url: string, info: IGetProfileSettingsRequest, sessionId: string): IGetBodyResponseData<string>;
|
||||
/**
|
||||
* Handle client/game/profile/search
|
||||
*/
|
||||
searchFriend(url: string, info: ISearchFriendRequestData, sessionID: string): IGetBodyResponseData<ISearchFriendResponse[]>;
|
||||
/**
|
||||
* Handle launcher/profile/info
|
||||
*/
|
||||
getMiniProfile(url: string, info: IGetMiniProfileRequestData, sessionID: string): string;
|
||||
getAllMiniProfiles(url: string, info: any, sessionID: string): string;
|
||||
/**
|
||||
* Handle /launcher/profiles
|
||||
*/
|
||||
getAllMiniProfiles(url: string, info: IEmptyRequestData, sessionID: string): string;
|
||||
}
|
||||
|
@ -17,17 +17,28 @@ export declare class QuestCallbacks {
|
||||
protected questController: QuestController;
|
||||
protected repeatableQuestController: RepeatableQuestController;
|
||||
constructor(httpResponse: HttpResponseUtil, questController: QuestController, repeatableQuestController: RepeatableQuestController);
|
||||
/**
|
||||
* Handle RepeatableQuestChange event
|
||||
*/
|
||||
changeRepeatableQuest(pmcData: IPmcData, body: IRepeatableQuestChangeRequest, sessionID: string): IItemEventRouterResponse;
|
||||
/**
|
||||
* Handle QuestAccept event
|
||||
*/
|
||||
acceptQuest(pmcData: IPmcData, body: IAcceptQuestRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
/**
|
||||
* Handle QuestComplete event
|
||||
*/
|
||||
completeQuest(pmcData: IPmcData, body: ICompleteQuestRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
/**
|
||||
* Handle QuestHandover event
|
||||
*/
|
||||
handoverQuest(pmcData: IPmcData, body: IHandoverQuestRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
/**
|
||||
* Handle client/quest/list
|
||||
* @param url
|
||||
* @param info
|
||||
* @param sessionID
|
||||
* @returns
|
||||
*/
|
||||
listQuests(url: string, info: IListQuestsRequestData, sessionID: string): IGetBodyResponseData<IQuest[]>;
|
||||
/**
|
||||
* Handle client/repeatalbeQuests/activityPeriods
|
||||
*/
|
||||
activityPeriods(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<IPmcDataRepeatableQuest[]>;
|
||||
}
|
||||
|
@ -32,16 +32,25 @@ export declare class RagfairCallbacks implements OnLoad, OnUpdate {
|
||||
constructor(httpResponse: HttpResponseUtil, jsonUtil: JsonUtil, ragfairServer: RagfairServer, ragfairController: RagfairController, configServer: ConfigServer);
|
||||
onLoad(): Promise<void>;
|
||||
getRoute(): string;
|
||||
onUpdate(timeSinceLastRun: number): Promise<boolean>;
|
||||
/**
|
||||
* Handle client/ragfair/search
|
||||
* Handle client/ragfair/find
|
||||
*/
|
||||
search(url: string, info: ISearchRequestData, sessionID: string): IGetBodyResponseData<IGetOffersResult>;
|
||||
/** Handle client/ragfair/itemMarketPrice */
|
||||
getMarketPrice(url: string, info: IGetMarketPriceRequestData, sessionID: string): IGetBodyResponseData<IGetItemPriceResult>;
|
||||
/** Handle RagFairAddOffer event */
|
||||
addOffer(pmcData: IPmcData, info: IAddOfferRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
/** \Handle RagFairRemoveOffer event */
|
||||
removeOffer(pmcData: IPmcData, info: IRemoveOfferRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
/** Handle RagFairRenewOffer event */
|
||||
extendOffer(pmcData: IPmcData, info: IExtendOfferRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
/**
|
||||
* Handle /client/items/prices
|
||||
* Called when clicking an item to list on flea
|
||||
*/
|
||||
getFleaPrices(url: string, request: IEmptyRequestData, sessionID: string): IGetBodyResponseData<Record<string, number>>;
|
||||
onUpdate(timeSinceLastRun: number): Promise<boolean>;
|
||||
/** Handle client/reports/ragfair/send */
|
||||
sendReport(url: string, info: ISendRagfairReportRequestData, sessionID: string): INullResponseData;
|
||||
}
|
||||
|
@ -7,19 +7,21 @@ export declare class RepairCallbacks {
|
||||
protected repairController: RepairController;
|
||||
constructor(repairController: RepairController);
|
||||
/**
|
||||
* Handle TraderRepair event
|
||||
* use trader to repair item
|
||||
* @param pmcData
|
||||
* @param body
|
||||
* @param sessionID
|
||||
* @returns
|
||||
* @param pmcData Player profile
|
||||
* @param traderRepairRequest Request object
|
||||
* @param sessionID Session id
|
||||
* @returns IItemEventRouterResponse
|
||||
*/
|
||||
traderRepair(pmcData: IPmcData, body: ITraderRepairActionDataRequest, sessionID: string): IItemEventRouterResponse;
|
||||
traderRepair(pmcData: IPmcData, traderRepairRequest: ITraderRepairActionDataRequest, sessionID: string): IItemEventRouterResponse;
|
||||
/**
|
||||
* Handle Repair event
|
||||
* Use repair kit to repair item
|
||||
* @param pmcData
|
||||
* @param body
|
||||
* @param sessionID
|
||||
* @returns
|
||||
* @param pmcData Player profile
|
||||
* @param repairRequest Request object
|
||||
* @param sessionID Session id
|
||||
* @returns IItemEventRouterResponse
|
||||
*/
|
||||
repair(pmcData: IPmcData, body: IRepairActionDataRequest, sessionID: string): IItemEventRouterResponse;
|
||||
repair(pmcData: IPmcData, repairRequest: IRepairActionDataRequest, sessionID: string): IItemEventRouterResponse;
|
||||
}
|
||||
|
@ -7,8 +7,9 @@ export declare class TradeCallbacks {
|
||||
protected tradeController: TradeController;
|
||||
constructor(tradeController: TradeController);
|
||||
/**
|
||||
* Handle client/game/profile/items/moving TradingConfirm
|
||||
* Handle client/game/profile/items/moving TradingConfirm event
|
||||
*/
|
||||
processTrade(pmcData: IPmcData, body: IProcessBaseTradeRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
/** Handle RagFairBuyOffer event */
|
||||
processRagfairTrade(pmcData: IPmcData, body: IProcessRagfairTradeRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
}
|
||||
|
@ -12,7 +12,10 @@ export declare class TraderCallbacks implements OnLoad, OnUpdate {
|
||||
onLoad(): Promise<void>;
|
||||
onUpdate(): Promise<boolean>;
|
||||
getRoute(): string;
|
||||
/** Handle client/trading/api/traderSettings */
|
||||
getTraderSettings(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<ITraderBase[]>;
|
||||
/** Handle client/trading/api/getTrader */
|
||||
getTrader(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<ITraderBase>;
|
||||
/** Handle client/trading/api/getTraderAssort */
|
||||
getAssort(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<ITraderAssort>;
|
||||
}
|
||||
|
@ -5,6 +5,8 @@ import { IWishlistActionData } from "../models/eft/wishlist/IWishlistActionData"
|
||||
export declare class WishlistCallbacks {
|
||||
protected wishlistController: WishlistController;
|
||||
constructor(wishlistController: WishlistController);
|
||||
/** Handle AddToWishList event */
|
||||
addToWishlist(pmcData: IPmcData, body: IWishlistActionData, sessionID: string): IItemEventRouterResponse;
|
||||
/** Handle RemoveFromWishList event */
|
||||
removeFromWishlist(pmcData: IPmcData, body: IWishlistActionData, sessionID: string): IItemEventRouterResponse;
|
||||
}
|
||||
|
@ -38,6 +38,7 @@ export declare class BotController {
|
||||
*/
|
||||
getBotPresetGenerationLimit(type: string): number;
|
||||
/**
|
||||
* Handle singleplayer/settings/bot/difficulty
|
||||
* Get the core.json difficulty settings from database\bots
|
||||
* @returns IBotCore
|
||||
*/
|
||||
|
@ -28,9 +28,13 @@ export declare class CustomizationController {
|
||||
* @returns ISuit array
|
||||
*/
|
||||
getTraderSuits(traderID: string, sessionID: string): ISuit[];
|
||||
/** Equip one to many clothing items to player */
|
||||
/**
|
||||
* Handle CustomizationWear event
|
||||
* Equip one to many clothing items to player
|
||||
*/
|
||||
wearClothing(pmcData: IPmcData, wearClothingRequest: IWearClothingRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
/**
|
||||
* Handle CustomizationBuy event
|
||||
* Purchase/unlock a clothing item from a trader
|
||||
* @param pmcData Player profile
|
||||
* @param buyClothingRequest Request object
|
||||
@ -42,8 +46,8 @@ export declare class CustomizationController {
|
||||
/**
|
||||
* Has an outfit been purchased by a player
|
||||
* @param suitId clothing id
|
||||
* @param sessionID Session id
|
||||
* @returns true if purchased already
|
||||
* @param sessionID Session id of profile to check for clothing in
|
||||
* @returns true if already purchased
|
||||
*/
|
||||
protected outfitAlreadyPurchased(suitId: string, sessionID: string): boolean;
|
||||
/**
|
||||
@ -60,7 +64,6 @@ export declare class CustomizationController {
|
||||
* @param pmcData Player profile
|
||||
* @param clothingItem Clothing item purchased
|
||||
* @param output Client response
|
||||
* @returns
|
||||
*/
|
||||
protected payForClothingItem(sessionId: string, pmcData: IPmcData, clothingItem: ClothingItem, output: IItemEventRouterResponse): void;
|
||||
protected getAllTraderSuits(sessionID: string): ISuit[];
|
||||
|
@ -1,18 +1,39 @@
|
||||
import { DialogueHelper } from "../helpers/DialogueHelper";
|
||||
import { ProfileHelper } from "../helpers/ProfileHelper";
|
||||
import { IGetAllAttachmentsResponse } from "../models/eft/dialog/IGetAllAttachmentsResponse";
|
||||
import { IGetFriendListDataResponse } from "../models/eft/dialog/IGetFriendListDataResponse";
|
||||
import { IGetMailDialogViewRequestData } from "../models/eft/dialog/IGetMailDialogViewRequestData";
|
||||
import { IGetMailDialogViewResponseData } from "../models/eft/dialog/IGetMailDialogViewResponseData";
|
||||
import { DialogueInfo, IAkiProfile, IUserDialogInfo, Message } from "../models/eft/profile/IAkiProfile";
|
||||
import { ISendMessageRequest } from "../models/eft/dialog/ISendMessageRequest";
|
||||
import { Dialogue, DialogueInfo, IAkiProfile, IUserDialogInfo, Message } from "../models/eft/profile/IAkiProfile";
|
||||
import { MessageType } from "../models/enums/MessageType";
|
||||
import { ILogger } from "../models/spt/utils/ILogger";
|
||||
import { SaveServer } from "../servers/SaveServer";
|
||||
import { GiftService } from "../services/GiftService";
|
||||
import { MailSendService } from "../services/MailSendService";
|
||||
import { HashUtil } from "../utils/HashUtil";
|
||||
import { RandomUtil } from "../utils/RandomUtil";
|
||||
import { TimeUtil } from "../utils/TimeUtil";
|
||||
export declare class DialogueController {
|
||||
protected logger: ILogger;
|
||||
protected saveServer: SaveServer;
|
||||
protected timeUtil: TimeUtil;
|
||||
protected dialogueHelper: DialogueHelper;
|
||||
constructor(saveServer: SaveServer, timeUtil: TimeUtil, dialogueHelper: DialogueHelper);
|
||||
protected profileHelper: ProfileHelper;
|
||||
protected randomUtil: RandomUtil;
|
||||
protected mailSendService: MailSendService;
|
||||
protected giftService: GiftService;
|
||||
protected hashUtil: HashUtil;
|
||||
constructor(logger: ILogger, saveServer: SaveServer, timeUtil: TimeUtil, dialogueHelper: DialogueHelper, profileHelper: ProfileHelper, randomUtil: RandomUtil, mailSendService: MailSendService, giftService: GiftService, hashUtil: HashUtil);
|
||||
/** Handle onUpdate spt event */
|
||||
update(): void;
|
||||
/**
|
||||
* Handle client/friend/list
|
||||
* @returns IGetFriendListDataResponse
|
||||
*/
|
||||
getFriendList(sessionID: string): IGetFriendListDataResponse;
|
||||
/**
|
||||
* Handle client/mail/dialog/list
|
||||
* Create array holding trader dialogs and mail interactions with player
|
||||
* Set the content of the dialogue on the list tab.
|
||||
* @param sessionID Session Id
|
||||
@ -27,15 +48,37 @@ export declare class DialogueController {
|
||||
*/
|
||||
getDialogueInfo(dialogueID: string, sessionID: string): DialogueInfo;
|
||||
/**
|
||||
* Get the users involved in a dialog (player + other party)
|
||||
* @param dialog The dialog to check for users
|
||||
* @param messageType What type of message is being sent
|
||||
* @param sessionID Player id
|
||||
* @returns IUserDialogInfo array
|
||||
*/
|
||||
getDialogueUsers(dialog: Dialogue, messageType: MessageType, sessionID: string): IUserDialogInfo[];
|
||||
/**
|
||||
* Handle client/mail/dialog/view
|
||||
* Handle player clicking 'messenger' and seeing all the messages they've recieved
|
||||
* Set the content of the dialogue on the details panel, showing all the messages
|
||||
* for the specified dialogue.
|
||||
* @param dialogueID Dialog id
|
||||
* @param sessionID Session id
|
||||
* @param request Get dialog request
|
||||
* @param sessionId Session id
|
||||
* @returns IGetMailDialogViewResponseData object
|
||||
*/
|
||||
generateDialogueView(dialogueID: string, sessionID: string): IGetMailDialogViewResponseData;
|
||||
protected getProfilesForMail(pmcProfile: IAkiProfile, dialogUsers: IUserDialogInfo[]): IUserDialogInfo[];
|
||||
generateDialogueView(request: IGetMailDialogViewRequestData, sessionId: string): IGetMailDialogViewResponseData;
|
||||
/**
|
||||
* Get dialog from player profile, create if doesn't exist
|
||||
* @param profile Player profile
|
||||
* @param request get dialog request (params used when dialog doesnt exist in profile)
|
||||
* @returns Dialogue
|
||||
*/
|
||||
protected getDialogByIdFromProfile(profile: IAkiProfile, request: IGetMailDialogViewRequestData): Dialogue;
|
||||
/**
|
||||
* Get the users involved in a mail between two entities
|
||||
* @param fullProfile Player profile
|
||||
* @param dialogUsers The participants of the mail
|
||||
* @returns IUserDialogInfo array
|
||||
*/
|
||||
protected getProfilesForMail(fullProfile: IAkiProfile, dialogUsers: IUserDialogInfo[]): IUserDialogInfo[];
|
||||
/**
|
||||
* Get a count of messages with attachments from a particular dialog
|
||||
* @param sessionID Session id
|
||||
@ -49,16 +92,39 @@ export declare class DialogueController {
|
||||
* @returns true if uncollected rewards found
|
||||
*/
|
||||
protected messagesHaveUncollectedRewards(messages: Message[]): boolean;
|
||||
removeDialogue(dialogueID: string, sessionID: string): void;
|
||||
setDialoguePin(dialogueID: string, shouldPin: boolean, sessionID: string): void;
|
||||
setRead(dialogueIDs: string[], sessionID: string): void;
|
||||
/**
|
||||
* Handle client/mail/dialog/remove
|
||||
* Remove an entire dialog with an entity (trader/user)
|
||||
* @param dialogueId id of the dialog to remove
|
||||
* @param sessionId Player id
|
||||
*/
|
||||
removeDialogue(dialogueId: string, sessionId: string): void;
|
||||
/** Handle client/mail/dialog/pin && Handle client/mail/dialog/unpin */
|
||||
setDialoguePin(dialogueId: string, shouldPin: boolean, sessionId: string): void;
|
||||
/**
|
||||
* Handle client/mail/dialog/read
|
||||
* Set a dialog to be read (no number alert/attachment alert)
|
||||
* @param dialogueIds Dialog ids to set as read
|
||||
* @param sessionId Player profile id
|
||||
*/
|
||||
setRead(dialogueIds: string[], sessionId: string): void;
|
||||
/**
|
||||
* Handle client/mail/dialog/getAllAttachments
|
||||
* Get all uncollected items attached to mail in a particular dialog
|
||||
* @param dialogueID Dialog to get mail attachments from
|
||||
* @param sessionID Session id
|
||||
* @param dialogueId Dialog to get mail attachments from
|
||||
* @param sessionId Session id
|
||||
* @returns
|
||||
*/
|
||||
getAllAttachments(dialogueID: string, sessionID: string): IGetAllAttachmentsResponse;
|
||||
getAllAttachments(dialogueId: string, sessionId: string): IGetAllAttachmentsResponse;
|
||||
/** client/mail/msg/send */
|
||||
sendMessage(sessionId: string, request: ISendMessageRequest): string;
|
||||
/**
|
||||
* Send responses back to player when they communicate with SPT friend on friends list
|
||||
* @param sessionId Session Id
|
||||
* @param request send message request
|
||||
*/
|
||||
protected handleChatWithSPTFriend(sessionId: string, request: ISendMessageRequest): void;
|
||||
protected getSptFriendData(friendId?: string): IUserDialogInfo;
|
||||
/**
|
||||
* Get messages from a specific dialog that have items not expired
|
||||
* @param sessionId Session id
|
||||
|
@ -8,6 +8,7 @@ import { IPmcData } from "../models/eft/common/IPmcData";
|
||||
import { ICheckVersionResponse } from "../models/eft/game/ICheckVersionResponse";
|
||||
import { ICurrentGroupResponse } from "../models/eft/game/ICurrentGroupResponse";
|
||||
import { IGameConfigResponse } from "../models/eft/game/IGameConfigResponse";
|
||||
import { IGameKeepAliveResponse } from "../models/eft/game/IGameKeepAliveResponse";
|
||||
import { IServerDetails } from "../models/eft/game/IServerDetails";
|
||||
import { IAkiProfile } from "../models/eft/profile/IAkiProfile";
|
||||
import { ICoreConfig } from "../models/spt/config/ICoreConfig";
|
||||
@ -17,6 +18,7 @@ import { ILogger } from "../models/spt/utils/ILogger";
|
||||
import { ConfigServer } from "../servers/ConfigServer";
|
||||
import { DatabaseServer } from "../servers/DatabaseServer";
|
||||
import { CustomLocationWaveService } from "../services/CustomLocationWaveService";
|
||||
import { GiftService } from "../services/GiftService";
|
||||
import { LocalisationService } from "../services/LocalisationService";
|
||||
import { OpenZoneService } from "../services/OpenZoneService";
|
||||
import { ProfileFixerService } from "../services/ProfileFixerService";
|
||||
@ -39,14 +41,40 @@ export declare class GameController {
|
||||
protected customLocationWaveService: CustomLocationWaveService;
|
||||
protected openZoneService: OpenZoneService;
|
||||
protected seasonalEventService: SeasonalEventService;
|
||||
protected giftService: GiftService;
|
||||
protected applicationContext: ApplicationContext;
|
||||
protected configServer: ConfigServer;
|
||||
protected os: any;
|
||||
protected httpConfig: IHttpConfig;
|
||||
protected coreConfig: ICoreConfig;
|
||||
protected locationConfig: ILocationConfig;
|
||||
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, encodingUtil: EncodingUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, applicationContext: ApplicationContext, configServer: ConfigServer);
|
||||
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, encodingUtil: EncodingUtil, hideoutHelper: HideoutHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, customLocationWaveService: CustomLocationWaveService, openZoneService: OpenZoneService, seasonalEventService: SeasonalEventService, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
|
||||
/**
|
||||
* Handle client/game/start
|
||||
*/
|
||||
gameStart(_url: string, _info: IEmptyRequestData, sessionID: string, startTimeStampMS: number): void;
|
||||
/** Apply custom limits on bot types as defined in configs/location.json/botTypeLimits */
|
||||
protected adjustMapBotLimits(): void;
|
||||
/**
|
||||
* Handle client/game/config
|
||||
*/
|
||||
getGameConfig(sessionID: string): IGameConfigResponse;
|
||||
/**
|
||||
* Handle client/server/list
|
||||
*/
|
||||
getServer(sessionId: string): IServerDetails[];
|
||||
/**
|
||||
* Handle client/match/group/current
|
||||
*/
|
||||
getCurrentGroup(sessionId: string): ICurrentGroupResponse;
|
||||
/**
|
||||
* Handle client/checkVersion
|
||||
*/
|
||||
getValidGameVersion(sessionId: string): ICheckVersionResponse;
|
||||
/**
|
||||
* Handle client/game/keepalive
|
||||
*/
|
||||
getKeepAlive(sessionId: string): IGameKeepAliveResponse;
|
||||
/**
|
||||
* BSG have two values for shotgun dispersion, we make sure both have the same value
|
||||
*/
|
||||
@ -70,6 +98,11 @@ export declare class GameController {
|
||||
* Make Rogues spawn later to allow for scavs to spawn first instead of rogues filling up all spawn positions
|
||||
*/
|
||||
protected fixRoguesSpawningInstantlyOnLighthouse(): void;
|
||||
/**
|
||||
* Send starting gifts to profile after x days
|
||||
* @param pmcProfile Profile to add gifts to
|
||||
*/
|
||||
protected sendPraporGiftsToNewProfiles(pmcProfile: IPmcData): void;
|
||||
/**
|
||||
* Find and split waves with large numbers of bots into smaller waves - BSG appears to reduce the size of these waves to one bot when they're waiting to spawn for too long
|
||||
*/
|
||||
@ -79,6 +112,10 @@ export declare class GameController {
|
||||
* @param fullProfile Profile to add mod details to
|
||||
*/
|
||||
protected saveActiveModsToProfile(fullProfile: IAkiProfile): void;
|
||||
/**
|
||||
* Check for any missing assorts inside each traders assort.json data, checking against traders qeustassort.json
|
||||
*/
|
||||
protected validateQuestAssortUnlocksExist(): void;
|
||||
/**
|
||||
* Add the logged in players name to PMC name pool
|
||||
* @param pmcProfile
|
||||
@ -93,8 +130,4 @@ export declare class GameController {
|
||||
*/
|
||||
protected adjustLabsRaiderSpawnRate(): void;
|
||||
protected logProfileDetails(fullProfile: IAkiProfile): void;
|
||||
getGameConfig(sessionID: string): IGameConfigResponse;
|
||||
getServer(): IServerDetails[];
|
||||
getCurrentGroup(sessionId: string): ICurrentGroupResponse;
|
||||
getValidGameVersion(): ICheckVersionResponse;
|
||||
}
|
||||
|
@ -12,6 +12,7 @@ import { ILogger } from "../models/spt/utils/ILogger";
|
||||
import { EventOutputHolder } from "../routers/EventOutputHolder";
|
||||
import { LocalisationService } from "../services/LocalisationService";
|
||||
import { PaymentService } from "../services/PaymentService";
|
||||
import { HttpResponseUtil } from "../utils/HttpResponseUtil";
|
||||
import { JsonUtil } from "../utils/JsonUtil";
|
||||
export declare class HealthController {
|
||||
protected logger: ILogger;
|
||||
@ -21,8 +22,9 @@ export declare class HealthController {
|
||||
protected paymentService: PaymentService;
|
||||
protected inventoryHelper: InventoryHelper;
|
||||
protected localisationService: LocalisationService;
|
||||
protected httpResponse: HttpResponseUtil;
|
||||
protected healthHelper: HealthHelper;
|
||||
constructor(logger: ILogger, jsonUtil: JsonUtil, eventOutputHolder: EventOutputHolder, itemHelper: ItemHelper, paymentService: PaymentService, inventoryHelper: InventoryHelper, localisationService: LocalisationService, healthHelper: HealthHelper);
|
||||
constructor(logger: ILogger, jsonUtil: JsonUtil, eventOutputHolder: EventOutputHolder, itemHelper: ItemHelper, paymentService: PaymentService, inventoryHelper: InventoryHelper, localisationService: LocalisationService, httpResponse: HttpResponseUtil, healthHelper: HealthHelper);
|
||||
/**
|
||||
* stores in-raid player health
|
||||
* @param pmcData Player profile
|
||||
@ -40,6 +42,7 @@ export declare class HealthController {
|
||||
*/
|
||||
offraidHeal(pmcData: IPmcData, body: IOffraidHealRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
/**
|
||||
* Handle Eat event
|
||||
* Consume food/water outside of a raid
|
||||
* @param pmcData Player profile
|
||||
* @param body request Object
|
||||
@ -48,6 +51,7 @@ export declare class HealthController {
|
||||
*/
|
||||
offraidEat(pmcData: IPmcData, body: IOffraidEatRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
/**
|
||||
* Handle RestoreHealth event
|
||||
* Occurs on post-raid healing page
|
||||
* @param pmcData player profile
|
||||
* @param healthTreatmentRequest Request data from client
|
||||
|
@ -59,6 +59,7 @@ export declare class HideoutController {
|
||||
protected hideoutConfig: IHideoutConfig;
|
||||
constructor(logger: ILogger, hashUtil: HashUtil, timeUtil: TimeUtil, databaseServer: DatabaseServer, randomUtil: RandomUtil, inventoryHelper: InventoryHelper, saveServer: SaveServer, playerService: PlayerService, presetHelper: PresetHelper, paymentHelper: PaymentHelper, eventOutputHolder: EventOutputHolder, httpResponse: HttpResponseUtil, profileHelper: ProfileHelper, hideoutHelper: HideoutHelper, scavCaseRewardGenerator: ScavCaseRewardGenerator, localisationService: LocalisationService, configServer: ConfigServer, jsonUtil: JsonUtil, fenceService: FenceService);
|
||||
/**
|
||||
* Handle HideoutUpgrade event
|
||||
* Start a hideout area upgrade
|
||||
* @param pmcData Player profile
|
||||
* @param request upgrade start request
|
||||
@ -67,6 +68,7 @@ export declare class HideoutController {
|
||||
*/
|
||||
startUpgrade(pmcData: IPmcData, request: IHideoutUpgradeRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
/**
|
||||
* Handle HideoutUpgradeComplete event
|
||||
* Complete a hideout area upgrade
|
||||
* @param pmcData Player profile
|
||||
* @param request Completed upgrade request
|
||||
@ -84,6 +86,7 @@ export declare class HideoutController {
|
||||
*/
|
||||
putItemsInAreaSlots(pmcData: IPmcData, addItemToHideoutRequest: IHideoutPutItemInRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
/**
|
||||
* Handle HideoutTakeItemsFromAreaSlots event
|
||||
* Remove item from hideout area and place into player inventory
|
||||
* @param pmcData Player profile
|
||||
* @param request Take item out of area request
|
||||
@ -102,6 +105,7 @@ export declare class HideoutController {
|
||||
*/
|
||||
protected removeResourceFromArea(sessionID: string, pmcData: IPmcData, removeResourceRequest: IHideoutTakeItemOutRequestData, output: IItemEventRouterResponse, hideoutArea: HideoutArea): IItemEventRouterResponse;
|
||||
/**
|
||||
* Handle HideoutToggleArea event
|
||||
* Toggle area on/off
|
||||
* @param pmcData Player profile
|
||||
* @param request Toggle area request
|
||||
@ -110,6 +114,7 @@ export declare class HideoutController {
|
||||
*/
|
||||
toggleArea(pmcData: IPmcData, request: IHideoutToggleAreaRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
/**
|
||||
* Handle HideoutSingleProductionStart event
|
||||
* Start production for an item from hideout area
|
||||
* @param pmcData Player profile
|
||||
* @param body Start prodution of single item request
|
||||
@ -118,6 +123,7 @@ export declare class HideoutController {
|
||||
*/
|
||||
singleProductionStart(pmcData: IPmcData, body: IHideoutSingleProductionStartRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
/**
|
||||
* Handle HideoutScavCaseProductionStart event
|
||||
* Handles event after clicking 'start' on the scav case hideout page
|
||||
* @param pmcData player profile
|
||||
* @param body client request object
|
||||
@ -149,6 +155,7 @@ export declare class HideoutController {
|
||||
*/
|
||||
continuousProductionStart(pmcData: IPmcData, request: IHideoutContinuousProductionStartRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
/**
|
||||
* Handle HideoutTakeProduction event
|
||||
* Take completed item out of hideout area and place into player inventory
|
||||
* @param pmcData Player profile
|
||||
* @param request Remove production from area request
|
||||
|
@ -10,6 +10,7 @@ import { IPmcData } from "../models/eft/common/IPmcData";
|
||||
import { Item } from "../models/eft/common/tables/IItem";
|
||||
import { IRegisterPlayerRequestData } from "../models/eft/inRaid/IRegisterPlayerRequestData";
|
||||
import { ISaveProgressRequestData } from "../models/eft/inRaid/ISaveProgressRequestData";
|
||||
import { PlayerRaidEndState } from "../models/enums/PlayerRaidEndState";
|
||||
import { IAirdropConfig } from "../models/spt/config/IAirdropConfig";
|
||||
import { IInRaidConfig } from "../models/spt/config/IInRaidConfig";
|
||||
import { ILogger } from "../models/spt/utils/ILogger";
|
||||
@ -52,6 +53,7 @@ export declare class InraidController {
|
||||
*/
|
||||
addPlayer(sessionID: string, info: IRegisterPlayerRequestData): void;
|
||||
/**
|
||||
* Handle raid/profile/save
|
||||
* Save profile state to disk
|
||||
* Handles pmc/pscav
|
||||
* @param offraidData post-raid request data
|
||||
@ -98,7 +100,7 @@ export declare class InraidController {
|
||||
* @param statusOnExit exit value from offraidData object
|
||||
* @returns true if dead
|
||||
*/
|
||||
protected isPlayerDead(statusOnExit: string): boolean;
|
||||
protected isPlayerDead(statusOnExit: PlayerRaidEndState): boolean;
|
||||
/**
|
||||
* Mark inventory items as FiR if player survived raid, otherwise remove FiR from them
|
||||
* @param offraidData Save Progress Request
|
||||
|
@ -45,6 +45,7 @@ export declare class InsuranceController {
|
||||
*/
|
||||
protected itemShouldBeLost(insuredItem: Item, traderId: string, itemsBeingDeleted: string[]): boolean;
|
||||
/**
|
||||
* Handle Insure event
|
||||
* Add insurance to an item
|
||||
* @param pmcData Player profile
|
||||
* @param body Insurance request
|
||||
@ -53,6 +54,7 @@ export declare class InsuranceController {
|
||||
*/
|
||||
insure(pmcData: IPmcData, body: IInsureRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
/**
|
||||
* Handle client/insurance/items/list/cost
|
||||
* Calculate insurance cost
|
||||
* @param info request object
|
||||
* @param sessionID session id
|
||||
|
@ -4,8 +4,8 @@ import { ItemHelper } from "../helpers/ItemHelper";
|
||||
import { PaymentHelper } from "../helpers/PaymentHelper";
|
||||
import { PresetHelper } from "../helpers/PresetHelper";
|
||||
import { ProfileHelper } from "../helpers/ProfileHelper";
|
||||
import { QuestHelper } from "../helpers/QuestHelper";
|
||||
import { IPmcData } from "../models/eft/common/IPmcData";
|
||||
import { IAddItemRequestData } from "../models/eft/inventory/IAddItemRequestData";
|
||||
import { IInventoryBindRequestData } from "../models/eft/inventory/IInventoryBindRequestData";
|
||||
import { IInventoryCreateMarkerRequestData } from "../models/eft/inventory/IInventoryCreateMarkerRequestData";
|
||||
import { IInventoryDeleteMarkerRequestData } from "../models/eft/inventory/IInventoryDeleteMarkerRequestData";
|
||||
@ -44,6 +44,7 @@ export declare class InventoryController {
|
||||
protected fenceService: FenceService;
|
||||
protected presetHelper: PresetHelper;
|
||||
protected inventoryHelper: InventoryHelper;
|
||||
protected questHelper: QuestHelper;
|
||||
protected ragfairOfferService: RagfairOfferService;
|
||||
protected profileHelper: ProfileHelper;
|
||||
protected paymentHelper: PaymentHelper;
|
||||
@ -51,7 +52,7 @@ export declare class InventoryController {
|
||||
protected lootGenerator: LootGenerator;
|
||||
protected eventOutputHolder: EventOutputHolder;
|
||||
protected httpResponseUtil: HttpResponseUtil;
|
||||
constructor(logger: ILogger, hashUtil: HashUtil, jsonUtil: JsonUtil, itemHelper: ItemHelper, randomUtil: RandomUtil, databaseServer: DatabaseServer, fenceService: FenceService, presetHelper: PresetHelper, inventoryHelper: InventoryHelper, ragfairOfferService: RagfairOfferService, profileHelper: ProfileHelper, paymentHelper: PaymentHelper, localisationService: LocalisationService, lootGenerator: LootGenerator, eventOutputHolder: EventOutputHolder, httpResponseUtil: HttpResponseUtil);
|
||||
constructor(logger: ILogger, hashUtil: HashUtil, jsonUtil: JsonUtil, itemHelper: ItemHelper, randomUtil: RandomUtil, databaseServer: DatabaseServer, fenceService: FenceService, presetHelper: PresetHelper, inventoryHelper: InventoryHelper, questHelper: QuestHelper, ragfairOfferService: RagfairOfferService, profileHelper: ProfileHelper, paymentHelper: PaymentHelper, localisationService: LocalisationService, lootGenerator: LootGenerator, eventOutputHolder: EventOutputHolder, httpResponseUtil: HttpResponseUtil);
|
||||
/**
|
||||
* Move Item
|
||||
* change location of item with parentId and slotId
|
||||
@ -63,6 +64,12 @@ export declare class InventoryController {
|
||||
* @returns IItemEventRouterResponse
|
||||
*/
|
||||
moveItem(pmcData: IPmcData, moveRequest: IInventoryMoveRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
/**
|
||||
* Get a event router response with inventory trader message
|
||||
* @param output Item event router response
|
||||
* @returns Item event router response
|
||||
*/
|
||||
protected getTraderExploitErrorResponse(output: IItemEventRouterResponse): IItemEventRouterResponse;
|
||||
/**
|
||||
* Remove Item from Profile
|
||||
* Deep tree item deletion, also removes items from insurance list
|
||||
@ -93,11 +100,6 @@ export declare class InventoryController {
|
||||
* its used for "reload" if you have weapon in hands and magazine is somewhere else in rig or backpack in equipment
|
||||
*/
|
||||
swapItem(pmcData: IPmcData, body: IInventorySwapRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
/**
|
||||
* Give Item
|
||||
* its used for "add" item like gifts etc.
|
||||
*/
|
||||
addItem(pmcData: IPmcData, body: IAddItemRequestData, output: IItemEventRouterResponse, sessionID: string, callback: any, foundInRaid?: boolean, addUpd?: any): IItemEventRouterResponse;
|
||||
/**
|
||||
* Handles folding of Weapons
|
||||
*/
|
||||
@ -181,6 +183,7 @@ export declare class InventoryController {
|
||||
*/
|
||||
protected sanitiseMapMarkerText(mapNoteText: string): string;
|
||||
/**
|
||||
* Handle OpenRandomLootContainer event
|
||||
* Handle event fired when a container is unpacked (currently only the halloween pumpkin)
|
||||
* @param pmcData Profile data
|
||||
* @param body open loot container request data
|
||||
|
@ -3,9 +3,9 @@ import { LootGenerator } from "../generators/LootGenerator";
|
||||
import { WeightedRandomHelper } from "../helpers/WeightedRandomHelper";
|
||||
import { ILocationBase } from "../models/eft/common/ILocationBase";
|
||||
import { ILocationsGenerateAllResponse } from "../models/eft/common/ILocationsSourceDestinationBase";
|
||||
import { IAirdropLootResult } from "../models/eft/location/IAirdropLootResult";
|
||||
import { AirdropTypeEnum } from "../models/enums/AirdropType";
|
||||
import { IAirdropConfig } from "../models/spt/config/IAirdropConfig";
|
||||
import { LootItem } from "../models/spt/services/LootItem";
|
||||
import { LootRequest } from "../models/spt/services/LootRequest";
|
||||
import { ILogger } from "../models/spt/utils/ILogger";
|
||||
import { ConfigServer } from "../servers/ConfigServer";
|
||||
@ -27,19 +27,33 @@ export declare class LocationController {
|
||||
protected configServer: ConfigServer;
|
||||
protected airdropConfig: IAirdropConfig;
|
||||
constructor(jsonUtil: JsonUtil, hashUtil: HashUtil, weightedRandomHelper: WeightedRandomHelper, logger: ILogger, locationGenerator: LocationGenerator, localisationService: LocalisationService, lootGenerator: LootGenerator, databaseServer: DatabaseServer, timeUtil: TimeUtil, configServer: ConfigServer);
|
||||
get(location: string): ILocationBase;
|
||||
generate(name: string): ILocationBase;
|
||||
/**
|
||||
* Handle client/location/getLocalloot
|
||||
* Get a location (map) with generated loot data
|
||||
* @param location Map to generate loot for
|
||||
* @returns ILocationBase
|
||||
*/
|
||||
get(location: string): ILocationBase;
|
||||
/**
|
||||
* Generate a maps base location without loot
|
||||
* @param name Map name
|
||||
* @returns ILocationBase
|
||||
*/
|
||||
protected generate(name: string): ILocationBase;
|
||||
/**
|
||||
* Handle client/locations
|
||||
* Get all maps base location properties without loot data
|
||||
* @param sessionId Players Id
|
||||
* @returns ILocationsGenerateAllResponse
|
||||
*/
|
||||
generateAll(): ILocationsGenerateAllResponse;
|
||||
generateAll(sessionId: string): ILocationsGenerateAllResponse;
|
||||
/**
|
||||
* Handle client/location/getAirdropLoot
|
||||
* Get loot for an airdop container
|
||||
* Generates it randomly based on config/airdrop.json values
|
||||
* @returns Array of LootItem objects
|
||||
*/
|
||||
getAirdropLoot(): LootItem[];
|
||||
getAirdropLoot(): IAirdropLootResult;
|
||||
/**
|
||||
* Randomly pick a type of airdrop loot using weighted values from config
|
||||
* @returns airdrop type value
|
||||
|
@ -35,15 +35,20 @@ export declare class MatchController {
|
||||
protected botConfig: IBotConfig;
|
||||
constructor(logger: ILogger, saveServer: SaveServer, profileHelper: ProfileHelper, matchLocationService: MatchLocationService, traderHelper: TraderHelper, botLootCacheService: BotLootCacheService, configServer: ConfigServer, profileSnapshotService: ProfileSnapshotService, botGenerationCacheService: BotGenerationCacheService, applicationContext: ApplicationContext);
|
||||
getEnabled(): boolean;
|
||||
/** Handle raid/profile/list */
|
||||
getProfile(info: IGetProfileRequestData): IPmcData[];
|
||||
/** Handle client/match/group/create */
|
||||
createGroup(sessionID: string, info: ICreateGroupRequestData): any;
|
||||
/** Handle client/match/group/delete */
|
||||
deleteGroup(info: any): void;
|
||||
/** Handle match/group/start_game */
|
||||
joinMatch(info: IJoinMatchRequestData, sessionId: string): IJoinMatchResult;
|
||||
/** Handle client/match/group/status */
|
||||
getGroupStatus(info: IGetGroupStatusRequestData): any;
|
||||
/**
|
||||
* Handle /client/raid/configuration
|
||||
* @param request
|
||||
* @param sessionID
|
||||
* @param request Raid config request
|
||||
* @param sessionID Session id
|
||||
*/
|
||||
startOfflineRaid(request: IGetRaidConfigurationRequestData, sessionID: string): void;
|
||||
/**
|
||||
@ -52,9 +57,10 @@ export declare class MatchController {
|
||||
* @returns bot difficulty
|
||||
*/
|
||||
protected convertDifficultyDropdownIntoBotDifficulty(botDifficulty: string): string;
|
||||
/** Handle client/match/offline/end */
|
||||
endOfflineRaid(info: IEndOfflineRaidRequestData, sessionId: string): void;
|
||||
/**
|
||||
* Is extract by car
|
||||
* Was extract by car
|
||||
* @param extractName name of extract
|
||||
* @returns true if car extract
|
||||
*/
|
||||
|
@ -18,5 +18,6 @@ export declare class NotifierController {
|
||||
*/
|
||||
notifyAsync(sessionID: string): Promise<unknown>;
|
||||
getServer(sessionID: string): string;
|
||||
/** Handle client/notifier/channel/create */
|
||||
getChannel(sessionID: string): INotifierChannel;
|
||||
}
|
||||
|
@ -12,7 +12,10 @@ export declare class PresetBuildController {
|
||||
protected itemHelper: ItemHelper;
|
||||
protected saveServer: SaveServer;
|
||||
constructor(hashUtil: HashUtil, eventOutputHolder: EventOutputHolder, itemHelper: ItemHelper, saveServer: SaveServer);
|
||||
/** Handle client/handbook/builds/my/list */
|
||||
getUserBuilds(sessionID: string): WeaponBuild[];
|
||||
/** Handle SaveBuild event */
|
||||
saveBuild(pmcData: IPmcData, body: IPresetBuildActionRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
/** Handle RemoveBuild event*/
|
||||
removeBuild(pmcData: IPmcData, body: IPresetBuildActionRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
}
|
||||
|
@ -14,40 +14,88 @@ import { IProfileCreateRequestData } from "../models/eft/profile/IProfileCreateR
|
||||
import { ISearchFriendRequestData } from "../models/eft/profile/ISearchFriendRequestData";
|
||||
import { ISearchFriendResponse } from "../models/eft/profile/ISearchFriendResponse";
|
||||
import { IValidateNicknameRequestData } from "../models/eft/profile/IValidateNicknameRequestData";
|
||||
import { ILogger } from "../models/spt/utils/ILogger";
|
||||
import { EventOutputHolder } from "../routers/EventOutputHolder";
|
||||
import { DatabaseServer } from "../servers/DatabaseServer";
|
||||
import { SaveServer } from "../servers/SaveServer";
|
||||
import { LocalisationService } from "../services/LocalisationService";
|
||||
import { MailSendService } from "../services/MailSendService";
|
||||
import { ProfileFixerService } from "../services/ProfileFixerService";
|
||||
import { HashUtil } from "../utils/HashUtil";
|
||||
import { TimeUtil } from "../utils/TimeUtil";
|
||||
export declare class ProfileController {
|
||||
protected logger: ILogger;
|
||||
protected hashUtil: HashUtil;
|
||||
protected timeUtil: TimeUtil;
|
||||
protected saveServer: SaveServer;
|
||||
protected databaseServer: DatabaseServer;
|
||||
protected itemHelper: ItemHelper;
|
||||
protected profileFixerService: ProfileFixerService;
|
||||
protected localisationService: LocalisationService;
|
||||
protected mailSendService: MailSendService;
|
||||
protected playerScavGenerator: PlayerScavGenerator;
|
||||
protected eventOutputHolder: EventOutputHolder;
|
||||
protected traderHelper: TraderHelper;
|
||||
protected dialogueHelper: DialogueHelper;
|
||||
protected questHelper: QuestHelper;
|
||||
protected profileHelper: ProfileHelper;
|
||||
constructor(hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, databaseServer: DatabaseServer, itemHelper: ItemHelper, profileFixerService: ProfileFixerService, playerScavGenerator: PlayerScavGenerator, eventOutputHolder: EventOutputHolder, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, questHelper: QuestHelper, profileHelper: ProfileHelper);
|
||||
constructor(logger: ILogger, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, databaseServer: DatabaseServer, itemHelper: ItemHelper, profileFixerService: ProfileFixerService, localisationService: LocalisationService, mailSendService: MailSendService, playerScavGenerator: PlayerScavGenerator, eventOutputHolder: EventOutputHolder, traderHelper: TraderHelper, dialogueHelper: DialogueHelper, questHelper: QuestHelper, profileHelper: ProfileHelper);
|
||||
/**
|
||||
* Handle /launcher/profiles
|
||||
*/
|
||||
getMiniProfiles(): IMiniProfile[];
|
||||
/**
|
||||
* Handle launcher/profile/info
|
||||
*/
|
||||
getMiniProfile(sessionID: string): any;
|
||||
/**
|
||||
* Handle client/game/profile/list
|
||||
*/
|
||||
getCompleteProfile(sessionID: string): IPmcData[];
|
||||
/**
|
||||
* Handle client/game/profile/create
|
||||
*/
|
||||
createProfile(info: IProfileCreateRequestData, sessionID: string): void;
|
||||
/**
|
||||
* Delete a profile
|
||||
* @param sessionID Id of profile to delete
|
||||
*/
|
||||
protected deleteProfileBySessionId(sessionID: string): void;
|
||||
/**
|
||||
* Iterate over all quests in player profile, inspect rewards for the quests current state (accepted/completed)
|
||||
* and send rewards to them in mail
|
||||
* @param profileDetails Player profile
|
||||
* @param sessionID Session id
|
||||
* @param response Event router response
|
||||
*/
|
||||
protected givePlayerStartingQuestRewards(profileDetails: IAkiProfile, sessionID: string, response: IItemEventRouterResponse): void;
|
||||
/**
|
||||
* For each trader reset their state to what a level 1 player would see
|
||||
* @param sessionID Session id of profile to reset
|
||||
*/
|
||||
protected resetAllTradersInProfile(sessionID: string): void;
|
||||
/**
|
||||
* Generate a player scav object
|
||||
* pmc profile MUST exist first before pscav can be generated
|
||||
* PMC profile MUST exist first before pscav can be generated
|
||||
* @param sessionID
|
||||
* @returns IPmcData object
|
||||
*/
|
||||
generatePlayerScav(sessionID: string): IPmcData;
|
||||
/**
|
||||
* Handle client/game/profile/nickname/validate
|
||||
*/
|
||||
validateNickname(info: IValidateNicknameRequestData, sessionID: string): string;
|
||||
/**
|
||||
* Handle client/game/profile/nickname/change event
|
||||
* Client allows player to adjust their profile name
|
||||
*/
|
||||
changeNickname(info: IProfileChangeNicknameRequestData, sessionID: string): string;
|
||||
/**
|
||||
* Handle client/game/profile/voice/change event
|
||||
*/
|
||||
changeVoice(info: IProfileChangeVoiceRequestData, sessionID: string): void;
|
||||
/**
|
||||
* Handle client/game/profile/search
|
||||
*/
|
||||
getFriends(info: ISearchFriendRequestData, sessionID: string): ISearchFriendResponse[];
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ import { ItemHelper } from "../helpers/ItemHelper";
|
||||
import { ProfileHelper } from "../helpers/ProfileHelper";
|
||||
import { QuestConditionHelper } from "../helpers/QuestConditionHelper";
|
||||
import { QuestHelper } from "../helpers/QuestHelper";
|
||||
import { TraderHelper } from "../helpers/TraderHelper";
|
||||
import { IPmcData } from "../models/eft/common/IPmcData";
|
||||
import { Item } from "../models/eft/common/tables/IItem";
|
||||
import { AvailableForConditions, IQuest, Reward } from "../models/eft/common/tables/IQuest";
|
||||
@ -18,7 +19,9 @@ import { ConfigServer } from "../servers/ConfigServer";
|
||||
import { DatabaseServer } from "../servers/DatabaseServer";
|
||||
import { LocaleService } from "../services/LocaleService";
|
||||
import { LocalisationService } from "../services/LocalisationService";
|
||||
import { MailSendService } from "../services/MailSendService";
|
||||
import { PlayerService } from "../services/PlayerService";
|
||||
import { SeasonalEventService } from "../services/SeasonalEventService";
|
||||
import { HttpResponseUtil } from "../utils/HttpResponseUtil";
|
||||
import { TimeUtil } from "../utils/TimeUtil";
|
||||
export declare class QuestController {
|
||||
@ -29,22 +32,39 @@ export declare class QuestController {
|
||||
protected databaseServer: DatabaseServer;
|
||||
protected itemHelper: ItemHelper;
|
||||
protected dialogueHelper: DialogueHelper;
|
||||
protected mailSendService: MailSendService;
|
||||
protected profileHelper: ProfileHelper;
|
||||
protected traderHelper: TraderHelper;
|
||||
protected questHelper: QuestHelper;
|
||||
protected questConditionHelper: QuestConditionHelper;
|
||||
protected playerService: PlayerService;
|
||||
protected localeService: LocaleService;
|
||||
protected seasonalEventService: SeasonalEventService;
|
||||
protected localisationService: LocalisationService;
|
||||
protected configServer: ConfigServer;
|
||||
protected questConfig: IQuestConfig;
|
||||
constructor(logger: ILogger, timeUtil: TimeUtil, httpResponseUtil: HttpResponseUtil, eventOutputHolder: EventOutputHolder, databaseServer: DatabaseServer, itemHelper: ItemHelper, dialogueHelper: DialogueHelper, profileHelper: ProfileHelper, questHelper: QuestHelper, questConditionHelper: QuestConditionHelper, playerService: PlayerService, localeService: LocaleService, localisationService: LocalisationService, configServer: ConfigServer);
|
||||
constructor(logger: ILogger, timeUtil: TimeUtil, httpResponseUtil: HttpResponseUtil, eventOutputHolder: EventOutputHolder, databaseServer: DatabaseServer, itemHelper: ItemHelper, dialogueHelper: DialogueHelper, mailSendService: MailSendService, profileHelper: ProfileHelper, traderHelper: TraderHelper, questHelper: QuestHelper, questConditionHelper: QuestConditionHelper, playerService: PlayerService, localeService: LocaleService, seasonalEventService: SeasonalEventService, localisationService: LocalisationService, configServer: ConfigServer);
|
||||
/**
|
||||
* Handle client/quest/list
|
||||
* Get all quests visible to player
|
||||
* Exclude quests with incomplete preconditions (level/loyalty)
|
||||
* @param sessionID session id
|
||||
* @returns array of IQuest
|
||||
*/
|
||||
getClientQuests(sessionID: string): IQuest[];
|
||||
/**
|
||||
* Does a provided quest have a level requirement equal to or below defined level
|
||||
* @param quest Quest to check
|
||||
* @param playerLevel level of player to test against quest
|
||||
* @returns true if quest can be seen/accepted by player of defined level
|
||||
*/
|
||||
protected playerLevelFulfillsQuestRequrement(quest: IQuest, playerLevel: number): boolean;
|
||||
/**
|
||||
* Should a quest be shown to the player in trader quest screen
|
||||
* @param questId Quest to check
|
||||
* @returns true = show to player
|
||||
*/
|
||||
protected showEventQuestToPlayer(questId: string): boolean;
|
||||
/**
|
||||
* Is the quest for the opposite side the player is on
|
||||
* @param playerSide Player side (usec/bear)
|
||||
@ -52,6 +72,7 @@ export declare class QuestController {
|
||||
*/
|
||||
protected questIsForOtherSide(playerSide: string, questId: string): boolean;
|
||||
/**
|
||||
* Handle QuestAccept event
|
||||
* Handle the client accepting a quest and starting it
|
||||
* Send starting rewards if any to player and
|
||||
* Send start notification if any to player
|
||||
@ -79,9 +100,10 @@ export declare class QuestController {
|
||||
*/
|
||||
protected getRepeatableQuestFromProfile(pmcData: IPmcData, acceptedQuest: IAcceptQuestRequestData): IRepeatableQuest;
|
||||
/**
|
||||
* Handle QuestComplete event
|
||||
* Update completed quest in profile
|
||||
* Add newly unlocked quests to profile
|
||||
* Also recalculate thier level due to exp rewards
|
||||
* Also recalculate their level due to exp rewards
|
||||
* @param pmcData Player profile
|
||||
* @param body Completed quest request
|
||||
* @param sessionID Session id
|
||||
@ -110,7 +132,7 @@ export declare class QuestController {
|
||||
*/
|
||||
protected getQuestsFailedByCompletingQuest(completedQuestId: string): IQuest[];
|
||||
/**
|
||||
* Fail the quests provided
|
||||
* Fail the provided quests
|
||||
* Update quest in profile, otherwise add fresh quest object with failed status
|
||||
* @param sessionID session id
|
||||
* @param pmcData player profile
|
||||
@ -118,7 +140,7 @@ export declare class QuestController {
|
||||
*/
|
||||
protected failQuests(sessionID: string, pmcData: IPmcData, questsToFail: IQuest[]): void;
|
||||
/**
|
||||
*
|
||||
* Handle QuestHandover event
|
||||
* @param pmcData Player profile
|
||||
* @param handoverQuestRequest handover item request
|
||||
* @param sessionID Session id
|
||||
|
@ -120,7 +120,7 @@ export declare class RagfairController {
|
||||
/**
|
||||
* List item(s) on flea for sale
|
||||
* @param pmcData Player profile
|
||||
* @param offerRequest Flea list creatio offer
|
||||
* @param offerRequest Flea list creation offer
|
||||
* @param sessionID Session id
|
||||
* @returns IItemEventRouterResponse
|
||||
*/
|
||||
|
@ -23,6 +23,7 @@ export declare class RepairController {
|
||||
protected repairConfig: IRepairConfig;
|
||||
constructor(logger: ILogger, eventOutputHolder: EventOutputHolder, databaseServer: DatabaseServer, questHelper: QuestHelper, traderHelper: TraderHelper, paymentService: PaymentService, repairHelper: RepairHelper, repairService: RepairService);
|
||||
/**
|
||||
* Handle TraderRepair event
|
||||
* Repair with trader
|
||||
* @param sessionID session id
|
||||
* @param body endpoint request data
|
||||
@ -31,6 +32,7 @@ export declare class RepairController {
|
||||
*/
|
||||
traderRepair(sessionID: string, body: ITraderRepairActionDataRequest, pmcData: IPmcData): IItemEventRouterResponse;
|
||||
/**
|
||||
* Handle Repair event
|
||||
* Repair with repair kit
|
||||
* @param sessionID session id
|
||||
* @param body endpoint request data
|
||||
|
@ -77,7 +77,7 @@ export declare class RepeatableQuestController {
|
||||
protected questConfig: IQuestConfig;
|
||||
constructor(timeUtil: TimeUtil, logger: ILogger, randomUtil: RandomUtil, httpResponse: HttpResponseUtil, mathUtil: MathUtil, jsonUtil: JsonUtil, databaseServer: DatabaseServer, itemHelper: ItemHelper, presetHelper: PresetHelper, profileHelper: ProfileHelper, profileFixerService: ProfileFixerService, handbookHelper: HandbookHelper, ragfairServerHelper: RagfairServerHelper, eventOutputHolder: EventOutputHolder, localisationService: LocalisationService, paymentService: PaymentService, objectId: ObjectId, itemFilterService: ItemFilterService, configServer: ConfigServer);
|
||||
/**
|
||||
* This is the method reached by the /client/repeatalbeQuests/activityPeriods endpoint
|
||||
* Handle client/repeatalbeQuests/activityPeriods
|
||||
* Returns an array of objects in the format of repeatable quests to the client.
|
||||
* repeatableQuestObject = {
|
||||
* id: Unique Id,
|
||||
@ -113,7 +113,7 @@ export declare class RepeatableQuestController {
|
||||
* This method is called by GetClientRepeatableQuests and creates one element of quest type format (see assets/database/templates/repeatableQuests.json).
|
||||
* It randomly draws a quest type (currently Elimination, Completion or Exploration) as well as a trader who is providing the quest
|
||||
*/
|
||||
generateRepeatableQuest(pmcLevel: number, pmcTraderInfo: Record<string, TraderInfo>, questTypePool: IQuestTypePool, repeatableConfig: IRepeatableQuestConfig): IRepeatableQuest;
|
||||
protected generateRepeatableQuest(pmcLevel: number, pmcTraderInfo: Record<string, TraderInfo>, questTypePool: IQuestTypePool, repeatableConfig: IRepeatableQuestConfig): IRepeatableQuest;
|
||||
/**
|
||||
* Just for debug reasons. Draws dailies a random assort of dailies extracted from dumps
|
||||
*/
|
||||
@ -128,7 +128,7 @@ export declare class RepeatableQuestController {
|
||||
* @returns {object} a object which contains the base elements for repeatable quests of the requests type
|
||||
* (needs to be filled with reward and conditions by called to make a valid quest)
|
||||
*/
|
||||
generateRepeatableTemplate(type: string, traderId: string, side: string): IRepeatableQuest;
|
||||
protected generateRepeatableTemplate(type: string, traderId: string, side: string): IRepeatableQuest;
|
||||
/**
|
||||
* Generates a valid Exploration quest
|
||||
*
|
||||
@ -138,7 +138,7 @@ export declare class RepeatableQuestController {
|
||||
* @param {object} repeatableConfig The configuration for the repeatably kind (daily, weekly) as configured in QuestConfig for the requestd quest
|
||||
* @returns {object} object of quest type format for "Exploration" (see assets/database/templates/repeatableQuests.json)
|
||||
*/
|
||||
generateExplorationQuest(pmcLevel: number, traderId: string, questTypePool: IQuestTypePool, repeatableConfig: IRepeatableQuestConfig): IExploration;
|
||||
protected generateExplorationQuest(pmcLevel: number, traderId: string, questTypePool: IQuestTypePool, repeatableConfig: IRepeatableQuestConfig): IExploration;
|
||||
/**
|
||||
* Generates a valid Completion quest
|
||||
*
|
||||
@ -147,7 +147,7 @@ export declare class RepeatableQuestController {
|
||||
* @param {object} repeatableConfig The configuration for the repeatably kind (daily, weekly) as configured in QuestConfig for the requestd quest
|
||||
* @returns {object} object of quest type format for "Completion" (see assets/database/templates/repeatableQuests.json)
|
||||
*/
|
||||
generateCompletionQuest(pmcLevel: number, traderId: string, repeatableConfig: IRepeatableQuestConfig): ICompletion;
|
||||
protected generateCompletionQuest(pmcLevel: number, traderId: string, repeatableConfig: IRepeatableQuestConfig): ICompletion;
|
||||
/**
|
||||
* Generates a valid Elimination quest
|
||||
*
|
||||
@ -157,7 +157,7 @@ export declare class RepeatableQuestController {
|
||||
* @param {object} repeatableConfig The configuration for the repeatably kind (daily, weekly) as configured in QuestConfig for the requestd quest
|
||||
* @returns {object} object of quest type format for "Elimination" (see assets/database/templates/repeatableQuests.json)
|
||||
*/
|
||||
generateEliminationQuest(pmcLevel: number, traderId: string, questTypePool: IQuestTypePool, repeatableConfig: IRepeatableQuestConfig): IElimination;
|
||||
protected generateEliminationQuest(pmcLevel: number, traderId: string, questTypePool: IQuestTypePool, repeatableConfig: IRepeatableQuestConfig): IElimination;
|
||||
/**
|
||||
* Get the relevant elimination config based on the current players PMC level
|
||||
* @param pmcLevel Level of PMC character
|
||||
@ -178,7 +178,7 @@ export declare class RepeatableQuestController {
|
||||
* @param {string} exit The exit name to generate the condition for
|
||||
* @returns {object} Exit condition
|
||||
*/
|
||||
generateExplorationExitCondition(exit: Exit): IExplorationCondition;
|
||||
protected generateExplorationExitCondition(exit: Exit): IExplorationCondition;
|
||||
/**
|
||||
* A repeatable quest, besides some more or less static components, exists of reward and condition (see assets/database/templates/repeatableQuests.json)
|
||||
* This is a helper method for GenerateCompletionQuest to create a completion condition (of which a completion quest theoretically can have many)
|
||||
@ -187,7 +187,7 @@ export declare class RepeatableQuestController {
|
||||
* @param {integer} value amount of items of this specific type to request
|
||||
* @returns {object} object of "Completion"-condition
|
||||
*/
|
||||
generateCompletionAvailableForFinish(targetItemId: string, value: number): ICompletionAvailableFor;
|
||||
protected generateCompletionAvailableForFinish(targetItemId: string, value: number): ICompletionAvailableFor;
|
||||
/**
|
||||
* A repeatable quest, besides some more or less static components, exists of reward and condition (see assets/database/templates/repeatableQuests.json)
|
||||
* This is a helper method for GenerateEliminationQuest to create a location condition.
|
||||
@ -195,7 +195,7 @@ export declare class RepeatableQuestController {
|
||||
* @param {string} location the location on which to fulfill the elimination quest
|
||||
* @returns {object} object of "Elimination"-location-subcondition
|
||||
*/
|
||||
generateEliminationLocation(location: string[]): IEliminationCondition;
|
||||
protected generateEliminationLocation(location: string[]): IEliminationCondition;
|
||||
/**
|
||||
* A repeatable quest, besides some more or less static components, exists of reward and condition (see assets/database/templates/repeatableQuests.json)
|
||||
* This is a helper method for GenerateEliminationQuest to create a kill condition.
|
||||
@ -205,7 +205,7 @@ export declare class RepeatableQuestController {
|
||||
* @param {number} distance distance from which to kill (currently only >= supported)
|
||||
* @returns {object} object of "Elimination"-kill-subcondition
|
||||
*/
|
||||
generateEliminationCondition(target: string, bodyPart: string[], distance: number): IEliminationCondition;
|
||||
protected generateEliminationCondition(target: string, bodyPart: string[], distance: number): IEliminationCondition;
|
||||
/**
|
||||
* Used to create a quest pool during each cycle of repeatable quest generation. The pool will be subsequently
|
||||
* narrowed down during quest generation to avoid duplicate quests. Like duplicate extractions or elimination quests
|
||||
@ -214,7 +214,7 @@ export declare class RepeatableQuestController {
|
||||
* @param pmcLevel level of pmc generating quest pool
|
||||
* @returns IQuestTypePool
|
||||
*/
|
||||
generateQuestPool(repeatableConfig: IRepeatableQuestConfig, pmcLevel: number): IQuestTypePool;
|
||||
protected generateQuestPool(repeatableConfig: IRepeatableQuestConfig, pmcLevel: number): IQuestTypePool;
|
||||
/**
|
||||
* Generate the reward for a mission. A reward can consist of
|
||||
* - Experience
|
||||
@ -235,7 +235,7 @@ export declare class RepeatableQuestController {
|
||||
* @param {object} repeatableConfig The configuration for the repeatably kind (daily, weekly) as configured in QuestConfig for the requestd quest
|
||||
* @returns {object} object of "Reward"-type that can be given for a repeatable mission
|
||||
*/
|
||||
generateReward(pmcLevel: number, difficulty: number, traderId: string, repeatableConfig: IRepeatableQuestConfig): IRewards;
|
||||
protected generateReward(pmcLevel: number, difficulty: number, traderId: string, repeatableConfig: IRepeatableQuestConfig): IRewards;
|
||||
/**
|
||||
* Helper to create a reward item structured as required by the client
|
||||
*
|
||||
@ -244,9 +244,12 @@ export declare class RepeatableQuestController {
|
||||
* @param {integer} index all rewards will be appended to a list, for unkown reasons the client wants the index
|
||||
* @returns {object} object of "Reward"-item-type
|
||||
*/
|
||||
generateRewardItem(tpl: string, value: number, index: number, preset?: any): IReward;
|
||||
protected generateRewardItem(tpl: string, value: number, index: number, preset?: any): IReward;
|
||||
debugLogRepeatableQuestIds(pmcData: IPmcData): void;
|
||||
probabilityObjectArray<K, V>(configArrayInput: ProbabilityObject<K, V>[]): ProbabilityObjectArray<K, V>;
|
||||
protected probabilityObjectArray<K, V>(configArrayInput: ProbabilityObject<K, V>[]): ProbabilityObjectArray<K, V>;
|
||||
/**
|
||||
* Handle RepeatableQuestChange event
|
||||
*/
|
||||
changeRepeatableQuest(pmcData: IPmcData, body: IRepeatableQuestChangeRequest, sessionID: string): IItemEventRouterResponse;
|
||||
/**
|
||||
* Picks rewardable items from items.json. This means they need to fit into the inventory and they shouldn't be keys (debatable)
|
||||
@ -260,5 +263,5 @@ export declare class RepeatableQuestController {
|
||||
* @param {string} tpl template id of item to check
|
||||
* @returns boolean: true if item is valid reward
|
||||
*/
|
||||
isValidRewardItem(tpl: string, repeatableQuestConfig: IRepeatableQuestConfig): boolean;
|
||||
protected isValidRewardItem(tpl: string, repeatableQuestConfig: IRepeatableQuestConfig): boolean;
|
||||
}
|
||||
|
@ -27,7 +27,9 @@ declare class TradeController {
|
||||
protected ragfairConfig: IRagfairConfig;
|
||||
protected traderConfig: ITraderConfig;
|
||||
constructor(logger: ILogger, eventOutputHolder: EventOutputHolder, tradeHelper: TradeHelper, itemHelper: ItemHelper, profileHelper: ProfileHelper, ragfairServer: RagfairServer, httpResponse: HttpResponseUtil, localisationService: LocalisationService, configServer: ConfigServer);
|
||||
/** Handle TradingConfirm event */
|
||||
confirmTrading(pmcData: IPmcData, request: IProcessBaseTradeRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
/** Handle RagFairBuyOffer event */
|
||||
confirmRagfairTrading(pmcData: IPmcData, body: IProcessRagfairTradeRequestData, sessionID: string): IItemEventRouterResponse;
|
||||
protected confirmTradingInternal(pmcData: IPmcData, body: IProcessBaseTradeRequestData, sessionID: string, foundInRaid?: boolean, upd?: Upd): IItemEventRouterResponse;
|
||||
}
|
||||
|
@ -35,6 +35,7 @@ export declare class TraderController {
|
||||
*/
|
||||
update(): boolean;
|
||||
/**
|
||||
* Handle client/trading/api/traderSettings
|
||||
* Return an array of all traders
|
||||
* @param sessionID Session id
|
||||
* @returns array if ITraderBase objects
|
||||
@ -47,6 +48,8 @@ export declare class TraderController {
|
||||
* @returns 1,-1 or 0
|
||||
*/
|
||||
protected sortByTraderId(traderA: ITraderBase, traderB: ITraderBase): number;
|
||||
/** Handle client/trading/api/getTrader */
|
||||
getTrader(sessionID: string, traderID: string): ITraderBase;
|
||||
/** Handle client/trading/api/getTraderAssort */
|
||||
getAssort(sessionId: string, traderId: string): ITraderAssort;
|
||||
}
|
||||
|
@ -9,6 +9,7 @@ export declare class WeatherController {
|
||||
protected configServer: ConfigServer;
|
||||
protected weatherConfig: IWeatherConfig;
|
||||
constructor(weatherGenerator: WeatherGenerator, logger: ILogger, configServer: ConfigServer);
|
||||
/** Handle client/weather */
|
||||
generate(): IWeatherData;
|
||||
/**
|
||||
* Get the current in-raid time (MUST HAVE PLAYER LOGGED INTO CLIENT TO WORK)
|
||||
|
@ -5,6 +5,8 @@ import { IWishlistActionData } from "../models/eft/wishlist/IWishlistActionData"
|
||||
export declare class WishlistController {
|
||||
protected eventOutputHolder: EventOutputHolder;
|
||||
constructor(eventOutputHolder: EventOutputHolder);
|
||||
/** Handle AddToWishList */
|
||||
addToWishList(pmcData: IPmcData, body: IWishlistActionData, sessionID: string): IItemEventRouterResponse;
|
||||
/** Handle RemoveFromWishList event */
|
||||
removeFromWishList(pmcData: IPmcData, body: IWishlistActionData, sessionID: string): IItemEventRouterResponse;
|
||||
}
|
||||
|
@ -2,10 +2,10 @@ import { IPmcData } from "../models/eft/common/IPmcData";
|
||||
import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse";
|
||||
import { IAkiProfile } from "../models/eft/profile/IAkiProfile";
|
||||
export declare class Router {
|
||||
private handledRoutes;
|
||||
protected handledRoutes: HandledRoute[];
|
||||
getTopLevelRoute(): string;
|
||||
protected getHandledRoutes(): HandledRoute[];
|
||||
private getInternalHandledRoutes;
|
||||
protected getInternalHandledRoutes(): HandledRoute[];
|
||||
canHandle(url: string, partialMatch?: boolean): boolean;
|
||||
}
|
||||
export declare class StaticRouter extends Router {
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { MinMax } from "../models/common/MinMax";
|
||||
import { IRandomisedBotLevelResult } from "../models/eft/bot/IRandomisedBotLevelResult";
|
||||
import { ExpTable } from "../models/eft/common/IGlobals";
|
||||
import { IExpTable } from "../models/eft/common/IGlobals";
|
||||
import { IBotBase } from "../models/eft/common/tables/IBotBase";
|
||||
import { BotGenerationDetails } from "../models/spt/bots/BotGenerationDetails";
|
||||
import { ILogger } from "../models/spt/utils/ILogger";
|
||||
@ -25,5 +25,5 @@ export declare class BotLevelGenerator {
|
||||
* @param relativeDeltaMax max delta above player level to go
|
||||
* @returns highest level possible for bot
|
||||
*/
|
||||
protected getHighestRelativeBotLevel(playerLevel: number, relativeDeltaMax: number, levelDetails: MinMax, expTable: ExpTable[]): number;
|
||||
protected getHighestRelativeBotLevel(playerLevel: number, relativeDeltaMax: number, levelDetails: MinMax, expTable: IExpTable[]): number;
|
||||
}
|
||||
|
@ -40,6 +40,12 @@ export declare class BotLootGenerator {
|
||||
* @param botLevel Level of bot
|
||||
*/
|
||||
generateLoot(sessionId: string, botJsonTemplate: IBotType, isPmc: boolean, botRole: string, botInventory: PmcInventory, botLevel: number): void;
|
||||
/**
|
||||
* Force healing items onto bot to ensure they can heal in-raid
|
||||
* @param botInventory Inventory to add items to
|
||||
* @param botRole Role of bot (sptBear/sptUsec)
|
||||
*/
|
||||
protected addForcedMedicalItemsToPmcSecure(botInventory: PmcInventory, botRole: string): void;
|
||||
protected getRandomisedCount(min: number, max: number, nValue: number): number;
|
||||
/**
|
||||
* Take random items from a pool and add to an inventory until totalItemCount or totalValueLimit is reached
|
||||
@ -64,6 +70,7 @@ export declare class BotLootGenerator {
|
||||
*/
|
||||
protected addLooseWeaponsToInventorySlot(sessionId: string, botInventory: PmcInventory, equipmentSlot: string, templateInventory: Inventory, modChances: ModsChances, botRole: string, isPmc: boolean, botLevel: number): void;
|
||||
/**
|
||||
* @deprecated replaced by getRandomItemFromPoolByRole()
|
||||
* Get a random item from the pool parameter using the biasedRandomNumber system
|
||||
* @param pool pool of items to pick an item from
|
||||
* @param isPmc is the bot being created a pmc
|
||||
@ -71,11 +78,25 @@ export declare class BotLootGenerator {
|
||||
*/
|
||||
protected getRandomItemFromPool(pool: ITemplateItem[], isPmc: boolean): ITemplateItem;
|
||||
/**
|
||||
* Get a random item from the pool parameter using the biasedRandomNumber system
|
||||
* @param pool pool of items to pick an item from
|
||||
* @param isPmc is the bot being created a pmc
|
||||
* @returns ITemplateItem object
|
||||
*/
|
||||
protected getRandomItemFromPoolByRole(pool: ITemplateItem[], botRole: string): ITemplateItem;
|
||||
/**
|
||||
* @deprecated Replaced by getBotLootNValueByRole()
|
||||
* Get the loot nvalue from botconfig
|
||||
* @param isPmc if true the pmc nvalue is returned
|
||||
* @returns nvalue as number
|
||||
*/
|
||||
protected getBotLootNValue(isPmc: boolean): number;
|
||||
/**
|
||||
* Get the loot nvalue from botconfig
|
||||
* @param botRole role of bot e.g. assault/sptBear
|
||||
* @returns nvalue as number
|
||||
*/
|
||||
protected getBotLootNValueByRole(botRole: string): number;
|
||||
/**
|
||||
* Update item limit array to contain items that have a limit
|
||||
* All values are set to 0
|
||||
|
@ -67,6 +67,13 @@ export declare class BotWeaponGenerator {
|
||||
* @returns GenerateWeaponResult object
|
||||
*/
|
||||
generateWeaponByTpl(sessionId: string, weaponTpl: string, equipmentSlot: string, botTemplateInventory: Inventory, weaponParentId: string, modChances: ModsChances, botRole: string, isPmc: boolean, botLevel: number): GenerateWeaponResult;
|
||||
/**
|
||||
* Insert a cartridge into a weapon
|
||||
* @param weaponWithModsArray Weapon and mods
|
||||
* @param ammoTpl Cartridge to add to weapon
|
||||
* @param desiredSlotId name of slot, e.g. patron_in_weapon
|
||||
*/
|
||||
protected addCartridgeToChamber(weaponWithModsArray: Item[], ammoTpl: string, desiredSlotId: string): void;
|
||||
/**
|
||||
* Create array with weapon base as only element and
|
||||
* add additional properties based on weapon type
|
||||
|
@ -6,15 +6,17 @@ import { ILogger } from "../models/spt/utils/ILogger";
|
||||
import { ConfigServer } from "../servers/ConfigServer";
|
||||
import { DatabaseServer } from "../servers/DatabaseServer";
|
||||
import { ItemFilterService } from "../services/ItemFilterService";
|
||||
import { SeasonalEventService } from "../services/SeasonalEventService";
|
||||
export declare class FenceBaseAssortGenerator {
|
||||
protected logger: ILogger;
|
||||
protected databaseServer: DatabaseServer;
|
||||
protected handbookHelper: HandbookHelper;
|
||||
protected itemHelper: ItemHelper;
|
||||
protected itemFilterService: ItemFilterService;
|
||||
protected seasonalEventService: SeasonalEventService;
|
||||
protected configServer: ConfigServer;
|
||||
protected traderConfig: ITraderConfig;
|
||||
constructor(logger: ILogger, databaseServer: DatabaseServer, handbookHelper: HandbookHelper, itemHelper: ItemHelper, itemFilterService: ItemFilterService, configServer: ConfigServer);
|
||||
constructor(logger: ILogger, databaseServer: DatabaseServer, handbookHelper: HandbookHelper, itemHelper: ItemHelper, itemFilterService: ItemFilterService, seasonalEventService: SeasonalEventService, configServer: ConfigServer);
|
||||
/**
|
||||
* Create base fence assorts dynamically and store in db
|
||||
*/
|
||||
|
@ -2,7 +2,7 @@ import { ContainerHelper } from "../helpers/ContainerHelper";
|
||||
import { ItemHelper } from "../helpers/ItemHelper";
|
||||
import { PresetHelper } from "../helpers/PresetHelper";
|
||||
import { RagfairServerHelper } from "../helpers/RagfairServerHelper";
|
||||
import { ILooseLoot, Spawnpoint, SpawnpointsForced, SpawnpointTemplate } from "../models/eft/common/ILooseLoot";
|
||||
import { ILooseLoot, Spawnpoint, SpawnpointTemplate, SpawnpointsForced } from "../models/eft/common/ILooseLoot";
|
||||
import { Item } from "../models/eft/common/tables/IItem";
|
||||
import { IStaticAmmoDetails, IStaticContainerProps, IStaticForcedProps, IStaticLootDetails } from "../models/eft/common/tables/ILootBase";
|
||||
import { ILocationConfig } from "../models/spt/config/ILocationConfig";
|
||||
@ -13,7 +13,7 @@ import { SeasonalEventService } from "../services/SeasonalEventService";
|
||||
import { JsonUtil } from "../utils/JsonUtil";
|
||||
import { MathUtil } from "../utils/MathUtil";
|
||||
import { ObjectId } from "../utils/ObjectId";
|
||||
import { RandomUtil } from "../utils/RandomUtil";
|
||||
import { ProbabilityObjectArray, RandomUtil } from "../utils/RandomUtil";
|
||||
export interface IContainerItem {
|
||||
items: Item[];
|
||||
width: number;
|
||||
@ -35,15 +35,38 @@ export declare class LocationGenerator {
|
||||
protected locationConfig: ILocationConfig;
|
||||
constructor(logger: ILogger, jsonUtil: JsonUtil, objectId: ObjectId, randomUtil: RandomUtil, ragfairServerHelper: RagfairServerHelper, itemHelper: ItemHelper, mathUtil: MathUtil, seasonalEventService: SeasonalEventService, containerHelper: ContainerHelper, presetHelper: PresetHelper, localisationService: LocalisationService, configServer: ConfigServer);
|
||||
/**
|
||||
* Choose loot to put into a static container
|
||||
* @param containerIn
|
||||
* @param staticForced
|
||||
* @param staticLootDist
|
||||
* @param staticAmmoDist
|
||||
* Choose loot to put into a static container based on weighting
|
||||
* Handle forced items + seasonal item removal when not in season
|
||||
* @param staticContainer The container itself we will add loot to
|
||||
* @param staticForced Loot we need to force into the container
|
||||
* @param staticLootDist staticLoot.json
|
||||
* @param staticAmmoDist staticAmmo.json
|
||||
* @param locationName Name of the map to generate static loot for
|
||||
* @returns IStaticContainerProps
|
||||
*/
|
||||
generateContainerLoot(containerIn: IStaticContainerProps, staticForced: IStaticForcedProps[], staticLootDist: Record<string, IStaticLootDetails>, staticAmmoDist: Record<string, IStaticAmmoDetails[]>, locationName: string): IStaticContainerProps;
|
||||
generateContainerLoot(staticContainer: IStaticContainerProps, staticForced: IStaticForcedProps[], staticLootDist: Record<string, IStaticLootDetails>, staticAmmoDist: Record<string, IStaticAmmoDetails[]>, locationName: string): IStaticContainerProps;
|
||||
/**
|
||||
* Get a 2d grid of a containers item slots
|
||||
* @param containerTpl Tpl id of the container
|
||||
* @returns number[][]
|
||||
*/
|
||||
protected getContainerMapping(containerTpl: string): number[][];
|
||||
/**
|
||||
* Look up a containers itemcountDistribution data and choose an item count based on the found weights
|
||||
* @param containerTypeId Container to get item count for
|
||||
* @param staticLootDist staticLoot.json
|
||||
* @param locationName Map name (to get per-map multiplier for from config)
|
||||
* @returns item count
|
||||
*/
|
||||
protected getWeightedCountOfContainerItems(containerTypeId: string, staticLootDist: Record<string, IStaticLootDetails>, locationName: string): number;
|
||||
/**
|
||||
* Get all possible loot items that can be placed into a container
|
||||
* Do not add seasonal items if found + current date is inside seasonal event
|
||||
* @param containerTypeId Contianer to get possible loot for
|
||||
* @param staticLootDist staticLoot.json
|
||||
* @returns ProbabilityObjectArray of item tpls + probabilty
|
||||
*/
|
||||
protected getPossibleLootItemsForContainer(containerTypeId: string, staticLootDist: Record<string, IStaticLootDetails>): ProbabilityObjectArray<string, number>;
|
||||
protected getLooseLootMultiplerForLocation(location: string): number;
|
||||
protected getStaticLootMultiplerForLocation(location: string): number;
|
||||
/**
|
||||
|
@ -2,7 +2,7 @@ import { InventoryHelper } from "../helpers/InventoryHelper";
|
||||
import { ItemHelper } from "../helpers/ItemHelper";
|
||||
import { PresetHelper } from "../helpers/PresetHelper";
|
||||
import { WeightedRandomHelper } from "../helpers/WeightedRandomHelper";
|
||||
import { Preset } from "../models/eft/common/IGlobals";
|
||||
import { IPreset } from "../models/eft/common/IGlobals";
|
||||
import { ITemplateItem } from "../models/eft/common/tables/ITemplateItem";
|
||||
import { AddItem } from "../models/eft/inventory/IAddItemRequestData";
|
||||
import { ISealedAirdropContainerSettings, RewardDetails } from "../models/spt/config/IInventoryConfig";
|
||||
@ -71,7 +71,7 @@ export declare class LootGenerator {
|
||||
* @param result array to add found preset to
|
||||
* @returns true if preset was valid and added to pool
|
||||
*/
|
||||
protected findAndAddRandomPresetToLoot(globalDefaultPresets: [string, Preset][], itemTypeCounts: Record<string, {
|
||||
protected findAndAddRandomPresetToLoot(globalDefaultPresets: [string, IPreset][], itemTypeCounts: Record<string, {
|
||||
current: number;
|
||||
max: number;
|
||||
}>, itemBlacklist: string[], result: LootItem[]): boolean;
|
||||
@ -95,7 +95,7 @@ export declare class LootGenerator {
|
||||
* @param chosenWeaponPreset The weapon preset given to player as reward
|
||||
* @returns AddItem array
|
||||
*/
|
||||
protected getSealedContainerWeaponModRewards(containerSettings: ISealedAirdropContainerSettings, linkedItemsToWeapon: ITemplateItem[], chosenWeaponPreset: Preset): AddItem[];
|
||||
protected getSealedContainerWeaponModRewards(containerSettings: ISealedAirdropContainerSettings, linkedItemsToWeapon: ITemplateItem[], chosenWeaponPreset: IPreset): AddItem[];
|
||||
/**
|
||||
* Handle event-related loot containers - currently just the halloween jack-o-lanterns that give food rewards
|
||||
* @param rewardContainerDetails
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { ItemHelper } from "../helpers/ItemHelper";
|
||||
import { Preset } from "../models/eft/common/IGlobals";
|
||||
import { IPreset } from "../models/eft/common/IGlobals";
|
||||
import { Item } from "../models/eft/common/tables/IItem";
|
||||
import { IRagfairConfig } from "../models/spt/config/IRagfairConfig";
|
||||
import { ConfigServer } from "../servers/ConfigServer";
|
||||
@ -36,12 +36,12 @@ export declare class RagfairAssortGenerator {
|
||||
* Get presets from globals.json
|
||||
* @returns Preset object array
|
||||
*/
|
||||
protected getPresets(): Preset[];
|
||||
protected getPresets(): IPreset[];
|
||||
/**
|
||||
* Get default presets from globals.json
|
||||
* @returns Preset object array
|
||||
*/
|
||||
protected getDefaultPresets(): Preset[];
|
||||
protected getDefaultPresets(): IPreset[];
|
||||
/**
|
||||
* Create a base assort item and return it with populated values + 999999 stack count + unlimited count = true
|
||||
* @param tplId tplid to add to item
|
||||
|
@ -48,7 +48,30 @@ export declare class RagfairOfferGenerator {
|
||||
price: number;
|
||||
}[];
|
||||
constructor(logger: ILogger, jsonUtil: JsonUtil, hashUtil: HashUtil, randomUtil: RandomUtil, timeUtil: TimeUtil, databaseServer: DatabaseServer, ragfairServerHelper: RagfairServerHelper, handbookHelper: HandbookHelper, saveServer: SaveServer, presetHelper: PresetHelper, ragfairAssortGenerator: RagfairAssortGenerator, ragfairOfferService: RagfairOfferService, ragfairPriceService: RagfairPriceService, localisationService: LocalisationService, paymentHelper: PaymentHelper, ragfairCategoriesService: RagfairCategoriesService, fenceService: FenceService, itemHelper: ItemHelper, configServer: ConfigServer);
|
||||
createOffer(userID: string, time: number, items: Item[], barterScheme: IBarterScheme[], loyalLevel: number, price: number, sellInOnePiece?: boolean): IRagfairOffer;
|
||||
/**
|
||||
* Create a flea offer and store it in the Ragfair server offers array
|
||||
* @param userID Owner of the offer
|
||||
* @param time Time offer is listed at
|
||||
* @param items Items in the offer
|
||||
* @param barterScheme Cost of item (currency or barter)
|
||||
* @param loyalLevel Loyalty level needed to buy item
|
||||
* @param price Price of offer
|
||||
* @param sellInOnePiece Set StackObjectsCount to 1
|
||||
* @returns IRagfairOffer
|
||||
*/
|
||||
createFleaOffer(userID: string, time: number, items: Item[], barterScheme: IBarterScheme[], loyalLevel: number, price: number, sellInOnePiece?: boolean): IRagfairOffer;
|
||||
/**
|
||||
* Create an offer object ready to send to ragfairOfferService.addOffer()
|
||||
* @param userID Owner of the offer
|
||||
* @param time Time offer is listed at
|
||||
* @param items Items in the offer
|
||||
* @param barterScheme Cost of item (currency or barter)
|
||||
* @param loyalLevel Loyalty level needed to buy item
|
||||
* @param price Price of offer
|
||||
* @param sellInOnePiece Set StackObjectsCount to 1
|
||||
* @returns IRagfairOffer
|
||||
*/
|
||||
protected createOffer(userID: string, time: number, items: Item[], barterScheme: IBarterScheme[], loyalLevel: number, price: number, sellInOnePiece?: boolean): IRagfairOffer;
|
||||
/**
|
||||
* Calculate the offer price that's listed on the flea listing
|
||||
* @param offerRequirements barter requirements for offer
|
||||
@ -69,8 +92,18 @@ export declare class RagfairOfferGenerator {
|
||||
* @returns count of roubles
|
||||
*/
|
||||
protected calculateRoublePrice(currencyCount: number, currencyType: string): number;
|
||||
protected getTraderId(userID: string): string;
|
||||
protected getRating(userID: string): number;
|
||||
/**
|
||||
* Check userId, if its a player, return their pmc _id, otherwise return userId parameter
|
||||
* @param userId Users Id to check
|
||||
* @returns Users Id
|
||||
*/
|
||||
protected getTraderId(userId: string): string;
|
||||
/**
|
||||
* Get a flea trading rating for the passed in user
|
||||
* @param userId User to get flea rating of
|
||||
* @returns Flea rating value
|
||||
*/
|
||||
protected getRating(userId: string): number;
|
||||
/**
|
||||
* Is the offers user rating growing
|
||||
* @param userID user to check rating of
|
||||
@ -89,13 +122,20 @@ export declare class RagfairOfferGenerator {
|
||||
* @param expiredOffers optional, expired offers to regenerate
|
||||
*/
|
||||
generateDynamicOffers(expiredOffers?: Item[]): Promise<void>;
|
||||
/**
|
||||
*
|
||||
* @param assortItemIndex Index of assort item
|
||||
* @param assortItemsToProcess Item array containing index
|
||||
* @param expiredOffers Currently expired offers on flea
|
||||
* @param config Ragfair dynamic config
|
||||
*/
|
||||
protected createOffersForItems(assortItemIndex: string, assortItemsToProcess: Item[], expiredOffers: Item[], config: Dynamic): Promise<void>;
|
||||
/**
|
||||
* Create one flea offer for a specific item
|
||||
* @param items Item to create offer for
|
||||
* @param isPreset Is item a weapon preset
|
||||
* @param itemDetails raw db item details
|
||||
* @returns
|
||||
* @returns Item array
|
||||
*/
|
||||
protected createSingleOfferForItem(items: Item[], isPreset: boolean, itemDetails: [boolean, ITemplateItem]): Promise<Item[]>;
|
||||
/**
|
||||
@ -142,7 +182,7 @@ 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
|
||||
* @returns barter scheme
|
||||
* @returns Barter scheme
|
||||
*/
|
||||
protected createBarterRequirement(offerItems: Item[]): IBarterScheme[];
|
||||
/**
|
||||
@ -159,16 +199,4 @@ export declare class RagfairOfferGenerator {
|
||||
* @returns Barter scheme for offer
|
||||
*/
|
||||
protected createCurrencyRequirement(offerItems: Item[]): IBarterScheme[];
|
||||
/**
|
||||
* Create a flea offer and store it in the Ragfair server offers array
|
||||
* @param userID owner of the offer
|
||||
* @param time time offer is put up
|
||||
* @param items items in the offer
|
||||
* @param barterScheme cost of item (currency or barter)
|
||||
* @param loyalLevel Loyalty level needed to buy item
|
||||
* @param price price of offer
|
||||
* @param sellInOnePiece
|
||||
* @returns Ragfair offer
|
||||
*/
|
||||
createFleaOffer(userID: string, time: number, items: Item[], barterScheme: IBarterScheme[], loyalLevel: number, price: number, sellInOnePiece?: boolean): IRagfairOffer;
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
import { ItemHelper } from "../helpers/ItemHelper";
|
||||
import { Product } from "../models/eft/common/tables/IBotBase";
|
||||
import { Upd } from "../models/eft/common/tables/IItem";
|
||||
import { ITemplateItem } from "../models/eft/common/tables/ITemplateItem";
|
||||
import { IHideoutScavCase } from "../models/eft/hideout/IHideoutScavCase";
|
||||
import { IScavCaseConfig } from "../models/spt/config/IScavCaseConfig";
|
||||
@ -78,7 +79,7 @@ export declare class ScavCaseRewardGenerator {
|
||||
protected addStackCountToAmmoAndMoney(item: ITemplateItem, resultItem: {
|
||||
_id: string;
|
||||
_tpl: string;
|
||||
upd: any;
|
||||
upd: Upd;
|
||||
}, rarity: string): void;
|
||||
/**
|
||||
*
|
||||
|
@ -16,6 +16,11 @@ export declare class WeatherGenerator {
|
||||
protected configServer: ConfigServer;
|
||||
protected weatherConfig: IWeatherConfig;
|
||||
constructor(weightedRandomHelper: WeightedRandomHelper, logger: ILogger, randomUtil: RandomUtil, timeUtil: TimeUtil, applicationContext: ApplicationContext, configServer: ConfigServer);
|
||||
/**
|
||||
* Get current + raid datetime and format into correct BSG format and return
|
||||
* @param data Weather data
|
||||
* @returns IWeatherData
|
||||
*/
|
||||
calculateGameTime(data: IWeatherData): IWeatherData;
|
||||
/**
|
||||
* Get server uptime seconds multiplied by a multiplier and add to current time as seconds
|
||||
@ -33,7 +38,7 @@ export declare class WeatherGenerator {
|
||||
/**
|
||||
* Get current time formatted to fit BSGs requirement
|
||||
* @param date date to format into bsg style
|
||||
* @returns
|
||||
* @returns Time formatted in BSG format
|
||||
*/
|
||||
protected getBSGFormattedTime(date: Date): string;
|
||||
/**
|
||||
|
@ -14,12 +14,12 @@ export declare class AssortHelper {
|
||||
protected questHelper: QuestHelper;
|
||||
constructor(logger: ILogger, itemHelper: ItemHelper, databaseServer: DatabaseServer, localisationService: LocalisationService, questHelper: QuestHelper);
|
||||
/**
|
||||
* Remove assorts from a trader that have not been unlocked yet
|
||||
* @param pmcProfile player profile
|
||||
* @param traderId traders id the assort belongs to
|
||||
* Remove assorts from a trader that have not been unlocked yet (via player completing corrisponding quest)
|
||||
* @param pmcProfile Player profile
|
||||
* @param traderId Traders id the assort belongs to
|
||||
* @param traderAssorts All assort items from same trader
|
||||
* @param mergedQuestAssorts Dict of quest assort to quest id unlocks for all traders
|
||||
* @returns assort items minus locked quest assorts
|
||||
* @param mergedQuestAssorts Dict of quest assort to quest id unlocks for all traders (key = started/failed/complete)
|
||||
* @returns Assort items minus locked quest assorts
|
||||
*/
|
||||
stripLockedQuestAssort(pmcProfile: IPmcData, traderId: string, traderAssorts: ITraderAssort, mergedQuestAssorts: Record<string, Record<string, string>>, flea?: boolean): ITraderAssort;
|
||||
/**
|
||||
|
@ -3,6 +3,7 @@ import { Inventory } from "../models/eft/common/tables/IBotBase";
|
||||
import { Item } from "../models/eft/common/tables/IItem";
|
||||
import { Grid, ITemplateItem } from "../models/eft/common/tables/ITemplateItem";
|
||||
import { EquipmentSlots } from "../models/enums/EquipmentSlots";
|
||||
import { ItemAddedResult } from "../models/enums/ItemAddedResult";
|
||||
import { ILogger } from "../models/spt/utils/ILogger";
|
||||
import { DatabaseServer } from "../servers/DatabaseServer";
|
||||
import { LocalisationService } from "../services/LocalisationService";
|
||||
@ -72,7 +73,7 @@ export declare class BotWeaponGeneratorHelper {
|
||||
* @param inventory Inventory to add item+children into
|
||||
* @returns a `boolean` indicating item was added
|
||||
*/
|
||||
addItemWithChildrenToEquipmentSlot(equipmentSlots: string[], parentId: string, parentTpl: string, itemWithChildren: Item[], inventory: Inventory): boolean;
|
||||
addItemWithChildrenToEquipmentSlot(equipmentSlots: string[], parentId: string, parentTpl: string, itemWithChildren: Item[], inventory: Inventory): ItemAddedResult;
|
||||
/**
|
||||
* is the provided item allowed inside a container
|
||||
* @param slot location item wants to be placed in
|
||||
|
@ -6,7 +6,35 @@ export declare class FindSlotResult {
|
||||
constructor(success?: boolean, x?: any, y?: any, rotation?: boolean);
|
||||
}
|
||||
export declare class ContainerHelper {
|
||||
protected locateSlot(container2D: number[][], containerX: number, containerY: number, x: number, y: number, itemW: number, itemH: number): boolean;
|
||||
/**
|
||||
* Finds a slot for an item in a given 2D container map
|
||||
* @param container2D Array of container with slots filled/free
|
||||
* @param itemWidth Width of item
|
||||
* @param itemHeight Height of item
|
||||
* @returns Location to place item in container
|
||||
*/
|
||||
findSlotForItem(container2D: number[][], itemWidth: number, itemHeight: number): FindSlotResult;
|
||||
fillContainerMapWithItem(container2D: number[][], x: number, y: number, itemW: number, itemH: number, rotate: boolean): any;
|
||||
/**
|
||||
* Find a slot inside a container an item can be placed in
|
||||
* @param container2D Container to find space in
|
||||
* @param containerX Container x size
|
||||
* @param containerY Container y size
|
||||
* @param x ???
|
||||
* @param y ???
|
||||
* @param itemW Items width
|
||||
* @param itemH Items height
|
||||
* @returns True - slot found
|
||||
*/
|
||||
protected locateSlot(container2D: number[][], containerX: number, containerY: number, x: number, y: number, itemW: number, itemH: number): boolean;
|
||||
/**
|
||||
* Find a free slot for an item to be placed at
|
||||
* @param container2D Container to palce item in
|
||||
* @param x Container x size
|
||||
* @param y Container y size
|
||||
* @param itemW Items width
|
||||
* @param itemH Items height
|
||||
* @param rotate is item rotated
|
||||
* @returns Location to place item
|
||||
*/
|
||||
fillContainerMapWithItem(container2D: number[][], x: number, y: number, itemW: number, itemH: number, rotate: boolean): number[][];
|
||||
}
|
||||
|
@ -20,21 +20,13 @@ export declare class DialogueHelper {
|
||||
protected itemHelper: ItemHelper;
|
||||
constructor(logger: ILogger, hashUtil: HashUtil, saveServer: SaveServer, databaseServer: DatabaseServer, notifierHelper: NotifierHelper, notificationSendHelper: NotificationSendHelper, localisationService: LocalisationService, itemHelper: ItemHelper);
|
||||
/**
|
||||
* Create basic message context template
|
||||
* @param templateId
|
||||
* @param messageType
|
||||
* @param maxStoreTime
|
||||
* @returns
|
||||
* @deprecated Use MailSendService.sendMessage() or helpers
|
||||
*/
|
||||
createMessageContext(templateId: string, messageType: MessageType, maxStoreTime: number): MessageContent;
|
||||
createMessageContext(templateId: string, messageType: MessageType, maxStoreTime?: any): MessageContent;
|
||||
/**
|
||||
* Add a templated message to the dialogue.
|
||||
* @param dialogueID
|
||||
* @param messageContent
|
||||
* @param sessionID
|
||||
* @param rewards
|
||||
* @deprecated Use MailSendService.sendMessage() or helpers
|
||||
*/
|
||||
addDialogueMessage(dialogueID: string, messageContent: MessageContent, sessionID: string, rewards?: Item[]): void;
|
||||
addDialogueMessage(dialogueID: string, messageContent: MessageContent, sessionID: string, rewards?: Item[], messageType?: MessageType): void;
|
||||
/**
|
||||
* Get the preview contents of the last message in a dialogue.
|
||||
* @param dialogue
|
||||
|
@ -9,9 +9,35 @@ export declare class DurabilityLimitsHelper {
|
||||
protected configServer: ConfigServer;
|
||||
protected botConfig: IBotConfig;
|
||||
constructor(randomUtil: RandomUtil, botHelper: BotHelper, configServer: ConfigServer);
|
||||
/**
|
||||
* Get max durability for a weapon based on bot role
|
||||
* @param itemTemplate UNUSED - Item to get durability for
|
||||
* @param botRole Role of bot to get max durability for
|
||||
* @returns Max durability of weapon
|
||||
*/
|
||||
getRandomizedMaxWeaponDurability(itemTemplate: ITemplateItem, botRole: string): number;
|
||||
/**
|
||||
* Get max durability value for armor based on bot role
|
||||
* @param itemTemplate Item to get max durability for
|
||||
* @param botRole Role of bot to get max durability for
|
||||
* @returns max durability
|
||||
*/
|
||||
getRandomizedMaxArmorDurability(itemTemplate: ITemplateItem, botRole: string): number;
|
||||
/**
|
||||
* Get randomised current weapon durability by bot role
|
||||
* @param itemTemplate Unused - Item to get current durability of
|
||||
* @param botRole Role of bot to get current durability for
|
||||
* @param maxDurability Max durability of weapon
|
||||
* @returns Current weapon durability
|
||||
*/
|
||||
getRandomizedWeaponDurability(itemTemplate: ITemplateItem, botRole: string, maxDurability: number): number;
|
||||
/**
|
||||
* Get randomised current armor durability by bot role
|
||||
* @param itemTemplate Unused - Item to get current durability of
|
||||
* @param botRole Role of bot to get current durability for
|
||||
* @param maxDurability Max durability of armor
|
||||
* @returns Current armor durability
|
||||
*/
|
||||
getRandomizedArmorDurability(itemTemplate: ITemplateItem, botRole: string, maxDurability: number): number;
|
||||
protected generateMaxWeaponDurability(botRole: string): number;
|
||||
protected generateMaxPmcArmorDurability(itemMaxDurability: number): number;
|
||||
|
@ -14,6 +14,9 @@ export declare class HandbookHelper {
|
||||
protected lookupCacheGenerated: boolean;
|
||||
protected handbookPriceCache: LookupCollection;
|
||||
constructor(databaseServer: DatabaseServer);
|
||||
/**
|
||||
* Create an in-memory cache of all items with associated handbook price in handbookPriceCache class
|
||||
*/
|
||||
hydrateLookup(): void;
|
||||
/**
|
||||
* Get price from internal cache, if cache empty look up price directly in handbook (expensive)
|
||||
@ -23,18 +26,23 @@ export declare class HandbookHelper {
|
||||
*/
|
||||
getTemplatePrice(tpl: string): number;
|
||||
/**
|
||||
* all items in template with the given parent category
|
||||
* @param x
|
||||
* Get all items in template with the given parent category
|
||||
* @param parentId
|
||||
* @returns string array
|
||||
*/
|
||||
templatesWithParent(x: string): string[];
|
||||
templatesWithParent(parentId: string): string[];
|
||||
/**
|
||||
* Does category exist in handbook cache
|
||||
* @param category
|
||||
* @returns true if exists in cache
|
||||
*/
|
||||
isCategory(category: string): boolean;
|
||||
childrenCategories(x: string): string[];
|
||||
/**
|
||||
* Get all items associated with a categories parent
|
||||
* @param categoryParent
|
||||
* @returns string array
|
||||
*/
|
||||
childrenCategories(categoryParent: string): string[];
|
||||
/**
|
||||
* Convert non-roubles into roubles
|
||||
* @param nonRoubleCurrencyCount Currency count to convert
|
||||
|
@ -53,5 +53,7 @@ export declare class HealthHelper {
|
||||
* @param duration How long the effect has left in seconds (-1 by default, no duration).
|
||||
*/
|
||||
protected addEffect(pmcData: IPmcData, effectBodyPart: string, effectType: string, duration?: number): void;
|
||||
protected isEmpty(map: any): boolean;
|
||||
protected isEmpty(map: Record<string, {
|
||||
Time: number;
|
||||
}>): boolean;
|
||||
}
|
||||
|
@ -52,6 +52,11 @@ export declare class HideoutHelper {
|
||||
* with all the constants.
|
||||
*/
|
||||
initProduction(recipeId: string, productionTime: number): Production;
|
||||
/**
|
||||
* Is the provided object a Production type
|
||||
* @param productive
|
||||
* @returns
|
||||
*/
|
||||
isProductionType(productive: Productive): productive is Production;
|
||||
applyPlayerUpgradesBonuses(pmcData: IPmcData, bonus: StageBonus): void;
|
||||
/**
|
||||
@ -189,16 +194,16 @@ export declare class HideoutHelper {
|
||||
* @returns coin slot count
|
||||
*/
|
||||
protected getBTCSlots(pmcData: IPmcData): number;
|
||||
/**
|
||||
* Get a count of bitcoins player miner can hold
|
||||
*/
|
||||
protected getManagementSkillsSlots(): number;
|
||||
/**
|
||||
* Does profile have elite hideout management skill
|
||||
* @param pmcData Profile to look at
|
||||
* @returns True if profile has skill
|
||||
*/
|
||||
protected hasEliteHideoutManagementSkill(pmcData: IPmcData): boolean;
|
||||
/**
|
||||
* Get a count of bitcoins player miner can hold
|
||||
*/
|
||||
protected getBitcoinMinerContainerSlotSize(): number;
|
||||
/**
|
||||
* Get the hideout management skill from player profile
|
||||
* @param pmcData Profile to look at
|
||||
@ -206,12 +211,6 @@ export declare class HideoutHelper {
|
||||
*/
|
||||
protected getHideoutManagementSkill(pmcData: IPmcData): Common;
|
||||
protected getHideoutManagementConsumptionBonus(pmcData: IPmcData): number;
|
||||
/**
|
||||
* Get the crafting skill details from player profile
|
||||
* @param pmcData Player profile
|
||||
* @returns crafting skill, null if not found
|
||||
*/
|
||||
protected getCraftingSkill(pmcData: IPmcData): Common;
|
||||
/**
|
||||
* Adjust craft time based on crafting skill level found in player profile
|
||||
* @param pmcData Player profile
|
||||
|
@ -16,8 +16,17 @@ export declare class HttpServerHelper {
|
||||
};
|
||||
constructor(configServer: ConfigServer);
|
||||
getMimeText(key: string): string;
|
||||
/**
|
||||
* Combine ip and port into url
|
||||
* @returns url
|
||||
*/
|
||||
buildUrl(): string;
|
||||
/**
|
||||
* Prepend http to the url:port
|
||||
* @returns URI
|
||||
*/
|
||||
getBackendUrl(): string;
|
||||
/** Get websocket url + port */
|
||||
getWebsocketUrl(): string;
|
||||
sendTextJson(resp: any, output: any): void;
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { IPmcData } from "../models/eft/common/IPmcData";
|
||||
import { Victim } from "../models/eft/common/tables/IBotBase";
|
||||
import { Quest, TraderInfo, Victim } from "../models/eft/common/tables/IBotBase";
|
||||
import { Item } from "../models/eft/common/tables/IItem";
|
||||
import { ISaveProgressRequestData } from "../models/eft/inRaid/ISaveProgressRequestData";
|
||||
import { ILostOnDeathConfig } from "../models/spt/config/ILostOnDeathConfig";
|
||||
@ -13,6 +13,7 @@ import { JsonUtil } from "../utils/JsonUtil";
|
||||
import { InventoryHelper } from "./InventoryHelper";
|
||||
import { ItemHelper } from "./ItemHelper";
|
||||
import { PaymentHelper } from "./PaymentHelper";
|
||||
import { QuestHelper } from "./QuestHelper";
|
||||
export declare class InRaidHelper {
|
||||
protected logger: ILogger;
|
||||
protected saveServer: SaveServer;
|
||||
@ -20,14 +21,15 @@ export declare class InRaidHelper {
|
||||
protected itemHelper: ItemHelper;
|
||||
protected databaseServer: DatabaseServer;
|
||||
protected inventoryHelper: InventoryHelper;
|
||||
protected questHelper: QuestHelper;
|
||||
protected paymentHelper: PaymentHelper;
|
||||
protected localisationService: LocalisationService;
|
||||
protected profileFixerService: ProfileFixerService;
|
||||
protected configServer: ConfigServer;
|
||||
protected lostOnDeathConfig: ILostOnDeathConfig;
|
||||
constructor(logger: ILogger, saveServer: SaveServer, jsonUtil: JsonUtil, itemHelper: ItemHelper, databaseServer: DatabaseServer, inventoryHelper: InventoryHelper, paymentHelper: PaymentHelper, localisationService: LocalisationService, profileFixerService: ProfileFixerService, configServer: ConfigServer);
|
||||
constructor(logger: ILogger, saveServer: SaveServer, jsonUtil: JsonUtil, itemHelper: ItemHelper, databaseServer: DatabaseServer, inventoryHelper: InventoryHelper, questHelper: QuestHelper, paymentHelper: PaymentHelper, localisationService: LocalisationService, profileFixerService: ProfileFixerService, configServer: ConfigServer);
|
||||
/**
|
||||
* Should quest items be removed from player inventory on death
|
||||
* Lookup quest item loss from lostOnDeath config
|
||||
* @returns True if items should be removed from inventory
|
||||
*/
|
||||
removeQuestItemsOnDeath(): boolean;
|
||||
@ -61,12 +63,22 @@ export declare class InRaidHelper {
|
||||
* @returns Reset profile object
|
||||
*/
|
||||
updateProfileBaseStats(profileData: IPmcData, saveProgressRequest: ISaveProgressRequestData, sessionID: string): IPmcData;
|
||||
/**
|
||||
* Look for quests not are now status = fail that were not failed pre-raid and run the failQuest() function
|
||||
* @param sessionId Player id
|
||||
* @param pmcData Player profile
|
||||
* @param preRaidQuests Quests prior to starting raid
|
||||
* @param postRaidQuests Quest after raid
|
||||
*/
|
||||
protected processFailedQuests(sessionId: string, pmcData: IPmcData, preRaidQuests: Quest[], postRaidQuests: Quest[]): void;
|
||||
protected resetSkillPointsEarnedDuringRaid(profile: IPmcData): void;
|
||||
/**
|
||||
* Take body part effects from client profile and apply to server profile
|
||||
* @param saveProgressRequest post-raid request
|
||||
* @param profileData player profile on server
|
||||
*/
|
||||
protected transferPostRaidLimbEffectsToProfile(saveProgressRequest: ISaveProgressRequestData, profileData: IPmcData): void;
|
||||
protected applyTraderStandingAdjustments(preRaid: Record<string, TraderInfo>, postRaid: Record<string, TraderInfo>): void;
|
||||
/**
|
||||
* Some maps have one-time-use keys (e.g. Labs
|
||||
* Remove the relevant key from an inventory based on the post-raid request data passed in
|
||||
|
@ -53,11 +53,12 @@ export declare class InventoryHelper {
|
||||
* @param callback Code to execute later (function)
|
||||
* @param foundInRaid Will results added to inventory be set as found in raid
|
||||
* @param addUpd Additional upd properties for items being added to inventory
|
||||
* @param useSortingTable Allow items to go into sorting table when stash has no space
|
||||
* @returns IItemEventRouterResponse
|
||||
*/
|
||||
addItem(pmcData: IPmcData, request: IAddItemRequestData, output: IItemEventRouterResponse, sessionID: string, callback: {
|
||||
(): void;
|
||||
}, foundInRaid?: boolean, addUpd?: any): IItemEventRouterResponse;
|
||||
}, foundInRaid?: boolean, addUpd?: any, useSortingTable?: boolean): IItemEventRouterResponse;
|
||||
/**
|
||||
* Add ammo to ammo boxes
|
||||
* @param itemToAdd Item to check is ammo box
|
||||
@ -75,7 +76,7 @@ export declare class InventoryHelper {
|
||||
*/
|
||||
protected splitStackIntoSmallerStacks(assortItems: Item[], requestItem: AddItem, result: IAddItemTempObject[]): void;
|
||||
/**
|
||||
* Remove item from player inventory
|
||||
* Remove item from player inventory + insured items array
|
||||
* @param pmcData Profile to remove item from
|
||||
* @param itemId Items id to remove
|
||||
* @param sessionID Session id
|
||||
@ -99,8 +100,9 @@ export declare class InventoryHelper {
|
||||
* @returns Array
|
||||
*/
|
||||
protected getStashSlotMap(pmcData: IPmcData, sessionID: string): number[][];
|
||||
protected getStashType(sessionID: string): string;
|
||||
protected getSortingTableSlotMap(pmcData: IPmcData): number[][];
|
||||
protected getPlayerStashSize(sessionID: string): Record<number, number>;
|
||||
protected getStashType(sessionID: string): string;
|
||||
/**
|
||||
* Internal helper function to transfer an item from one profile to another.
|
||||
* fromProfileData: Profile of the source.
|
||||
|
@ -51,11 +51,22 @@ declare class ItemHelper {
|
||||
/**
|
||||
* Returns the item price based on the handbook or as a fallback from the prices.json if the item is not
|
||||
* found in the handbook. If the price can't be found at all return 0
|
||||
*
|
||||
* @param {string} tpl the item template to check
|
||||
* @returns {integer} The price of the item or 0 if not found
|
||||
* @param tpl Item to look price up of
|
||||
* @returns Price in roubles
|
||||
*/
|
||||
getItemPrice(tpl: string): number;
|
||||
/**
|
||||
* Get the static (handbook) price in roubles for an item by tpl
|
||||
* @param tpl Items tpl id to look up price
|
||||
* @returns Price in roubles (0 if not found)
|
||||
*/
|
||||
getStaticItemPrice(tpl: string): number;
|
||||
/**
|
||||
* Get the dynamic (flea) price in roubles for an item by tpl
|
||||
* @param tpl Items tpl id to look up price
|
||||
* @returns Price in roubles (undefined if not found)
|
||||
*/
|
||||
getDynamicItemPrice(tpl: string): number;
|
||||
fixItemStackCount(item: Item): Item;
|
||||
/**
|
||||
* AmmoBoxes contain StackSlots which need to be filled for the AmmoBox to have content.
|
||||
@ -186,14 +197,14 @@ declare class ItemHelper {
|
||||
*/
|
||||
findBarterItems(by: "tpl" | "id", pmcData: IPmcData, barterItemId: string): Item[];
|
||||
/**
|
||||
*
|
||||
* @param pmcData
|
||||
* @param items
|
||||
* Regenerate all guids with new ids, exceptions are for items that cannot be altered (e.g. stash/sorting table)
|
||||
* @param pmcData Player profile
|
||||
* @param items Items to adjust ID values of
|
||||
* @param insuredItems insured items to not replace ids for
|
||||
* @param fastPanel
|
||||
* @returns
|
||||
* @returns Item[]
|
||||
*/
|
||||
replaceIDs(pmcData: IPmcData, items: Item[], insuredItems?: InsuredItem[], fastPanel?: any): any[];
|
||||
replaceIDs(pmcData: IPmcData, items: Item[], insuredItems?: InsuredItem[], fastPanel?: any): Item[];
|
||||
/**
|
||||
* WARNING, SLOW. Recursively loop down through an items hierarchy to see if any of the ids match the supplied list, return true if any do
|
||||
* @param {string} tpl Items tpl to check parents of
|
||||
|
@ -9,9 +9,18 @@ export declare class NotifierHelper {
|
||||
protected defaultNotification: INotification;
|
||||
constructor(httpServerHelper: HttpServerHelper);
|
||||
getDefaultNotification(): INotification;
|
||||
/** Creates a new notification that displays the "Your offer was sold!" prompt and removes sold offer from "My Offers" on clientside */
|
||||
/**
|
||||
* Create a new notification that displays the "Your offer was sold!" prompt and removes sold offer from "My Offers" on clientside
|
||||
* @param dialogueMessage Message from dialog that was sent
|
||||
* @param ragfairData Ragfair data to attach to notification
|
||||
* @returns
|
||||
*/
|
||||
createRagfairOfferSoldNotification(dialogueMessage: Message, ragfairData: MessageContentRagfair): INotification;
|
||||
/** Creates a new notification with the specified dialogueMessage object. */
|
||||
/**
|
||||
* Create a new notification with the specified dialogueMessage object
|
||||
* @param dialogueMessage
|
||||
* @returns
|
||||
*/
|
||||
createNewMessageNotification(dialogueMessage: Message): INotification;
|
||||
getWebSocketServer(sessionID: string): string;
|
||||
}
|
||||
|
@ -1,18 +1,18 @@
|
||||
import { Preset } from "../models/eft/common/IGlobals";
|
||||
import { IPreset } from "../models/eft/common/IGlobals";
|
||||
import { DatabaseServer } from "../servers/DatabaseServer";
|
||||
import { JsonUtil } from "../utils/JsonUtil";
|
||||
export declare class PresetHelper {
|
||||
protected jsonUtil: JsonUtil;
|
||||
protected databaseServer: DatabaseServer;
|
||||
protected lookup: Record<string, string[]>;
|
||||
protected defaultPresets: Record<string, Preset>;
|
||||
protected defaultPresets: Record<string, IPreset>;
|
||||
constructor(jsonUtil: JsonUtil, databaseServer: DatabaseServer);
|
||||
hydratePresetStore(input: Record<string, string[]>): void;
|
||||
getDefaultPresets(): Record<string, Preset>;
|
||||
getDefaultPresets(): Record<string, IPreset>;
|
||||
isPreset(id: string): boolean;
|
||||
hasPreset(templateId: string): boolean;
|
||||
getPreset(id: string): Preset;
|
||||
getPresets(templateId: string): Preset[];
|
||||
getDefaultPreset(templateId: string): Preset;
|
||||
getPreset(id: string): IPreset;
|
||||
getPresets(templateId: string): IPreset[];
|
||||
getDefaultPreset(templateId: string): IPreset;
|
||||
getBaseItemTpl(presetId: string): string;
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { IPmcData } from "../models/eft/common/IPmcData";
|
||||
import { Stats } from "../models/eft/common/tables/IBotBase";
|
||||
import { CounterKeyValue, Stats } from "../models/eft/common/tables/IBotBase";
|
||||
import { IAkiProfile } from "../models/eft/profile/IAkiProfile";
|
||||
import { IValidateNicknameRequestData } from "../models/eft/profile/IValidateNicknameRequestData";
|
||||
import { ILogger } from "../models/spt/utils/ILogger";
|
||||
@ -68,6 +68,10 @@ export declare class ProfileHelper {
|
||||
getFullProfile(sessionID: string): IAkiProfile;
|
||||
getPmcProfile(sessionID: string): IPmcData;
|
||||
getScavProfile(sessionID: string): IPmcData;
|
||||
/**
|
||||
* Get baseline counter values for a fresh profile
|
||||
* @returns Stats
|
||||
*/
|
||||
getDefaultCounters(): Stats;
|
||||
protected isWiped(sessionID: string): boolean;
|
||||
protected getServerVersion(): string;
|
||||
@ -77,4 +81,24 @@ export declare class ProfileHelper {
|
||||
* @returns profile without secure container
|
||||
*/
|
||||
removeSecureContainer(profile: IPmcData): IPmcData;
|
||||
/**
|
||||
* Flag a profile as having received a gift
|
||||
* Store giftid in profile aki object
|
||||
* @param playerId Player to add gift flag to
|
||||
* @param giftId Gift player received
|
||||
*/
|
||||
addGiftReceivedFlagToProfile(playerId: string, giftId: string): void;
|
||||
/**
|
||||
* Check if profile has recieved a gift by id
|
||||
* @param playerId Player profile to check for gift
|
||||
* @param giftId Gift to check for
|
||||
* @returns True if player has recieved gift previously
|
||||
*/
|
||||
playerHasRecievedGift(playerId: string, giftId: string): boolean;
|
||||
/**
|
||||
* Find Stat in profile counters and increment by one
|
||||
* @param counters Counters to search for key
|
||||
* @param keyToIncrement Key
|
||||
*/
|
||||
incrementStatCounter(counters: CounterKeyValue[], keyToIncrement: string): void;
|
||||
}
|
||||
|
@ -13,6 +13,7 @@ import { ConfigServer } from "../servers/ConfigServer";
|
||||
import { DatabaseServer } from "../servers/DatabaseServer";
|
||||
import { LocaleService } from "../services/LocaleService";
|
||||
import { LocalisationService } from "../services/LocalisationService";
|
||||
import { MailSendService } from "../services/MailSendService";
|
||||
import { HashUtil } from "../utils/HashUtil";
|
||||
import { JsonUtil } from "../utils/JsonUtil";
|
||||
import { TimeUtil } from "../utils/TimeUtil";
|
||||
@ -37,9 +38,10 @@ export declare class QuestHelper {
|
||||
protected paymentHelper: PaymentHelper;
|
||||
protected localisationService: LocalisationService;
|
||||
protected traderHelper: TraderHelper;
|
||||
protected mailSendService: MailSendService;
|
||||
protected configServer: ConfigServer;
|
||||
protected questConfig: IQuestConfig;
|
||||
constructor(logger: ILogger, jsonUtil: JsonUtil, timeUtil: TimeUtil, hashUtil: HashUtil, itemHelper: ItemHelper, eventOutputHolder: EventOutputHolder, databaseServer: DatabaseServer, localeService: LocaleService, ragfairServerHelper: RagfairServerHelper, dialogueHelper: DialogueHelper, profileHelper: ProfileHelper, paymentHelper: PaymentHelper, localisationService: LocalisationService, traderHelper: TraderHelper, configServer: ConfigServer);
|
||||
constructor(logger: ILogger, jsonUtil: JsonUtil, timeUtil: TimeUtil, hashUtil: HashUtil, itemHelper: ItemHelper, eventOutputHolder: EventOutputHolder, databaseServer: DatabaseServer, localeService: LocaleService, ragfairServerHelper: RagfairServerHelper, dialogueHelper: DialogueHelper, profileHelper: ProfileHelper, paymentHelper: PaymentHelper, localisationService: LocalisationService, traderHelper: TraderHelper, mailSendService: MailSendService, configServer: ConfigServer);
|
||||
/**
|
||||
* Get status of a quest in player profile by its id
|
||||
* @param pmcData Profile to search
|
||||
@ -63,6 +65,7 @@ export declare class QuestHelper {
|
||||
getDeltaQuests(before: IQuest[], after: IQuest[]): IQuest[];
|
||||
/**
|
||||
* Increase skill points of a skill on player profile
|
||||
* Dupe of PlayerService.incrementSkillLevel()
|
||||
* @param sessionID Session id
|
||||
* @param pmcData Player profile
|
||||
* @param skillName Name of skill to increase skill points of
|
||||
@ -113,7 +116,7 @@ export declare class QuestHelper {
|
||||
* Get quests that can be shown to player after failing a quest
|
||||
* @param failedQuestId Id of the quest failed by player
|
||||
* @param sessionId Session id
|
||||
* @returns
|
||||
* @returns IQuest array
|
||||
*/
|
||||
failedUnlocked(failedQuestId: string, sessionId: string): IQuest[];
|
||||
/**
|
||||
|
@ -12,6 +12,7 @@ import { ConfigServer } from "../servers/ConfigServer";
|
||||
import { DatabaseServer } from "../servers/DatabaseServer";
|
||||
import { SaveServer } from "../servers/SaveServer";
|
||||
import { LocaleService } from "../services/LocaleService";
|
||||
import { LocalisationService } from "../services/LocalisationService";
|
||||
import { RagfairOfferService } from "../services/RagfairOfferService";
|
||||
import { HashUtil } from "../utils/HashUtil";
|
||||
import { TimeUtil } from "../utils/TimeUtil";
|
||||
@ -42,11 +43,12 @@ export declare class RagfairOfferHelper {
|
||||
protected ragfairHelper: RagfairHelper;
|
||||
protected ragfairOfferService: RagfairOfferService;
|
||||
protected localeService: LocaleService;
|
||||
protected localisationService: LocalisationService;
|
||||
protected configServer: ConfigServer;
|
||||
protected static goodSoldTemplate: string;
|
||||
protected ragfairConfig: IRagfairConfig;
|
||||
protected questConfig: IQuestConfig;
|
||||
constructor(logger: ILogger, timeUtil: TimeUtil, hashUtil: HashUtil, eventOutputHolder: EventOutputHolder, databaseServer: DatabaseServer, traderHelper: TraderHelper, saveServer: SaveServer, dialogueHelper: DialogueHelper, itemHelper: ItemHelper, paymentHelper: PaymentHelper, presetHelper: PresetHelper, profileHelper: ProfileHelper, ragfairServerHelper: RagfairServerHelper, ragfairSortHelper: RagfairSortHelper, ragfairHelper: RagfairHelper, ragfairOfferService: RagfairOfferService, localeService: LocaleService, configServer: ConfigServer);
|
||||
constructor(logger: ILogger, timeUtil: TimeUtil, hashUtil: HashUtil, eventOutputHolder: EventOutputHolder, databaseServer: DatabaseServer, traderHelper: TraderHelper, saveServer: SaveServer, dialogueHelper: DialogueHelper, itemHelper: ItemHelper, paymentHelper: PaymentHelper, presetHelper: PresetHelper, profileHelper: ProfileHelper, ragfairServerHelper: RagfairServerHelper, ragfairSortHelper: RagfairSortHelper, ragfairHelper: RagfairHelper, ragfairOfferService: RagfairOfferService, localeService: LocaleService, localisationService: LocalisationService, configServer: ConfigServer);
|
||||
/**
|
||||
* Passthrough to ragfairOfferService.getOffers(), get flea offers a player should see
|
||||
* @param searchRequest
|
||||
|
@ -8,41 +8,67 @@ import { DatabaseServer } from "../servers/DatabaseServer";
|
||||
import { SaveServer } from "../servers/SaveServer";
|
||||
import { ItemFilterService } from "../services/ItemFilterService";
|
||||
import { LocaleService } from "../services/LocaleService";
|
||||
import { MailSendService } from "../services/MailSendService";
|
||||
import { HashUtil } from "../utils/HashUtil";
|
||||
import { JsonUtil } from "../utils/JsonUtil";
|
||||
import { RandomUtil } from "../utils/RandomUtil";
|
||||
import { TimeUtil } from "../utils/TimeUtil";
|
||||
import { DialogueHelper } from "./DialogueHelper";
|
||||
import { ItemHelper } from "./ItemHelper";
|
||||
import { ProfileHelper } from "./ProfileHelper";
|
||||
import { TraderHelper } from "./TraderHelper";
|
||||
/**
|
||||
* Helper class for common ragfair server actions
|
||||
*/
|
||||
export declare class RagfairServerHelper {
|
||||
protected randomUtil: RandomUtil;
|
||||
protected hashUtil: HashUtil;
|
||||
protected timeUtil: TimeUtil;
|
||||
protected saveServer: SaveServer;
|
||||
protected databaseServer: DatabaseServer;
|
||||
protected profileHelper: ProfileHelper;
|
||||
protected itemHelper: ItemHelper;
|
||||
protected localeService: LocaleService;
|
||||
protected dialogueHelper: DialogueHelper;
|
||||
protected traderHelper: TraderHelper;
|
||||
protected jsonUtil: JsonUtil;
|
||||
protected mailSendService: MailSendService;
|
||||
protected itemFilterService: ItemFilterService;
|
||||
protected configServer: ConfigServer;
|
||||
protected ragfairConfig: IRagfairConfig;
|
||||
protected questConfig: IQuestConfig;
|
||||
protected static goodsReturnedTemplate: string;
|
||||
constructor(randomUtil: RandomUtil, hashUtil: HashUtil, saveServer: SaveServer, databaseServer: DatabaseServer, profileHelper: ProfileHelper, itemHelper: ItemHelper, localeService: LocaleService, dialogueHelper: DialogueHelper, jsonUtil: JsonUtil, itemFilterService: ItemFilterService, configServer: ConfigServer);
|
||||
constructor(randomUtil: RandomUtil, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, databaseServer: DatabaseServer, profileHelper: ProfileHelper, itemHelper: ItemHelper, localeService: LocaleService, dialogueHelper: DialogueHelper, traderHelper: TraderHelper, jsonUtil: JsonUtil, mailSendService: MailSendService, itemFilterService: ItemFilterService, configServer: ConfigServer);
|
||||
/**
|
||||
* Is item valid / on blacklist / quest item
|
||||
* @param itemDetails
|
||||
* @returns boolean
|
||||
*/
|
||||
isItemValidRagfairItem(itemDetails: [boolean, ITemplateItem]): boolean;
|
||||
protected isItemBlacklisted(itemTemplateId: string): boolean;
|
||||
isTrader(userID: string): boolean;
|
||||
isPlayer(userID: string): boolean;
|
||||
returnItems(sessionID: string, items: Item[]): void;
|
||||
/**
|
||||
* Is supplied item tpl on the ragfair custom blacklist from configs/ragfair.json/dynamic
|
||||
* @param itemTemplateId Item tpl to check is blacklisted
|
||||
* @returns True if its blacklsited
|
||||
*/
|
||||
protected isItemOnCustomFleaBlacklist(itemTemplateId: string): boolean;
|
||||
/**
|
||||
* is supplied id a trader
|
||||
* @param traderId
|
||||
* @returns True if id was a trader
|
||||
*/
|
||||
isTrader(traderId: string): boolean;
|
||||
/**
|
||||
* Is this user id the logged in player
|
||||
* @param userId Id to test
|
||||
* @returns True is the current player
|
||||
*/
|
||||
isPlayer(userId: string): boolean;
|
||||
/**
|
||||
* Send items back to player
|
||||
* @param sessionID Player to send items to
|
||||
* @param returnedItems Items to send to player
|
||||
*/
|
||||
returnItems(sessionID: string, returnedItems: Item[]): void;
|
||||
calculateDynamicStackCount(tplId: string, isWeaponPreset: boolean): number;
|
||||
/**
|
||||
* Choose a currency at random with bias
|
||||
|
@ -1,10 +1,10 @@
|
||||
import { IPmcData } from "../models/eft/common/IPmcData";
|
||||
import { Item } from "../models/eft/common/tables/IItem";
|
||||
import { ITemplateItem } from "../models/eft/common/tables/ITemplateItem";
|
||||
import { ILogger } from "../models/spt/utils/ILogger";
|
||||
import { DatabaseServer } from "../servers/DatabaseServer";
|
||||
import { RagfairPriceService } from "../services/RagfairPriceService";
|
||||
import { ItemHelper } from "./ItemHelper";
|
||||
import { ILogger } from "../models/spt/utils/ILogger";
|
||||
export declare class RagfairTaxHelper {
|
||||
protected logger: ILogger;
|
||||
protected databaseServer: DatabaseServer;
|
||||
|
@ -1,5 +1,6 @@
|
||||
import { IPmcData } from "../models/eft/common/IPmcData";
|
||||
import { ITraderAssort, ITraderBase, LoyaltyLevel } from "../models/eft/common/tables/ITrader";
|
||||
import { Traders } from "../models/enums/Traders";
|
||||
import { ITraderConfig } from "../models/spt/config/ITraderConfig";
|
||||
import { ILogger } from "../models/spt/utils/ILogger";
|
||||
import { ConfigServer } from "../servers/ConfigServer";
|
||||
@ -106,4 +107,10 @@ export declare class TraderHelper {
|
||||
* @returns Rouble price
|
||||
*/
|
||||
getHighestSellToTraderPrice(tpl: string): number;
|
||||
/**
|
||||
* Get a trader enum key by its value
|
||||
* @param traderId Traders id
|
||||
* @returns Traders key
|
||||
*/
|
||||
getTraderById(traderId: string): Traders;
|
||||
}
|
||||
|
@ -15,6 +15,9 @@ export declare class BundleLoader {
|
||||
protected jsonUtil: JsonUtil;
|
||||
protected bundles: Record<string, BundleInfo>;
|
||||
constructor(httpServerHelper: HttpServerHelper, vfs: VFS, jsonUtil: JsonUtil);
|
||||
/**
|
||||
* Handle singleplayer/bundles
|
||||
*/
|
||||
getBundles(local: boolean): BundleInfo[];
|
||||
getBundle(key: string, local: boolean): BundleInfo;
|
||||
addBundles(modpath: string): void;
|
||||
|
@ -36,8 +36,8 @@ export declare class PreAkiModLoader implements IModLoader {
|
||||
getModPath(mod: string): string;
|
||||
protected importMods(): Promise<void>;
|
||||
/**
|
||||
* Check for duplciate mods loaded, show error if duplicate mod found
|
||||
* @param modPackageData dictionary of mod package.json data
|
||||
* Check for duplicate mods loaded, show error if any
|
||||
* @param modPackageData Dictionary of mod package.json data
|
||||
*/
|
||||
protected checkForDuplicateMods(modPackageData: Record<string, IPackageJsonData>): void;
|
||||
/**
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,3 +1,5 @@
|
||||
import { MinMax } from "../../../models/common/MinMax";
|
||||
import { Ixyz } from "./Ixyz";
|
||||
export interface ILocationBase {
|
||||
AccessKeys: string[];
|
||||
AirdropParameters: AirdropParameter[];
|
||||
@ -35,6 +37,7 @@ export interface ILocationBase {
|
||||
IsSecret: boolean;
|
||||
Locked: boolean;
|
||||
Loot: any[];
|
||||
MatchMakerMinPlayersByWaitTime: MinPlayerWaitTime[];
|
||||
MaxBotPerZone: number;
|
||||
MaxDistToFreePoint: number;
|
||||
MaxPlayers: number;
|
||||
@ -49,6 +52,7 @@ export interface ILocationBase {
|
||||
OldSpawn: boolean;
|
||||
OpenZones: string;
|
||||
Preview: Preview;
|
||||
PlayersRequestCount: number;
|
||||
RequiredPlayerLevel?: number;
|
||||
RequiredPlayerLevelMin?: number;
|
||||
RequiredPlayerLevelMax?: number;
|
||||
@ -81,9 +85,7 @@ export interface ILocationBase {
|
||||
users_summon_seconds: number;
|
||||
waves: Wave[];
|
||||
}
|
||||
export interface ILimit {
|
||||
min: number;
|
||||
max: number;
|
||||
export interface ILimit extends MinMax {
|
||||
items: any[];
|
||||
}
|
||||
export interface AirdropParameter {
|
||||
@ -140,10 +142,12 @@ export interface BotLocationModifier {
|
||||
Scattering: number;
|
||||
VisibleDistance: number;
|
||||
}
|
||||
export interface MinMaxBot {
|
||||
WildSpawnType: WildSpawnType;
|
||||
max: number;
|
||||
min: number;
|
||||
export interface MinMaxBot extends MinMax {
|
||||
WildSpawnType: WildSpawnType | string;
|
||||
}
|
||||
export interface MinPlayerWaitTime {
|
||||
minPlayers: number;
|
||||
time: number;
|
||||
}
|
||||
export interface Preview {
|
||||
path: string;
|
||||
@ -160,7 +164,7 @@ export interface SpawnPointParam {
|
||||
DelayToCanSpawnSec: number;
|
||||
Id: string;
|
||||
Infiltration: string;
|
||||
Position: xyz;
|
||||
Position: Ixyz;
|
||||
Rotation: number;
|
||||
Sides: string[];
|
||||
}
|
||||
@ -169,14 +173,9 @@ export interface ColliderParams {
|
||||
_props: Props;
|
||||
}
|
||||
export interface Props {
|
||||
Center: xyz;
|
||||
Center: Ixyz;
|
||||
Radius: number;
|
||||
}
|
||||
export interface xyz {
|
||||
x: number;
|
||||
y: number;
|
||||
z: number;
|
||||
}
|
||||
export interface Exit {
|
||||
Chance: number;
|
||||
Count: number;
|
||||
@ -211,5 +210,6 @@ export interface Wave {
|
||||
}
|
||||
export declare enum WildSpawnType {
|
||||
ASSAULT = "assault",
|
||||
MARKSMAN = "marksman"
|
||||
MARKSMAN = "marksman",
|
||||
PMCBOT = "pmcbot"
|
||||
}
|
||||
|
@ -1,3 +1,4 @@
|
||||
import { Ixyz } from "./Ixyz";
|
||||
import { Item } from "./tables/IItem";
|
||||
export interface ILooseLoot {
|
||||
spawnpointCount: SpawnpointCount;
|
||||
@ -18,11 +19,11 @@ export interface SpawnpointTemplate {
|
||||
IsStatic: boolean;
|
||||
useGravity: boolean;
|
||||
randomRotation: boolean;
|
||||
Position: Xyz;
|
||||
Rotation: Xyz;
|
||||
Position: Ixyz;
|
||||
Rotation: Ixyz;
|
||||
IsGroupPosition: boolean;
|
||||
GroupPositions: any[];
|
||||
Root: any;
|
||||
Root: string;
|
||||
Items: Item[];
|
||||
}
|
||||
export interface Spawnpoint {
|
||||
@ -31,11 +32,6 @@ export interface Spawnpoint {
|
||||
template: SpawnpointTemplate;
|
||||
itemDistribution: ItemDistribution[];
|
||||
}
|
||||
export interface Xyz {
|
||||
x: number;
|
||||
y: number;
|
||||
z: number;
|
||||
}
|
||||
export interface ItemDistribution {
|
||||
composedKey: ComposedKey;
|
||||
relativeProbability: number;
|
||||
|
5
TypeScript/10ScopesAndTypes/types/models/eft/common/Ixyz.d.ts
vendored
Normal file
5
TypeScript/10ScopesAndTypes/types/models/eft/common/Ixyz.d.ts
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
export interface Ixyz {
|
||||
x: number;
|
||||
y: number;
|
||||
z: number;
|
||||
}
|
@ -40,6 +40,7 @@ export interface Info {
|
||||
Nickname: string;
|
||||
LowerNickname: string;
|
||||
Side: string;
|
||||
SquadInviteRestriction: boolean;
|
||||
Voice: string;
|
||||
Level: number;
|
||||
Experience: number;
|
||||
|
@ -1,3 +1,4 @@
|
||||
import { Ixyz } from "../Ixyz";
|
||||
export interface ICustomizationItem {
|
||||
_id: string;
|
||||
_name: string;
|
||||
@ -19,15 +20,10 @@ export interface Props {
|
||||
Prefab: Prefab;
|
||||
WatchPrefab: Prefab;
|
||||
IntegratedArmorVest: boolean;
|
||||
WatchPosition: Xyz;
|
||||
WatchRotation: Xyz;
|
||||
WatchPosition: Ixyz;
|
||||
WatchRotation: Ixyz;
|
||||
}
|
||||
export interface Prefab {
|
||||
path: string;
|
||||
rcid: string;
|
||||
}
|
||||
export interface Xyz {
|
||||
x: number;
|
||||
y: number;
|
||||
z: number;
|
||||
}
|
||||
|
@ -1,3 +1,4 @@
|
||||
import { Ixyz } from "../Ixyz";
|
||||
import { Item } from "./IItem";
|
||||
export interface ILootBase {
|
||||
staticAmmo: Record<string, IStaticAmmoDetails[]>;
|
||||
@ -18,8 +19,8 @@ export interface IStaticWeaponProps {
|
||||
IsStatic: boolean;
|
||||
useGravity: boolean;
|
||||
randomRotation: boolean;
|
||||
Position: Xyz;
|
||||
Rotation: Xyz;
|
||||
Position: Ixyz;
|
||||
Rotation: Ixyz;
|
||||
IsGroupPosition: boolean;
|
||||
GroupPositions: any[];
|
||||
Root: string;
|
||||
@ -30,20 +31,15 @@ export interface IStaticContainerProps {
|
||||
IsStatic: boolean;
|
||||
useGravity: boolean;
|
||||
randomRotation: boolean;
|
||||
Position: Xyz;
|
||||
Rotation: Xyz;
|
||||
Position: Ixyz;
|
||||
Rotation: Ixyz;
|
||||
IsGroupPosition: boolean;
|
||||
GroupPositions: any[];
|
||||
Root: any;
|
||||
Root: string;
|
||||
Items: StaticItem[];
|
||||
}
|
||||
export interface Xyz {
|
||||
x: number;
|
||||
y: number;
|
||||
z: number;
|
||||
}
|
||||
export interface StaticItem {
|
||||
_id: any;
|
||||
_id: string;
|
||||
_tpl: string;
|
||||
}
|
||||
export interface IStaticForcedProps {
|
||||
|
@ -1,7 +1,9 @@
|
||||
import { QuestRewardType } from "../../../enums/QuestRewardType";
|
||||
import { QuestStatus } from "../../../enums/QuestStatus";
|
||||
import { QuestTypeEnum } from "../../../enums/QuestTypeEnum";
|
||||
import { Item } from "./IItem";
|
||||
export interface IQuest {
|
||||
/** SPT addition - human readable quest name */
|
||||
QuestName?: string;
|
||||
_id: string;
|
||||
canShowNotificationsInGame: boolean;
|
||||
@ -13,9 +15,10 @@ export interface IQuest {
|
||||
traderId: string;
|
||||
location: string;
|
||||
image: string;
|
||||
type: string;
|
||||
type: QuestTypeEnum;
|
||||
isKey: boolean;
|
||||
questStatus: any;
|
||||
/** @deprecated - Likely not used, use 'status' instead */
|
||||
questStatus: QuestStatus;
|
||||
restartable: boolean;
|
||||
instantComplete: boolean;
|
||||
secretQuest: boolean;
|
||||
@ -23,9 +26,11 @@ export interface IQuest {
|
||||
successMessageText: string;
|
||||
templateId: string;
|
||||
rewards: Rewards;
|
||||
/** Becomes 'AppearStatus' inside client */
|
||||
status: string | number;
|
||||
KeyQuest: boolean;
|
||||
changeQuestMessageText: string;
|
||||
/** "Pmc" or "Scav" */
|
||||
side: string;
|
||||
}
|
||||
export interface Conditions {
|
||||
@ -64,6 +69,7 @@ export interface AvailableForProps {
|
||||
zoneId?: string;
|
||||
type?: boolean;
|
||||
countInRaid?: boolean;
|
||||
globalQuestCounterId?: any;
|
||||
}
|
||||
export interface AvailableForCounter {
|
||||
id: string;
|
||||
|
@ -1,3 +1,4 @@
|
||||
import { Ixyz } from "../Ixyz";
|
||||
export interface ITemplateItem {
|
||||
_id: string;
|
||||
_name: string;
|
||||
@ -36,6 +37,7 @@ export interface Props {
|
||||
IsUnremovable?: boolean;
|
||||
IsLockedafterEquip?: boolean;
|
||||
IsSpecialSlotOnly?: boolean;
|
||||
IsStationaryWeapon?: boolean;
|
||||
QuestItem?: boolean;
|
||||
QuestStashMaxCount?: number;
|
||||
LootExperience?: number;
|
||||
@ -200,11 +202,11 @@ export interface Props {
|
||||
CameraSnap?: number;
|
||||
ReloadMode?: string;
|
||||
AimPlane?: number;
|
||||
TacticalReloadStiffnes?: Xyz;
|
||||
TacticalReloadStiffnes?: Ixyz;
|
||||
TacticalReloadFixation?: number;
|
||||
RecoilCenter?: Xyz;
|
||||
RotationCenter?: Xyz;
|
||||
RotationCenterNoStock?: Xyz;
|
||||
RecoilCenter?: Ixyz;
|
||||
RotationCenter?: Ixyz;
|
||||
RotationCenterNoStock?: Ixyz;
|
||||
FoldedSlot?: string;
|
||||
CompactHandling?: boolean;
|
||||
MinRepairDegradation?: number;
|
||||
@ -246,7 +248,7 @@ export interface Props {
|
||||
FaceShieldComponent?: boolean;
|
||||
FaceShieldMask?: string;
|
||||
MaterialType?: string;
|
||||
RicochetParams?: Xyz;
|
||||
RicochetParams?: Ixyz;
|
||||
DeafStrength?: string;
|
||||
BlindnessProtection?: number;
|
||||
Distortion?: number;
|
||||
@ -257,6 +259,7 @@ export interface Props {
|
||||
CutoffFreq?: number;
|
||||
Resonance?: number;
|
||||
RolloffMultiplier?: number;
|
||||
ReverbVolume: number;
|
||||
CompressorVolume?: number;
|
||||
AmbientVolume?: number;
|
||||
DryVolume?: number;
|
||||
@ -281,12 +284,12 @@ export interface Props {
|
||||
PrimaryConsumption?: number;
|
||||
SecondryConsumption?: number;
|
||||
DeflectionConsumption?: number;
|
||||
AppliedTrunkRotation?: Xyz;
|
||||
AppliedHeadRotation?: Xyz;
|
||||
AppliedTrunkRotation?: Ixyz;
|
||||
AppliedHeadRotation?: Ixyz;
|
||||
DisplayOnModel?: boolean;
|
||||
AdditionalAnimationLayer?: number;
|
||||
StaminaBurnRate?: number;
|
||||
ColliderScaleMultiplier?: Xyz;
|
||||
ColliderScaleMultiplier?: Ixyz;
|
||||
ConfigPathStr?: string;
|
||||
MaxMarkersCount?: number;
|
||||
scaleMin?: number;
|
||||
@ -351,9 +354,9 @@ export interface Props {
|
||||
ShowHitEffectOnExplode?: boolean;
|
||||
ExplosionType?: string;
|
||||
AmmoLifeTimeSec?: number;
|
||||
Contusion?: Xyz;
|
||||
ArmorDistanceDistanceDamage?: Xyz;
|
||||
Blindness?: Xyz;
|
||||
Contusion?: Ixyz;
|
||||
ArmorDistanceDistanceDamage?: Ixyz;
|
||||
Blindness?: Ixyz;
|
||||
IsLightAndSoundShot?: boolean;
|
||||
LightAndSoundShotAngle?: number;
|
||||
LightAndSoundShotSelfContusionTime?: number;
|
||||
@ -425,11 +428,6 @@ export interface SlotFilter {
|
||||
Filter: string[];
|
||||
AnimationIndex?: number;
|
||||
}
|
||||
export interface Xyz {
|
||||
x: number;
|
||||
y: number;
|
||||
z: number;
|
||||
}
|
||||
export interface StackSlot {
|
||||
_name?: string;
|
||||
_id: string;
|
||||
|
@ -1,3 +1,7 @@
|
||||
export interface IAcceptFriendRequestData {
|
||||
export interface IAcceptFriendRequestData extends IBaseFriendRequest {
|
||||
}
|
||||
export interface ICancelFriendRequestData extends IBaseFriendRequest {
|
||||
}
|
||||
export interface IBaseFriendRequest {
|
||||
request_id: string;
|
||||
}
|
||||
|
@ -1,16 +1,6 @@
|
||||
import { MemberCategory } from "../../enums/MemberCategory";
|
||||
import { IUserDialogInfo } from "../profile/IAkiProfile";
|
||||
export interface IGetFriendListDataResponse {
|
||||
Friends: Friend[];
|
||||
Friends: IUserDialogInfo[];
|
||||
Ignore: string[];
|
||||
InIgnoreList: string[];
|
||||
}
|
||||
export interface Friend {
|
||||
_id: string;
|
||||
Info: Info;
|
||||
}
|
||||
export interface Info {
|
||||
Nickname: string;
|
||||
Side: string;
|
||||
Level: number;
|
||||
MemberCategory: MemberCategory;
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { Message } from "../profile/IAkiProfile";
|
||||
import { IUserDialogInfo, Message } from "../profile/IAkiProfile";
|
||||
export interface IGetMailDialogViewResponseData {
|
||||
messages: Message[];
|
||||
profiles: any[];
|
||||
profiles: IUserDialogInfo[];
|
||||
hasMessagesWithRewards: boolean;
|
||||
}
|
||||
|
@ -1,7 +1,8 @@
|
||||
import { PlayerRaidEndState } from "../../../models/enums/PlayerRaidEndState";
|
||||
import { IPmcData } from "../common/IPmcData";
|
||||
import { ISyncHealthRequestData } from "../health/ISyncHealthRequestData";
|
||||
export interface ISaveProgressRequestData {
|
||||
exit: string;
|
||||
exit: PlayerRaidEndState;
|
||||
profile: IPmcData;
|
||||
isPlayerScav: boolean;
|
||||
health: ISyncHealthRequestData;
|
||||
|
@ -1,4 +1,5 @@
|
||||
export interface IAddItemRequestData {
|
||||
/** Trader id */
|
||||
tid: string;
|
||||
items: AddItem[];
|
||||
}
|
||||
|
@ -4,4 +4,5 @@ export interface IAddItemTempObject {
|
||||
count: number;
|
||||
isPreset: boolean;
|
||||
location?: Location;
|
||||
containerId?: string;
|
||||
}
|
||||
|
5
TypeScript/10ScopesAndTypes/types/models/eft/location/IAirdropLootResult.d.ts
vendored
Normal file
5
TypeScript/10ScopesAndTypes/types/models/eft/location/IAirdropLootResult.d.ts
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
import { LootItem } from "../../../models/spt/services/LootItem";
|
||||
export interface IAirdropLootResult {
|
||||
dropType: string;
|
||||
loot: LootItem[];
|
||||
}
|
@ -7,8 +7,13 @@ export interface INotifierChannel {
|
||||
ws: string;
|
||||
}
|
||||
export interface INotification {
|
||||
type: "RagfairOfferSold" | "new_message" | "ping";
|
||||
type: NotificationType;
|
||||
eventId: string;
|
||||
dialogId?: string;
|
||||
message?: Message;
|
||||
}
|
||||
export declare enum NotificationType {
|
||||
RAGFAIR_OFFER_SOLD = "RagfairOfferSold",
|
||||
NEW_MESSAGE = "new_message",
|
||||
PING = "ping"
|
||||
}
|
||||
|
@ -5,6 +5,7 @@ import { Item } from "../common/tables/IItem";
|
||||
export interface IAkiProfile {
|
||||
info: Info;
|
||||
characters: Characters;
|
||||
/** Clothing purchases */
|
||||
suits: string[];
|
||||
weaponbuilds: WeaponBuild[];
|
||||
dialogues: Record<string, Dialogue>;
|
||||
@ -61,7 +62,7 @@ export interface DialogueInfo {
|
||||
_id: string;
|
||||
type: MessageType;
|
||||
pinned: boolean;
|
||||
Users?: any[];
|
||||
Users?: IUserDialogInfo[];
|
||||
message: MessagePreview;
|
||||
}
|
||||
export interface Message {
|
||||
@ -75,7 +76,7 @@ export interface Message {
|
||||
text?: string;
|
||||
hasRewards: boolean;
|
||||
rewardCollected: boolean;
|
||||
items: MessageItems;
|
||||
items?: MessageItems;
|
||||
maxStorageTime?: number;
|
||||
systemData?: ISystemData;
|
||||
profileChangeEvents?: any[];
|
||||
@ -115,6 +116,7 @@ export interface DateTime {
|
||||
export interface Aki {
|
||||
version: string;
|
||||
mods?: ModDetails[];
|
||||
receivedGifts: ReceivedGift[];
|
||||
}
|
||||
export interface ModDetails {
|
||||
name: string;
|
||||
@ -122,6 +124,10 @@ export interface ModDetails {
|
||||
author: string;
|
||||
dateAdded: number;
|
||||
}
|
||||
export interface ReceivedGift {
|
||||
giftId: string;
|
||||
timestampAccepted: number;
|
||||
}
|
||||
export interface Vitality {
|
||||
health: Health;
|
||||
effects: Effects;
|
||||
|
@ -1,5 +1,4 @@
|
||||
export interface IGetItemPriceResult {
|
||||
import { MinMax } from "../../../models/common/MinMax";
|
||||
export interface IGetItemPriceResult extends MinMax {
|
||||
avg: number;
|
||||
min: number;
|
||||
max: number;
|
||||
}
|
||||
|
@ -34,6 +34,7 @@ export declare enum BaseClasses {
|
||||
MAP = "567849dd4bdc2d150f8b456e",
|
||||
MONEY = "543be5dd4bdc2deb348b4569",
|
||||
NIGHTVISION = "5a2c3a9486f774688b05e574",
|
||||
THERMAL_VISION = "5d21f59b6dbe99052b54ef83",
|
||||
KEY = "543be5e94bdc2df1348b4568",
|
||||
KEY_MECHANICAL = "5c99f98d86f7745c314214b3",
|
||||
KEYCARD = "5c164d2286f774194c5e69fa",
|
||||
@ -91,5 +92,10 @@ export declare enum BaseClasses {
|
||||
SILENCER = "550aa4cd4bdc2dd8348b456c",
|
||||
PORTABLE_RANGE_FINDER = "61605ddea09d851a0a0c1bbc",
|
||||
ITEM = "54009119af1c881c07000029",
|
||||
CYLINDER_MAGAZINE = "610720f290b75a49ff2e5e25"
|
||||
CYLINDER_MAGAZINE = "610720f290b75a49ff2e5e25",
|
||||
AUXILARY_MOD = "5a74651486f7744e73386dd1",
|
||||
BIPOD = "55818afb4bdc2dde698b456d",
|
||||
HEADPHONES = "5645bcb74bdc2ded0b8b4578",
|
||||
RANDOM_LOOT_CONTAINER = "62f109593b54472778797866",
|
||||
STACKABLE_ITEM = "5661632d4bdc2d903d8b456b"
|
||||
}
|
||||
|
@ -21,5 +21,6 @@ export declare enum ConfigTypes {
|
||||
TRADER = "aki-trader",
|
||||
WEATHER = "aki-weather",
|
||||
SEASONAL_EVENT = "aki-seasonalevents",
|
||||
LOST_ON_DEATH = "aki-lostondeath"
|
||||
LOST_ON_DEATH = "aki-lostondeath",
|
||||
GIFTS = "aki-gifts"
|
||||
}
|
||||
|
5
TypeScript/10ScopesAndTypes/types/models/enums/GiftSenderType.d.ts
vendored
Normal file
5
TypeScript/10ScopesAndTypes/types/models/enums/GiftSenderType.d.ts
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
export declare enum GiftSenderType {
|
||||
SYSTEM = "System",
|
||||
TRADER = "Trader",
|
||||
USER = "User"
|
||||
}
|
6
TypeScript/10ScopesAndTypes/types/models/enums/GiftSentResult.d.ts
vendored
Normal file
6
TypeScript/10ScopesAndTypes/types/models/enums/GiftSentResult.d.ts
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
export declare enum GiftSentResult {
|
||||
FAILED_UNKNOWN = 1,
|
||||
FAILED_GIFT_ALREADY_RECEIVED = 2,
|
||||
FAILED_GIFT_DOESNT_EXIST = 3,
|
||||
SUCCESS = 4
|
||||
}
|
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