two-slot-extended-mags/types/controllers/CustomizationController.d.ts

71 lines
3.5 KiB
TypeScript
Raw Normal View History

2024-08-05 20:33:00 +10:00
import { ProfileHelper } from "@spt/helpers/ProfileHelper";
import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { ISuit } from "@spt/models/eft/common/tables/ITrader";
import { ClothingItem, IBuyClothingRequestData } from "@spt/models/eft/customization/IBuyClothingRequestData";
import { IWearClothingRequestData } from "@spt/models/eft/customization/IWearClothingRequestData";
import { IItemEventRouterResponse } from "@spt/models/eft/itemEvent/IItemEventRouterResponse";
import { ILogger } from "@spt/models/spt/utils/ILogger";
import { EventOutputHolder } from "@spt/routers/EventOutputHolder";
import { SaveServer } from "@spt/servers/SaveServer";
import { DatabaseService } from "@spt/services/DatabaseService";
import { LocalisationService } from "@spt/services/LocalisationService";
2023-06-11 15:10:34 +10:00
export declare class CustomizationController {
protected logger: ILogger;
protected eventOutputHolder: EventOutputHolder;
2024-08-05 20:33:00 +10:00
protected databaseService: DatabaseService;
2023-06-11 15:10:34 +10:00
protected saveServer: SaveServer;
protected localisationService: LocalisationService;
protected profileHelper: ProfileHelper;
protected readonly clothingIds: {
lowerParentId: string;
upperParentId: string;
};
2024-08-05 20:33:00 +10:00
constructor(logger: ILogger, eventOutputHolder: EventOutputHolder, databaseService: DatabaseService, saveServer: SaveServer, localisationService: LocalisationService, profileHelper: ProfileHelper);
2023-06-11 15:10:34 +10:00
/**
* Get purchasable clothing items from trader that match players side (usec/bear)
* @param traderID trader to look up clothing for
* @param sessionID Session id
* @returns ISuit array
*/
getTraderSuits(traderID: string, sessionID: string): ISuit[];
2023-10-09 20:21:00 +11:00
/**
* Handle CustomizationWear event
* Equip one to many clothing items to player
*/
2023-06-11 15:10:34 +10:00
wearClothing(pmcData: IPmcData, wearClothingRequest: IWearClothingRequestData, sessionID: string): IItemEventRouterResponse;
/**
2023-10-09 20:21:00 +11:00
* Handle CustomizationBuy event
2023-06-11 15:10:34 +10:00
* Purchase/unlock a clothing item from a trader
* @param pmcData Player profile
* @param buyClothingRequest Request object
* @param sessionId Session id
* @returns IItemEventRouterResponse
*/
buyClothing(pmcData: IPmcData, buyClothingRequest: IBuyClothingRequestData, sessionId: string): IItemEventRouterResponse;
protected getTraderClothingOffer(sessionId: string, offerId: string): ISuit;
/**
* Has an outfit been purchased by a player
* @param suitId clothing id
2023-10-09 20:21:00 +11:00
* @param sessionID Session id of profile to check for clothing in
* @returns true if already purchased
2023-06-11 15:10:34 +10:00
*/
protected outfitAlreadyPurchased(suitId: string, sessionID: string): boolean;
/**
* Update output object and player profile with purchase details
* @param sessionId Session id
* @param pmcData Player profile
* @param clothingItems Clothing purchased
* @param output Client response
*/
protected payForClothingItems(sessionId: string, pmcData: IPmcData, clothingItems: ClothingItem[], output: IItemEventRouterResponse): void;
/**
* Update output object and player profile with purchase details for single piece of clothing
* @param sessionId Session id
* @param pmcData Player profile
* @param clothingItem Clothing item purchased
* @param output Client response
*/
protected payForClothingItem(sessionId: string, pmcData: IPmcData, clothingItem: ClothingItem, output: IItemEventRouterResponse): void;
protected getAllTraderSuits(sessionID: string): ISuit[];
}