Update types
This commit is contained in:
parent
1230a53555
commit
d9c933fe2b
@ -11,9 +11,11 @@ import { IGameConfigResponse } from "../models/eft/game/IGameConfigResponse";
|
|||||||
import { IGameKeepAliveResponse } from "../models/eft/game/IGameKeepAliveResponse";
|
import { IGameKeepAliveResponse } from "../models/eft/game/IGameKeepAliveResponse";
|
||||||
import { IServerDetails } from "../models/eft/game/IServerDetails";
|
import { IServerDetails } from "../models/eft/game/IServerDetails";
|
||||||
import { IAkiProfile } from "../models/eft/profile/IAkiProfile";
|
import { IAkiProfile } from "../models/eft/profile/IAkiProfile";
|
||||||
|
import { IBotConfig } from "../models/spt/config/IBotConfig";
|
||||||
import { ICoreConfig } from "../models/spt/config/ICoreConfig";
|
import { ICoreConfig } from "../models/spt/config/ICoreConfig";
|
||||||
import { IHttpConfig } from "../models/spt/config/IHttpConfig";
|
import { IHttpConfig } from "../models/spt/config/IHttpConfig";
|
||||||
import { ILocationConfig } from "../models/spt/config/ILocationConfig";
|
import { ILocationConfig } from "../models/spt/config/ILocationConfig";
|
||||||
|
import { IRagfairConfig } from "../models/spt/config/IRagfairConfig";
|
||||||
import { ILogger } from "../models/spt/utils/ILogger";
|
import { ILogger } from "../models/spt/utils/ILogger";
|
||||||
import { ConfigServer } from "../servers/ConfigServer";
|
import { ConfigServer } from "../servers/ConfigServer";
|
||||||
import { DatabaseServer } from "../servers/DatabaseServer";
|
import { DatabaseServer } from "../servers/DatabaseServer";
|
||||||
@ -25,6 +27,7 @@ import { ProfileFixerService } from "../services/ProfileFixerService";
|
|||||||
import { SeasonalEventService } from "../services/SeasonalEventService";
|
import { SeasonalEventService } from "../services/SeasonalEventService";
|
||||||
import { EncodingUtil } from "../utils/EncodingUtil";
|
import { EncodingUtil } from "../utils/EncodingUtil";
|
||||||
import { JsonUtil } from "../utils/JsonUtil";
|
import { JsonUtil } from "../utils/JsonUtil";
|
||||||
|
import { RandomUtil } from "../utils/RandomUtil";
|
||||||
import { TimeUtil } from "../utils/TimeUtil";
|
import { TimeUtil } from "../utils/TimeUtil";
|
||||||
export declare class GameController {
|
export declare class GameController {
|
||||||
protected logger: ILogger;
|
protected logger: ILogger;
|
||||||
@ -33,6 +36,7 @@ export declare class GameController {
|
|||||||
protected timeUtil: TimeUtil;
|
protected timeUtil: TimeUtil;
|
||||||
protected preAkiModLoader: PreAkiModLoader;
|
protected preAkiModLoader: PreAkiModLoader;
|
||||||
protected httpServerHelper: HttpServerHelper;
|
protected httpServerHelper: HttpServerHelper;
|
||||||
|
protected randomUtil: RandomUtil;
|
||||||
protected encodingUtil: EncodingUtil;
|
protected encodingUtil: EncodingUtil;
|
||||||
protected hideoutHelper: HideoutHelper;
|
protected hideoutHelper: HideoutHelper;
|
||||||
protected profileHelper: ProfileHelper;
|
protected profileHelper: ProfileHelper;
|
||||||
@ -48,7 +52,9 @@ export declare class GameController {
|
|||||||
protected httpConfig: IHttpConfig;
|
protected httpConfig: IHttpConfig;
|
||||||
protected coreConfig: ICoreConfig;
|
protected coreConfig: ICoreConfig;
|
||||||
protected locationConfig: ILocationConfig;
|
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, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
|
protected ragfairConfig: IRagfairConfig;
|
||||||
|
protected botConfig: IBotConfig;
|
||||||
|
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, 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
|
* Handle client/game/start
|
||||||
*/
|
*/
|
||||||
@ -84,6 +90,7 @@ export declare class GameController {
|
|||||||
* @param pmcProfile Player profile
|
* @param pmcProfile Player profile
|
||||||
*/
|
*/
|
||||||
protected warnOnActiveBotReloadSkill(pmcProfile: IPmcData): void;
|
protected warnOnActiveBotReloadSkill(pmcProfile: IPmcData): void;
|
||||||
|
protected flagAllItemsInDbAsSellableOnFlea(): void;
|
||||||
/**
|
/**
|
||||||
* When player logs in, iterate over all active effects and reduce timer
|
* When player logs in, iterate over all active effects and reduce timer
|
||||||
* TODO - add body part HP regen
|
* TODO - add body part HP regen
|
||||||
@ -118,9 +125,14 @@ export declare class GameController {
|
|||||||
protected validateQuestAssortUnlocksExist(): void;
|
protected validateQuestAssortUnlocksExist(): void;
|
||||||
/**
|
/**
|
||||||
* Add the logged in players name to PMC name pool
|
* Add the logged in players name to PMC name pool
|
||||||
* @param pmcProfile
|
* @param pmcProfile Profile of player to get name from
|
||||||
*/
|
*/
|
||||||
protected addPlayerToPMCNames(pmcProfile: IPmcData): void;
|
protected addPlayerToPMCNames(pmcProfile: IPmcData): void;
|
||||||
|
/**
|
||||||
|
* Check for a dialog with the key 'undefined', and remove it
|
||||||
|
* @param fullProfile Profile to check for dialog in
|
||||||
|
*/
|
||||||
|
protected checkForAndRemoveUndefinedDialogs(fullProfile: IAkiProfile): void;
|
||||||
/**
|
/**
|
||||||
* Blank out the "test" mail message from prapor
|
* Blank out the "test" mail message from prapor
|
||||||
*/
|
*/
|
||||||
|
@ -10,6 +10,7 @@ import { ILogger } from "../models/spt/utils/ILogger";
|
|||||||
import { ConfigServer } from "../servers/ConfigServer";
|
import { ConfigServer } from "../servers/ConfigServer";
|
||||||
import { DatabaseServer } from "../servers/DatabaseServer";
|
import { DatabaseServer } from "../servers/DatabaseServer";
|
||||||
import { BotEquipmentFilterService } from "../services/BotEquipmentFilterService";
|
import { BotEquipmentFilterService } from "../services/BotEquipmentFilterService";
|
||||||
|
import { LocalisationService } from "../services/LocalisationService";
|
||||||
import { SeasonalEventService } from "../services/SeasonalEventService";
|
import { SeasonalEventService } from "../services/SeasonalEventService";
|
||||||
import { HashUtil } from "../utils/HashUtil";
|
import { HashUtil } from "../utils/HashUtil";
|
||||||
import { JsonUtil } from "../utils/JsonUtil";
|
import { JsonUtil } from "../utils/JsonUtil";
|
||||||
@ -32,9 +33,10 @@ export declare class BotGenerator {
|
|||||||
protected botHelper: BotHelper;
|
protected botHelper: BotHelper;
|
||||||
protected botDifficultyHelper: BotDifficultyHelper;
|
protected botDifficultyHelper: BotDifficultyHelper;
|
||||||
protected seasonalEventService: SeasonalEventService;
|
protected seasonalEventService: SeasonalEventService;
|
||||||
|
protected localisationService: LocalisationService;
|
||||||
protected configServer: ConfigServer;
|
protected configServer: ConfigServer;
|
||||||
protected botConfig: IBotConfig;
|
protected botConfig: IBotConfig;
|
||||||
constructor(logger: ILogger, hashUtil: HashUtil, randomUtil: RandomUtil, timeUtil: TimeUtil, jsonUtil: JsonUtil, profileHelper: ProfileHelper, databaseServer: DatabaseServer, botInventoryGenerator: BotInventoryGenerator, botLevelGenerator: BotLevelGenerator, botEquipmentFilterService: BotEquipmentFilterService, weightedRandomHelper: WeightedRandomHelper, botHelper: BotHelper, botDifficultyHelper: BotDifficultyHelper, seasonalEventService: SeasonalEventService, configServer: ConfigServer);
|
constructor(logger: ILogger, hashUtil: HashUtil, randomUtil: RandomUtil, timeUtil: TimeUtil, jsonUtil: JsonUtil, profileHelper: ProfileHelper, databaseServer: DatabaseServer, botInventoryGenerator: BotInventoryGenerator, botLevelGenerator: BotLevelGenerator, botEquipmentFilterService: BotEquipmentFilterService, weightedRandomHelper: WeightedRandomHelper, botHelper: BotHelper, botDifficultyHelper: BotDifficultyHelper, seasonalEventService: SeasonalEventService, localisationService: LocalisationService, configServer: ConfigServer);
|
||||||
/**
|
/**
|
||||||
* Generate a player scav bot object
|
* Generate a player scav bot object
|
||||||
* @param role e.g. assault / pmcbot
|
* @param role e.g. assault / pmcbot
|
||||||
@ -71,7 +73,7 @@ export declare class BotGenerator {
|
|||||||
* @param botRole role of bot e.g. assault
|
* @param botRole role of bot e.g. assault
|
||||||
* @returns Nickname for bot
|
* @returns Nickname for bot
|
||||||
*/
|
*/
|
||||||
protected generateBotNickname(botJsonTemplate: IBotType, isPlayerScav: boolean, botRole: string): string;
|
protected generateBotNickname(botJsonTemplate: IBotType, isPlayerScav: boolean, botRole: string, sessionId: string): string;
|
||||||
/**
|
/**
|
||||||
* Log the number of PMCs generated to the debug console
|
* Log the number of PMCs generated to the debug console
|
||||||
* @param output Generated bot array, ready to send to client
|
* @param output Generated bot array, ready to send to client
|
||||||
|
@ -41,4 +41,10 @@ export declare class DialogueHelper {
|
|||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
getMessageItemContents(messageID: string, sessionID: string, itemId: string): Item[];
|
getMessageItemContents(messageID: string, sessionID: string, itemId: string): Item[];
|
||||||
|
/**
|
||||||
|
* Get the dialogs dictionary for a profile, create if doesnt exist
|
||||||
|
* @param sessionId Session/player id
|
||||||
|
* @returns Dialog dictionary
|
||||||
|
*/
|
||||||
|
getDialogsForProfile(sessionId: string): Record<string, Dialogue>;
|
||||||
}
|
}
|
||||||
|
@ -58,16 +58,12 @@ export declare class HideoutHelper {
|
|||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
isProductionType(productive: Productive): productive is Production;
|
isProductionType(productive: Productive): productive is Production;
|
||||||
applyPlayerUpgradesBonuses(pmcData: IPmcData, bonus: StageBonus): void;
|
|
||||||
/**
|
/**
|
||||||
* TODO:
|
* Apply bonus to player profile given after completing hideout upgrades
|
||||||
* After looking at the skills there doesnt seem to be a configuration per skill to boost
|
* @param pmcData Profile to add bonus to
|
||||||
* the XP gain PER skill. I THINK you should be able to put the variable "SkillProgress" (just like health has it)
|
* @param bonus Bonus to add to profile
|
||||||
* and be able to tune the skill gain PER skill, but I havent tested it and Im not sure!
|
|
||||||
* @param pmcData
|
|
||||||
* @param bonus
|
|
||||||
*/
|
*/
|
||||||
protected applySkillXPBoost(pmcData: IPmcData, bonus: StageBonus): void;
|
applyPlayerUpgradesBonuses(pmcData: IPmcData, bonus: StageBonus): void;
|
||||||
/**
|
/**
|
||||||
* Process a players hideout, update areas that use resources + increment production timers
|
* Process a players hideout, update areas that use resources + increment production timers
|
||||||
* @param sessionID Session id
|
* @param sessionID Session id
|
||||||
@ -83,6 +79,7 @@ export declare class HideoutHelper {
|
|||||||
isGeneratorOn: boolean;
|
isGeneratorOn: boolean;
|
||||||
waterCollectorHasFilter: boolean;
|
waterCollectorHasFilter: boolean;
|
||||||
};
|
};
|
||||||
|
protected doesWaterCollectorHaveFilter(waterCollector: HideoutArea): boolean;
|
||||||
/**
|
/**
|
||||||
* Update progress timer for water collector
|
* Update progress timer for water collector
|
||||||
* @param pmcData profile to update
|
* @param pmcData profile to update
|
||||||
@ -141,9 +138,8 @@ export declare class HideoutHelper {
|
|||||||
isGeneratorOn: boolean;
|
isGeneratorOn: boolean;
|
||||||
waterCollectorHasFilter: boolean;
|
waterCollectorHasFilter: boolean;
|
||||||
}): void;
|
}): void;
|
||||||
protected updateWaterCollector(sessionId: string, pmcData: IPmcData, area: HideoutArea, isGeneratorOn: boolean): void;
|
|
||||||
protected doesWaterCollectorHaveFilter(waterCollector: HideoutArea): boolean;
|
|
||||||
protected updateFuel(generatorArea: HideoutArea, pmcData: IPmcData): void;
|
protected updateFuel(generatorArea: HideoutArea, pmcData: IPmcData): void;
|
||||||
|
protected updateWaterCollector(sessionId: string, pmcData: IPmcData, area: HideoutArea, isGeneratorOn: boolean): void;
|
||||||
/**
|
/**
|
||||||
* Adjust water filter objects resourceValue or delete when they reach 0 resource
|
* Adjust water filter objects resourceValue or delete when they reach 0 resource
|
||||||
* @param waterFilterArea water filter area to update
|
* @param waterFilterArea water filter area to update
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { IPmcData } from "../models/eft/common/IPmcData";
|
import { IPmcData } from "../models/eft/common/IPmcData";
|
||||||
|
import { ProfileTraderTemplate } from "../models/eft/common/tables/IProfileTemplate";
|
||||||
import { ITraderAssort, ITraderBase, LoyaltyLevel } from "../models/eft/common/tables/ITrader";
|
import { ITraderAssort, ITraderBase, LoyaltyLevel } from "../models/eft/common/tables/ITrader";
|
||||||
import { Traders } from "../models/enums/Traders";
|
import { Traders } from "../models/enums/Traders";
|
||||||
import { ITraderConfig } from "../models/spt/config/ITraderConfig";
|
import { ITraderConfig } from "../models/spt/config/ITraderConfig";
|
||||||
@ -42,6 +43,7 @@ export declare class TraderHelper {
|
|||||||
* @param traderID trader id to reset
|
* @param traderID trader id to reset
|
||||||
*/
|
*/
|
||||||
resetTrader(sessionID: string, traderID: string): void;
|
resetTrader(sessionID: string, traderID: string): void;
|
||||||
|
protected getStartingStanding(traderId: string, rawProfileTemplate: ProfileTraderTemplate): number;
|
||||||
/**
|
/**
|
||||||
* Alter a traders unlocked status
|
* Alter a traders unlocked status
|
||||||
* @param traderId Trader to alter
|
* @param traderId Trader to alter
|
||||||
@ -113,4 +115,10 @@ export declare class TraderHelper {
|
|||||||
* @returns Traders key
|
* @returns Traders key
|
||||||
*/
|
*/
|
||||||
getTraderById(traderId: string): Traders;
|
getTraderById(traderId: string): Traders;
|
||||||
|
/**
|
||||||
|
* Does the 'Traders' enum has a value that matches the passed in parameter
|
||||||
|
* @param value Value to check for
|
||||||
|
* @returns True, values exists in Traders enum as a value
|
||||||
|
*/
|
||||||
|
traderEnumHasValue(value: string): boolean;
|
||||||
}
|
}
|
||||||
|
@ -35,6 +35,7 @@ export declare class PreAkiModLoader implements IModLoader {
|
|||||||
getImportedModDetails(): Record<string, IPackageJsonData>;
|
getImportedModDetails(): Record<string, IPackageJsonData>;
|
||||||
getModPath(mod: string): string;
|
getModPath(mod: string): string;
|
||||||
protected importMods(): Promise<void>;
|
protected importMods(): Promise<void>;
|
||||||
|
protected sortMods(prev: string, next: string, missingFromOrderJSON: Record<string, boolean>): number;
|
||||||
/**
|
/**
|
||||||
* Check for duplicate mods loaded, show error if any
|
* Check for duplicate mods loaded, show error if any
|
||||||
* @param modPackageData Dictionary of mod package.json data
|
* @param modPackageData Dictionary of mod package.json data
|
||||||
|
@ -14,7 +14,7 @@ export interface TemplateSide {
|
|||||||
character: IPmcData;
|
character: IPmcData;
|
||||||
suits: string[];
|
suits: string[];
|
||||||
dialogues: Record<string, Dialogue>;
|
dialogues: Record<string, Dialogue>;
|
||||||
weaponbuilds: WeaponBuild[];
|
weaponbuilds: Record<string, WeaponBuild>;
|
||||||
trader: ProfileTraderTemplate;
|
trader: ProfileTraderTemplate;
|
||||||
}
|
}
|
||||||
export interface ProfileTraderTemplate {
|
export interface ProfileTraderTemplate {
|
||||||
|
@ -7,7 +7,7 @@ export interface IAkiProfile {
|
|||||||
characters: Characters;
|
characters: Characters;
|
||||||
/** Clothing purchases */
|
/** Clothing purchases */
|
||||||
suits: string[];
|
suits: string[];
|
||||||
weaponbuilds: WeaponBuild[];
|
weaponbuilds: Record<string, WeaponBuild>;
|
||||||
dialogues: Record<string, Dialogue>;
|
dialogues: Record<string, Dialogue>;
|
||||||
aki: Aki;
|
aki: Aki;
|
||||||
vitality: Vitality;
|
vitality: Vitality;
|
||||||
|
@ -40,6 +40,8 @@ export interface IPmcConfig {
|
|||||||
botRelativeLevelDeltaMax: number;
|
botRelativeLevelDeltaMax: number;
|
||||||
/** Force a number of healing items into PMCs secure container to ensure they can heal */
|
/** Force a number of healing items into PMCs secure container to ensure they can heal */
|
||||||
forceHealingItemsIntoSecure: boolean;
|
forceHealingItemsIntoSecure: boolean;
|
||||||
|
addPrefixToSameNamePMCAsPlayerChance: number;
|
||||||
|
allPMCsHavePlayerNameWithRandomPrefixChance: number;
|
||||||
}
|
}
|
||||||
export interface PmcTypes {
|
export interface PmcTypes {
|
||||||
usec: string;
|
usec: string;
|
||||||
|
@ -2,17 +2,19 @@ import { I18n } from "i18n";
|
|||||||
import { ILocaleConfig } from "../models/spt/config/ILocaleConfig";
|
import { ILocaleConfig } from "../models/spt/config/ILocaleConfig";
|
||||||
import { ILogger } from "../models/spt/utils/ILogger";
|
import { ILogger } from "../models/spt/utils/ILogger";
|
||||||
import { DatabaseServer } from "../servers/DatabaseServer";
|
import { DatabaseServer } from "../servers/DatabaseServer";
|
||||||
|
import { RandomUtil } from "../utils/RandomUtil";
|
||||||
import { LocaleService } from "./LocaleService";
|
import { LocaleService } from "./LocaleService";
|
||||||
/**
|
/**
|
||||||
* Handles translating server text into different langauges
|
* Handles translating server text into different langauges
|
||||||
*/
|
*/
|
||||||
export declare class LocalisationService {
|
export declare class LocalisationService {
|
||||||
protected logger: ILogger;
|
protected logger: ILogger;
|
||||||
|
protected randomUtil: RandomUtil;
|
||||||
protected databaseServer: DatabaseServer;
|
protected databaseServer: DatabaseServer;
|
||||||
protected localeService: LocaleService;
|
protected localeService: LocaleService;
|
||||||
protected localeConfig: ILocaleConfig;
|
protected localeConfig: ILocaleConfig;
|
||||||
protected i18n: I18n;
|
protected i18n: I18n;
|
||||||
constructor(logger: ILogger, databaseServer: DatabaseServer, localeService: LocaleService);
|
constructor(logger: ILogger, randomUtil: RandomUtil, databaseServer: DatabaseServer, localeService: LocaleService);
|
||||||
/**
|
/**
|
||||||
* Get a localised value using the passed in key
|
* Get a localised value using the passed in key
|
||||||
* @param key Key to loop up locale for
|
* @param key Key to loop up locale for
|
||||||
@ -25,4 +27,10 @@ export declare class LocalisationService {
|
|||||||
* @returns string array of keys
|
* @returns string array of keys
|
||||||
*/
|
*/
|
||||||
getKeys(): string[];
|
getKeys(): string[];
|
||||||
|
/**
|
||||||
|
* From the provided partial key, find all keys that start with text and choose a random match
|
||||||
|
* @param partialKey Key to match locale keys on
|
||||||
|
* @returns locale text
|
||||||
|
*/
|
||||||
|
getRandomTextThatMatchesPartialKey(partialKey: string): string;
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import { DialogueHelper } from "../helpers/DialogueHelper";
|
||||||
import { ItemHelper } from "../helpers/ItemHelper";
|
import { ItemHelper } from "../helpers/ItemHelper";
|
||||||
import { NotificationSendHelper } from "../helpers/NotificationSendHelper";
|
import { NotificationSendHelper } from "../helpers/NotificationSendHelper";
|
||||||
import { NotifierHelper } from "../helpers/NotifierHelper";
|
import { NotifierHelper } from "../helpers/NotifierHelper";
|
||||||
@ -19,11 +20,12 @@ export declare class MailSendService {
|
|||||||
protected saveServer: SaveServer;
|
protected saveServer: SaveServer;
|
||||||
protected databaseServer: DatabaseServer;
|
protected databaseServer: DatabaseServer;
|
||||||
protected notifierHelper: NotifierHelper;
|
protected notifierHelper: NotifierHelper;
|
||||||
|
protected dialogueHelper: DialogueHelper;
|
||||||
protected notificationSendHelper: NotificationSendHelper;
|
protected notificationSendHelper: NotificationSendHelper;
|
||||||
protected localisationService: LocalisationService;
|
protected localisationService: LocalisationService;
|
||||||
protected itemHelper: ItemHelper;
|
protected itemHelper: ItemHelper;
|
||||||
protected readonly systemSenderId = "59e7125688a45068a6249071";
|
protected readonly systemSenderId = "59e7125688a45068a6249071";
|
||||||
constructor(logger: ILogger, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, databaseServer: DatabaseServer, notifierHelper: NotifierHelper, notificationSendHelper: NotificationSendHelper, localisationService: LocalisationService, itemHelper: ItemHelper);
|
constructor(logger: ILogger, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, databaseServer: DatabaseServer, notifierHelper: NotifierHelper, dialogueHelper: DialogueHelper, notificationSendHelper: NotificationSendHelper, localisationService: LocalisationService, itemHelper: ItemHelper);
|
||||||
/**
|
/**
|
||||||
* Send a message from an NPC (e.g. prapor) to the player with or without items using direct message text, do not look up any locale
|
* Send a message from an NPC (e.g. prapor) to the player with or without items using direct message text, do not look up any locale
|
||||||
* @param playerId Players id to send message to
|
* @param playerId Players id to send message to
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import { HideoutHelper } from "../helpers/HideoutHelper";
|
import { HideoutHelper } from "../helpers/HideoutHelper";
|
||||||
import { InventoryHelper } from "../helpers/InventoryHelper";
|
import { InventoryHelper } from "../helpers/InventoryHelper";
|
||||||
import { ItemHelper } from "../helpers/ItemHelper";
|
import { ItemHelper } from "../helpers/ItemHelper";
|
||||||
|
import { TraderHelper } from "../helpers/TraderHelper";
|
||||||
import { IPmcData } from "../models/eft/common/IPmcData";
|
import { IPmcData } from "../models/eft/common/IPmcData";
|
||||||
import { Bonus, HideoutSlot } from "../models/eft/common/tables/IBotBase";
|
import { Bonus, HideoutSlot } from "../models/eft/common/tables/IBotBase";
|
||||||
import { IPmcDataRepeatableQuest, IRepeatableQuest } from "../models/eft/common/tables/IRepeatableQuests";
|
import { IPmcDataRepeatableQuest, IRepeatableQuest } from "../models/eft/common/tables/IRepeatableQuests";
|
||||||
@ -20,6 +21,7 @@ export declare class ProfileFixerService {
|
|||||||
protected watermark: Watermark;
|
protected watermark: Watermark;
|
||||||
protected hideoutHelper: HideoutHelper;
|
protected hideoutHelper: HideoutHelper;
|
||||||
protected inventoryHelper: InventoryHelper;
|
protected inventoryHelper: InventoryHelper;
|
||||||
|
protected traderHelper: TraderHelper;
|
||||||
protected itemHelper: ItemHelper;
|
protected itemHelper: ItemHelper;
|
||||||
protected localisationService: LocalisationService;
|
protected localisationService: LocalisationService;
|
||||||
protected timeUtil: TimeUtil;
|
protected timeUtil: TimeUtil;
|
||||||
@ -27,7 +29,7 @@ export declare class ProfileFixerService {
|
|||||||
protected configServer: ConfigServer;
|
protected configServer: ConfigServer;
|
||||||
protected coreConfig: ICoreConfig;
|
protected coreConfig: ICoreConfig;
|
||||||
protected ragfairConfig: IRagfairConfig;
|
protected ragfairConfig: IRagfairConfig;
|
||||||
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
|
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
|
||||||
/**
|
/**
|
||||||
* Find issues in the pmc profile data that may cause issues and fix them
|
* Find issues in the pmc profile data that may cause issues and fix them
|
||||||
* @param pmcProfile profile to check and fix
|
* @param pmcProfile profile to check and fix
|
||||||
@ -105,7 +107,7 @@ export declare class ProfileFixerService {
|
|||||||
* @param sessionId Session id
|
* @param sessionId Session id
|
||||||
* @param pmcProfile Profile to check inventory of
|
* @param pmcProfile Profile to check inventory of
|
||||||
*/
|
*/
|
||||||
checkForOrphanedModdedItems(sessionId: string, pmcProfile: IPmcData): void;
|
checkForOrphanedModdedItems(sessionId: string, fullProfile: IAkiProfile): void;
|
||||||
/**
|
/**
|
||||||
* Add `Improvements` object to hideout if missing - added in eft 13.0.21469
|
* Add `Improvements` object to hideout if missing - added in eft 13.0.21469
|
||||||
* @param pmcProfile profile to update
|
* @param pmcProfile profile to update
|
||||||
|
@ -11,9 +11,11 @@ import { IGameConfigResponse } from "../models/eft/game/IGameConfigResponse";
|
|||||||
import { IGameKeepAliveResponse } from "../models/eft/game/IGameKeepAliveResponse";
|
import { IGameKeepAliveResponse } from "../models/eft/game/IGameKeepAliveResponse";
|
||||||
import { IServerDetails } from "../models/eft/game/IServerDetails";
|
import { IServerDetails } from "../models/eft/game/IServerDetails";
|
||||||
import { IAkiProfile } from "../models/eft/profile/IAkiProfile";
|
import { IAkiProfile } from "../models/eft/profile/IAkiProfile";
|
||||||
|
import { IBotConfig } from "../models/spt/config/IBotConfig";
|
||||||
import { ICoreConfig } from "../models/spt/config/ICoreConfig";
|
import { ICoreConfig } from "../models/spt/config/ICoreConfig";
|
||||||
import { IHttpConfig } from "../models/spt/config/IHttpConfig";
|
import { IHttpConfig } from "../models/spt/config/IHttpConfig";
|
||||||
import { ILocationConfig } from "../models/spt/config/ILocationConfig";
|
import { ILocationConfig } from "../models/spt/config/ILocationConfig";
|
||||||
|
import { IRagfairConfig } from "../models/spt/config/IRagfairConfig";
|
||||||
import { ILogger } from "../models/spt/utils/ILogger";
|
import { ILogger } from "../models/spt/utils/ILogger";
|
||||||
import { ConfigServer } from "../servers/ConfigServer";
|
import { ConfigServer } from "../servers/ConfigServer";
|
||||||
import { DatabaseServer } from "../servers/DatabaseServer";
|
import { DatabaseServer } from "../servers/DatabaseServer";
|
||||||
@ -25,6 +27,7 @@ import { ProfileFixerService } from "../services/ProfileFixerService";
|
|||||||
import { SeasonalEventService } from "../services/SeasonalEventService";
|
import { SeasonalEventService } from "../services/SeasonalEventService";
|
||||||
import { EncodingUtil } from "../utils/EncodingUtil";
|
import { EncodingUtil } from "../utils/EncodingUtil";
|
||||||
import { JsonUtil } from "../utils/JsonUtil";
|
import { JsonUtil } from "../utils/JsonUtil";
|
||||||
|
import { RandomUtil } from "../utils/RandomUtil";
|
||||||
import { TimeUtil } from "../utils/TimeUtil";
|
import { TimeUtil } from "../utils/TimeUtil";
|
||||||
export declare class GameController {
|
export declare class GameController {
|
||||||
protected logger: ILogger;
|
protected logger: ILogger;
|
||||||
@ -33,6 +36,7 @@ export declare class GameController {
|
|||||||
protected timeUtil: TimeUtil;
|
protected timeUtil: TimeUtil;
|
||||||
protected preAkiModLoader: PreAkiModLoader;
|
protected preAkiModLoader: PreAkiModLoader;
|
||||||
protected httpServerHelper: HttpServerHelper;
|
protected httpServerHelper: HttpServerHelper;
|
||||||
|
protected randomUtil: RandomUtil;
|
||||||
protected encodingUtil: EncodingUtil;
|
protected encodingUtil: EncodingUtil;
|
||||||
protected hideoutHelper: HideoutHelper;
|
protected hideoutHelper: HideoutHelper;
|
||||||
protected profileHelper: ProfileHelper;
|
protected profileHelper: ProfileHelper;
|
||||||
@ -48,7 +52,9 @@ export declare class GameController {
|
|||||||
protected httpConfig: IHttpConfig;
|
protected httpConfig: IHttpConfig;
|
||||||
protected coreConfig: ICoreConfig;
|
protected coreConfig: ICoreConfig;
|
||||||
protected locationConfig: ILocationConfig;
|
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, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
|
protected ragfairConfig: IRagfairConfig;
|
||||||
|
protected botConfig: IBotConfig;
|
||||||
|
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, 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
|
* Handle client/game/start
|
||||||
*/
|
*/
|
||||||
@ -84,6 +90,7 @@ export declare class GameController {
|
|||||||
* @param pmcProfile Player profile
|
* @param pmcProfile Player profile
|
||||||
*/
|
*/
|
||||||
protected warnOnActiveBotReloadSkill(pmcProfile: IPmcData): void;
|
protected warnOnActiveBotReloadSkill(pmcProfile: IPmcData): void;
|
||||||
|
protected flagAllItemsInDbAsSellableOnFlea(): void;
|
||||||
/**
|
/**
|
||||||
* When player logs in, iterate over all active effects and reduce timer
|
* When player logs in, iterate over all active effects and reduce timer
|
||||||
* TODO - add body part HP regen
|
* TODO - add body part HP regen
|
||||||
@ -118,9 +125,14 @@ export declare class GameController {
|
|||||||
protected validateQuestAssortUnlocksExist(): void;
|
protected validateQuestAssortUnlocksExist(): void;
|
||||||
/**
|
/**
|
||||||
* Add the logged in players name to PMC name pool
|
* Add the logged in players name to PMC name pool
|
||||||
* @param pmcProfile
|
* @param pmcProfile Profile of player to get name from
|
||||||
*/
|
*/
|
||||||
protected addPlayerToPMCNames(pmcProfile: IPmcData): void;
|
protected addPlayerToPMCNames(pmcProfile: IPmcData): void;
|
||||||
|
/**
|
||||||
|
* Check for a dialog with the key 'undefined', and remove it
|
||||||
|
* @param fullProfile Profile to check for dialog in
|
||||||
|
*/
|
||||||
|
protected checkForAndRemoveUndefinedDialogs(fullProfile: IAkiProfile): void;
|
||||||
/**
|
/**
|
||||||
* Blank out the "test" mail message from prapor
|
* Blank out the "test" mail message from prapor
|
||||||
*/
|
*/
|
||||||
|
@ -10,6 +10,7 @@ import { ILogger } from "../models/spt/utils/ILogger";
|
|||||||
import { ConfigServer } from "../servers/ConfigServer";
|
import { ConfigServer } from "../servers/ConfigServer";
|
||||||
import { DatabaseServer } from "../servers/DatabaseServer";
|
import { DatabaseServer } from "../servers/DatabaseServer";
|
||||||
import { BotEquipmentFilterService } from "../services/BotEquipmentFilterService";
|
import { BotEquipmentFilterService } from "../services/BotEquipmentFilterService";
|
||||||
|
import { LocalisationService } from "../services/LocalisationService";
|
||||||
import { SeasonalEventService } from "../services/SeasonalEventService";
|
import { SeasonalEventService } from "../services/SeasonalEventService";
|
||||||
import { HashUtil } from "../utils/HashUtil";
|
import { HashUtil } from "../utils/HashUtil";
|
||||||
import { JsonUtil } from "../utils/JsonUtil";
|
import { JsonUtil } from "../utils/JsonUtil";
|
||||||
@ -32,9 +33,10 @@ export declare class BotGenerator {
|
|||||||
protected botHelper: BotHelper;
|
protected botHelper: BotHelper;
|
||||||
protected botDifficultyHelper: BotDifficultyHelper;
|
protected botDifficultyHelper: BotDifficultyHelper;
|
||||||
protected seasonalEventService: SeasonalEventService;
|
protected seasonalEventService: SeasonalEventService;
|
||||||
|
protected localisationService: LocalisationService;
|
||||||
protected configServer: ConfigServer;
|
protected configServer: ConfigServer;
|
||||||
protected botConfig: IBotConfig;
|
protected botConfig: IBotConfig;
|
||||||
constructor(logger: ILogger, hashUtil: HashUtil, randomUtil: RandomUtil, timeUtil: TimeUtil, jsonUtil: JsonUtil, profileHelper: ProfileHelper, databaseServer: DatabaseServer, botInventoryGenerator: BotInventoryGenerator, botLevelGenerator: BotLevelGenerator, botEquipmentFilterService: BotEquipmentFilterService, weightedRandomHelper: WeightedRandomHelper, botHelper: BotHelper, botDifficultyHelper: BotDifficultyHelper, seasonalEventService: SeasonalEventService, configServer: ConfigServer);
|
constructor(logger: ILogger, hashUtil: HashUtil, randomUtil: RandomUtil, timeUtil: TimeUtil, jsonUtil: JsonUtil, profileHelper: ProfileHelper, databaseServer: DatabaseServer, botInventoryGenerator: BotInventoryGenerator, botLevelGenerator: BotLevelGenerator, botEquipmentFilterService: BotEquipmentFilterService, weightedRandomHelper: WeightedRandomHelper, botHelper: BotHelper, botDifficultyHelper: BotDifficultyHelper, seasonalEventService: SeasonalEventService, localisationService: LocalisationService, configServer: ConfigServer);
|
||||||
/**
|
/**
|
||||||
* Generate a player scav bot object
|
* Generate a player scav bot object
|
||||||
* @param role e.g. assault / pmcbot
|
* @param role e.g. assault / pmcbot
|
||||||
@ -71,7 +73,7 @@ export declare class BotGenerator {
|
|||||||
* @param botRole role of bot e.g. assault
|
* @param botRole role of bot e.g. assault
|
||||||
* @returns Nickname for bot
|
* @returns Nickname for bot
|
||||||
*/
|
*/
|
||||||
protected generateBotNickname(botJsonTemplate: IBotType, isPlayerScav: boolean, botRole: string): string;
|
protected generateBotNickname(botJsonTemplate: IBotType, isPlayerScav: boolean, botRole: string, sessionId: string): string;
|
||||||
/**
|
/**
|
||||||
* Log the number of PMCs generated to the debug console
|
* Log the number of PMCs generated to the debug console
|
||||||
* @param output Generated bot array, ready to send to client
|
* @param output Generated bot array, ready to send to client
|
||||||
|
@ -41,4 +41,10 @@ export declare class DialogueHelper {
|
|||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
getMessageItemContents(messageID: string, sessionID: string, itemId: string): Item[];
|
getMessageItemContents(messageID: string, sessionID: string, itemId: string): Item[];
|
||||||
|
/**
|
||||||
|
* Get the dialogs dictionary for a profile, create if doesnt exist
|
||||||
|
* @param sessionId Session/player id
|
||||||
|
* @returns Dialog dictionary
|
||||||
|
*/
|
||||||
|
getDialogsForProfile(sessionId: string): Record<string, Dialogue>;
|
||||||
}
|
}
|
||||||
|
@ -58,16 +58,12 @@ export declare class HideoutHelper {
|
|||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
isProductionType(productive: Productive): productive is Production;
|
isProductionType(productive: Productive): productive is Production;
|
||||||
applyPlayerUpgradesBonuses(pmcData: IPmcData, bonus: StageBonus): void;
|
|
||||||
/**
|
/**
|
||||||
* TODO:
|
* Apply bonus to player profile given after completing hideout upgrades
|
||||||
* After looking at the skills there doesnt seem to be a configuration per skill to boost
|
* @param pmcData Profile to add bonus to
|
||||||
* the XP gain PER skill. I THINK you should be able to put the variable "SkillProgress" (just like health has it)
|
* @param bonus Bonus to add to profile
|
||||||
* and be able to tune the skill gain PER skill, but I havent tested it and Im not sure!
|
|
||||||
* @param pmcData
|
|
||||||
* @param bonus
|
|
||||||
*/
|
*/
|
||||||
protected applySkillXPBoost(pmcData: IPmcData, bonus: StageBonus): void;
|
applyPlayerUpgradesBonuses(pmcData: IPmcData, bonus: StageBonus): void;
|
||||||
/**
|
/**
|
||||||
* Process a players hideout, update areas that use resources + increment production timers
|
* Process a players hideout, update areas that use resources + increment production timers
|
||||||
* @param sessionID Session id
|
* @param sessionID Session id
|
||||||
@ -83,6 +79,7 @@ export declare class HideoutHelper {
|
|||||||
isGeneratorOn: boolean;
|
isGeneratorOn: boolean;
|
||||||
waterCollectorHasFilter: boolean;
|
waterCollectorHasFilter: boolean;
|
||||||
};
|
};
|
||||||
|
protected doesWaterCollectorHaveFilter(waterCollector: HideoutArea): boolean;
|
||||||
/**
|
/**
|
||||||
* Update progress timer for water collector
|
* Update progress timer for water collector
|
||||||
* @param pmcData profile to update
|
* @param pmcData profile to update
|
||||||
@ -141,9 +138,8 @@ export declare class HideoutHelper {
|
|||||||
isGeneratorOn: boolean;
|
isGeneratorOn: boolean;
|
||||||
waterCollectorHasFilter: boolean;
|
waterCollectorHasFilter: boolean;
|
||||||
}): void;
|
}): void;
|
||||||
protected updateWaterCollector(sessionId: string, pmcData: IPmcData, area: HideoutArea, isGeneratorOn: boolean): void;
|
|
||||||
protected doesWaterCollectorHaveFilter(waterCollector: HideoutArea): boolean;
|
|
||||||
protected updateFuel(generatorArea: HideoutArea, pmcData: IPmcData): void;
|
protected updateFuel(generatorArea: HideoutArea, pmcData: IPmcData): void;
|
||||||
|
protected updateWaterCollector(sessionId: string, pmcData: IPmcData, area: HideoutArea, isGeneratorOn: boolean): void;
|
||||||
/**
|
/**
|
||||||
* Adjust water filter objects resourceValue or delete when they reach 0 resource
|
* Adjust water filter objects resourceValue or delete when they reach 0 resource
|
||||||
* @param waterFilterArea water filter area to update
|
* @param waterFilterArea water filter area to update
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { IPmcData } from "../models/eft/common/IPmcData";
|
import { IPmcData } from "../models/eft/common/IPmcData";
|
||||||
|
import { ProfileTraderTemplate } from "../models/eft/common/tables/IProfileTemplate";
|
||||||
import { ITraderAssort, ITraderBase, LoyaltyLevel } from "../models/eft/common/tables/ITrader";
|
import { ITraderAssort, ITraderBase, LoyaltyLevel } from "../models/eft/common/tables/ITrader";
|
||||||
import { Traders } from "../models/enums/Traders";
|
import { Traders } from "../models/enums/Traders";
|
||||||
import { ITraderConfig } from "../models/spt/config/ITraderConfig";
|
import { ITraderConfig } from "../models/spt/config/ITraderConfig";
|
||||||
@ -42,6 +43,7 @@ export declare class TraderHelper {
|
|||||||
* @param traderID trader id to reset
|
* @param traderID trader id to reset
|
||||||
*/
|
*/
|
||||||
resetTrader(sessionID: string, traderID: string): void;
|
resetTrader(sessionID: string, traderID: string): void;
|
||||||
|
protected getStartingStanding(traderId: string, rawProfileTemplate: ProfileTraderTemplate): number;
|
||||||
/**
|
/**
|
||||||
* Alter a traders unlocked status
|
* Alter a traders unlocked status
|
||||||
* @param traderId Trader to alter
|
* @param traderId Trader to alter
|
||||||
@ -113,4 +115,10 @@ export declare class TraderHelper {
|
|||||||
* @returns Traders key
|
* @returns Traders key
|
||||||
*/
|
*/
|
||||||
getTraderById(traderId: string): Traders;
|
getTraderById(traderId: string): Traders;
|
||||||
|
/**
|
||||||
|
* Does the 'Traders' enum has a value that matches the passed in parameter
|
||||||
|
* @param value Value to check for
|
||||||
|
* @returns True, values exists in Traders enum as a value
|
||||||
|
*/
|
||||||
|
traderEnumHasValue(value: string): boolean;
|
||||||
}
|
}
|
||||||
|
@ -35,6 +35,7 @@ export declare class PreAkiModLoader implements IModLoader {
|
|||||||
getImportedModDetails(): Record<string, IPackageJsonData>;
|
getImportedModDetails(): Record<string, IPackageJsonData>;
|
||||||
getModPath(mod: string): string;
|
getModPath(mod: string): string;
|
||||||
protected importMods(): Promise<void>;
|
protected importMods(): Promise<void>;
|
||||||
|
protected sortMods(prev: string, next: string, missingFromOrderJSON: Record<string, boolean>): number;
|
||||||
/**
|
/**
|
||||||
* Check for duplicate mods loaded, show error if any
|
* Check for duplicate mods loaded, show error if any
|
||||||
* @param modPackageData Dictionary of mod package.json data
|
* @param modPackageData Dictionary of mod package.json data
|
||||||
|
@ -14,7 +14,7 @@ export interface TemplateSide {
|
|||||||
character: IPmcData;
|
character: IPmcData;
|
||||||
suits: string[];
|
suits: string[];
|
||||||
dialogues: Record<string, Dialogue>;
|
dialogues: Record<string, Dialogue>;
|
||||||
weaponbuilds: WeaponBuild[];
|
weaponbuilds: Record<string, WeaponBuild>;
|
||||||
trader: ProfileTraderTemplate;
|
trader: ProfileTraderTemplate;
|
||||||
}
|
}
|
||||||
export interface ProfileTraderTemplate {
|
export interface ProfileTraderTemplate {
|
||||||
|
@ -7,7 +7,7 @@ export interface IAkiProfile {
|
|||||||
characters: Characters;
|
characters: Characters;
|
||||||
/** Clothing purchases */
|
/** Clothing purchases */
|
||||||
suits: string[];
|
suits: string[];
|
||||||
weaponbuilds: WeaponBuild[];
|
weaponbuilds: Record<string, WeaponBuild>;
|
||||||
dialogues: Record<string, Dialogue>;
|
dialogues: Record<string, Dialogue>;
|
||||||
aki: Aki;
|
aki: Aki;
|
||||||
vitality: Vitality;
|
vitality: Vitality;
|
||||||
|
@ -40,6 +40,8 @@ export interface IPmcConfig {
|
|||||||
botRelativeLevelDeltaMax: number;
|
botRelativeLevelDeltaMax: number;
|
||||||
/** Force a number of healing items into PMCs secure container to ensure they can heal */
|
/** Force a number of healing items into PMCs secure container to ensure they can heal */
|
||||||
forceHealingItemsIntoSecure: boolean;
|
forceHealingItemsIntoSecure: boolean;
|
||||||
|
addPrefixToSameNamePMCAsPlayerChance: number;
|
||||||
|
allPMCsHavePlayerNameWithRandomPrefixChance: number;
|
||||||
}
|
}
|
||||||
export interface PmcTypes {
|
export interface PmcTypes {
|
||||||
usec: string;
|
usec: string;
|
||||||
|
@ -2,17 +2,19 @@ import { I18n } from "i18n";
|
|||||||
import { ILocaleConfig } from "../models/spt/config/ILocaleConfig";
|
import { ILocaleConfig } from "../models/spt/config/ILocaleConfig";
|
||||||
import { ILogger } from "../models/spt/utils/ILogger";
|
import { ILogger } from "../models/spt/utils/ILogger";
|
||||||
import { DatabaseServer } from "../servers/DatabaseServer";
|
import { DatabaseServer } from "../servers/DatabaseServer";
|
||||||
|
import { RandomUtil } from "../utils/RandomUtil";
|
||||||
import { LocaleService } from "./LocaleService";
|
import { LocaleService } from "./LocaleService";
|
||||||
/**
|
/**
|
||||||
* Handles translating server text into different langauges
|
* Handles translating server text into different langauges
|
||||||
*/
|
*/
|
||||||
export declare class LocalisationService {
|
export declare class LocalisationService {
|
||||||
protected logger: ILogger;
|
protected logger: ILogger;
|
||||||
|
protected randomUtil: RandomUtil;
|
||||||
protected databaseServer: DatabaseServer;
|
protected databaseServer: DatabaseServer;
|
||||||
protected localeService: LocaleService;
|
protected localeService: LocaleService;
|
||||||
protected localeConfig: ILocaleConfig;
|
protected localeConfig: ILocaleConfig;
|
||||||
protected i18n: I18n;
|
protected i18n: I18n;
|
||||||
constructor(logger: ILogger, databaseServer: DatabaseServer, localeService: LocaleService);
|
constructor(logger: ILogger, randomUtil: RandomUtil, databaseServer: DatabaseServer, localeService: LocaleService);
|
||||||
/**
|
/**
|
||||||
* Get a localised value using the passed in key
|
* Get a localised value using the passed in key
|
||||||
* @param key Key to loop up locale for
|
* @param key Key to loop up locale for
|
||||||
@ -25,4 +27,10 @@ export declare class LocalisationService {
|
|||||||
* @returns string array of keys
|
* @returns string array of keys
|
||||||
*/
|
*/
|
||||||
getKeys(): string[];
|
getKeys(): string[];
|
||||||
|
/**
|
||||||
|
* From the provided partial key, find all keys that start with text and choose a random match
|
||||||
|
* @param partialKey Key to match locale keys on
|
||||||
|
* @returns locale text
|
||||||
|
*/
|
||||||
|
getRandomTextThatMatchesPartialKey(partialKey: string): string;
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import { DialogueHelper } from "../helpers/DialogueHelper";
|
||||||
import { ItemHelper } from "../helpers/ItemHelper";
|
import { ItemHelper } from "../helpers/ItemHelper";
|
||||||
import { NotificationSendHelper } from "../helpers/NotificationSendHelper";
|
import { NotificationSendHelper } from "../helpers/NotificationSendHelper";
|
||||||
import { NotifierHelper } from "../helpers/NotifierHelper";
|
import { NotifierHelper } from "../helpers/NotifierHelper";
|
||||||
@ -19,11 +20,12 @@ export declare class MailSendService {
|
|||||||
protected saveServer: SaveServer;
|
protected saveServer: SaveServer;
|
||||||
protected databaseServer: DatabaseServer;
|
protected databaseServer: DatabaseServer;
|
||||||
protected notifierHelper: NotifierHelper;
|
protected notifierHelper: NotifierHelper;
|
||||||
|
protected dialogueHelper: DialogueHelper;
|
||||||
protected notificationSendHelper: NotificationSendHelper;
|
protected notificationSendHelper: NotificationSendHelper;
|
||||||
protected localisationService: LocalisationService;
|
protected localisationService: LocalisationService;
|
||||||
protected itemHelper: ItemHelper;
|
protected itemHelper: ItemHelper;
|
||||||
protected readonly systemSenderId = "59e7125688a45068a6249071";
|
protected readonly systemSenderId = "59e7125688a45068a6249071";
|
||||||
constructor(logger: ILogger, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, databaseServer: DatabaseServer, notifierHelper: NotifierHelper, notificationSendHelper: NotificationSendHelper, localisationService: LocalisationService, itemHelper: ItemHelper);
|
constructor(logger: ILogger, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, databaseServer: DatabaseServer, notifierHelper: NotifierHelper, dialogueHelper: DialogueHelper, notificationSendHelper: NotificationSendHelper, localisationService: LocalisationService, itemHelper: ItemHelper);
|
||||||
/**
|
/**
|
||||||
* Send a message from an NPC (e.g. prapor) to the player with or without items using direct message text, do not look up any locale
|
* Send a message from an NPC (e.g. prapor) to the player with or without items using direct message text, do not look up any locale
|
||||||
* @param playerId Players id to send message to
|
* @param playerId Players id to send message to
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import { HideoutHelper } from "../helpers/HideoutHelper";
|
import { HideoutHelper } from "../helpers/HideoutHelper";
|
||||||
import { InventoryHelper } from "../helpers/InventoryHelper";
|
import { InventoryHelper } from "../helpers/InventoryHelper";
|
||||||
import { ItemHelper } from "../helpers/ItemHelper";
|
import { ItemHelper } from "../helpers/ItemHelper";
|
||||||
|
import { TraderHelper } from "../helpers/TraderHelper";
|
||||||
import { IPmcData } from "../models/eft/common/IPmcData";
|
import { IPmcData } from "../models/eft/common/IPmcData";
|
||||||
import { Bonus, HideoutSlot } from "../models/eft/common/tables/IBotBase";
|
import { Bonus, HideoutSlot } from "../models/eft/common/tables/IBotBase";
|
||||||
import { IPmcDataRepeatableQuest, IRepeatableQuest } from "../models/eft/common/tables/IRepeatableQuests";
|
import { IPmcDataRepeatableQuest, IRepeatableQuest } from "../models/eft/common/tables/IRepeatableQuests";
|
||||||
@ -20,6 +21,7 @@ export declare class ProfileFixerService {
|
|||||||
protected watermark: Watermark;
|
protected watermark: Watermark;
|
||||||
protected hideoutHelper: HideoutHelper;
|
protected hideoutHelper: HideoutHelper;
|
||||||
protected inventoryHelper: InventoryHelper;
|
protected inventoryHelper: InventoryHelper;
|
||||||
|
protected traderHelper: TraderHelper;
|
||||||
protected itemHelper: ItemHelper;
|
protected itemHelper: ItemHelper;
|
||||||
protected localisationService: LocalisationService;
|
protected localisationService: LocalisationService;
|
||||||
protected timeUtil: TimeUtil;
|
protected timeUtil: TimeUtil;
|
||||||
@ -27,7 +29,7 @@ export declare class ProfileFixerService {
|
|||||||
protected configServer: ConfigServer;
|
protected configServer: ConfigServer;
|
||||||
protected coreConfig: ICoreConfig;
|
protected coreConfig: ICoreConfig;
|
||||||
protected ragfairConfig: IRagfairConfig;
|
protected ragfairConfig: IRagfairConfig;
|
||||||
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
|
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
|
||||||
/**
|
/**
|
||||||
* Find issues in the pmc profile data that may cause issues and fix them
|
* Find issues in the pmc profile data that may cause issues and fix them
|
||||||
* @param pmcProfile profile to check and fix
|
* @param pmcProfile profile to check and fix
|
||||||
@ -105,7 +107,7 @@ export declare class ProfileFixerService {
|
|||||||
* @param sessionId Session id
|
* @param sessionId Session id
|
||||||
* @param pmcProfile Profile to check inventory of
|
* @param pmcProfile Profile to check inventory of
|
||||||
*/
|
*/
|
||||||
checkForOrphanedModdedItems(sessionId: string, pmcProfile: IPmcData): void;
|
checkForOrphanedModdedItems(sessionId: string, fullProfile: IAkiProfile): void;
|
||||||
/**
|
/**
|
||||||
* Add `Improvements` object to hideout if missing - added in eft 13.0.21469
|
* Add `Improvements` object to hideout if missing - added in eft 13.0.21469
|
||||||
* @param pmcProfile profile to update
|
* @param pmcProfile profile to update
|
||||||
|
@ -11,9 +11,11 @@ import { IGameConfigResponse } from "../models/eft/game/IGameConfigResponse";
|
|||||||
import { IGameKeepAliveResponse } from "../models/eft/game/IGameKeepAliveResponse";
|
import { IGameKeepAliveResponse } from "../models/eft/game/IGameKeepAliveResponse";
|
||||||
import { IServerDetails } from "../models/eft/game/IServerDetails";
|
import { IServerDetails } from "../models/eft/game/IServerDetails";
|
||||||
import { IAkiProfile } from "../models/eft/profile/IAkiProfile";
|
import { IAkiProfile } from "../models/eft/profile/IAkiProfile";
|
||||||
|
import { IBotConfig } from "../models/spt/config/IBotConfig";
|
||||||
import { ICoreConfig } from "../models/spt/config/ICoreConfig";
|
import { ICoreConfig } from "../models/spt/config/ICoreConfig";
|
||||||
import { IHttpConfig } from "../models/spt/config/IHttpConfig";
|
import { IHttpConfig } from "../models/spt/config/IHttpConfig";
|
||||||
import { ILocationConfig } from "../models/spt/config/ILocationConfig";
|
import { ILocationConfig } from "../models/spt/config/ILocationConfig";
|
||||||
|
import { IRagfairConfig } from "../models/spt/config/IRagfairConfig";
|
||||||
import { ILogger } from "../models/spt/utils/ILogger";
|
import { ILogger } from "../models/spt/utils/ILogger";
|
||||||
import { ConfigServer } from "../servers/ConfigServer";
|
import { ConfigServer } from "../servers/ConfigServer";
|
||||||
import { DatabaseServer } from "../servers/DatabaseServer";
|
import { DatabaseServer } from "../servers/DatabaseServer";
|
||||||
@ -25,6 +27,7 @@ import { ProfileFixerService } from "../services/ProfileFixerService";
|
|||||||
import { SeasonalEventService } from "../services/SeasonalEventService";
|
import { SeasonalEventService } from "../services/SeasonalEventService";
|
||||||
import { EncodingUtil } from "../utils/EncodingUtil";
|
import { EncodingUtil } from "../utils/EncodingUtil";
|
||||||
import { JsonUtil } from "../utils/JsonUtil";
|
import { JsonUtil } from "../utils/JsonUtil";
|
||||||
|
import { RandomUtil } from "../utils/RandomUtil";
|
||||||
import { TimeUtil } from "../utils/TimeUtil";
|
import { TimeUtil } from "../utils/TimeUtil";
|
||||||
export declare class GameController {
|
export declare class GameController {
|
||||||
protected logger: ILogger;
|
protected logger: ILogger;
|
||||||
@ -33,6 +36,7 @@ export declare class GameController {
|
|||||||
protected timeUtil: TimeUtil;
|
protected timeUtil: TimeUtil;
|
||||||
protected preAkiModLoader: PreAkiModLoader;
|
protected preAkiModLoader: PreAkiModLoader;
|
||||||
protected httpServerHelper: HttpServerHelper;
|
protected httpServerHelper: HttpServerHelper;
|
||||||
|
protected randomUtil: RandomUtil;
|
||||||
protected encodingUtil: EncodingUtil;
|
protected encodingUtil: EncodingUtil;
|
||||||
protected hideoutHelper: HideoutHelper;
|
protected hideoutHelper: HideoutHelper;
|
||||||
protected profileHelper: ProfileHelper;
|
protected profileHelper: ProfileHelper;
|
||||||
@ -48,7 +52,9 @@ export declare class GameController {
|
|||||||
protected httpConfig: IHttpConfig;
|
protected httpConfig: IHttpConfig;
|
||||||
protected coreConfig: ICoreConfig;
|
protected coreConfig: ICoreConfig;
|
||||||
protected locationConfig: ILocationConfig;
|
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, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
|
protected ragfairConfig: IRagfairConfig;
|
||||||
|
protected botConfig: IBotConfig;
|
||||||
|
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, 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
|
* Handle client/game/start
|
||||||
*/
|
*/
|
||||||
@ -84,6 +90,7 @@ export declare class GameController {
|
|||||||
* @param pmcProfile Player profile
|
* @param pmcProfile Player profile
|
||||||
*/
|
*/
|
||||||
protected warnOnActiveBotReloadSkill(pmcProfile: IPmcData): void;
|
protected warnOnActiveBotReloadSkill(pmcProfile: IPmcData): void;
|
||||||
|
protected flagAllItemsInDbAsSellableOnFlea(): void;
|
||||||
/**
|
/**
|
||||||
* When player logs in, iterate over all active effects and reduce timer
|
* When player logs in, iterate over all active effects and reduce timer
|
||||||
* TODO - add body part HP regen
|
* TODO - add body part HP regen
|
||||||
@ -118,9 +125,14 @@ export declare class GameController {
|
|||||||
protected validateQuestAssortUnlocksExist(): void;
|
protected validateQuestAssortUnlocksExist(): void;
|
||||||
/**
|
/**
|
||||||
* Add the logged in players name to PMC name pool
|
* Add the logged in players name to PMC name pool
|
||||||
* @param pmcProfile
|
* @param pmcProfile Profile of player to get name from
|
||||||
*/
|
*/
|
||||||
protected addPlayerToPMCNames(pmcProfile: IPmcData): void;
|
protected addPlayerToPMCNames(pmcProfile: IPmcData): void;
|
||||||
|
/**
|
||||||
|
* Check for a dialog with the key 'undefined', and remove it
|
||||||
|
* @param fullProfile Profile to check for dialog in
|
||||||
|
*/
|
||||||
|
protected checkForAndRemoveUndefinedDialogs(fullProfile: IAkiProfile): void;
|
||||||
/**
|
/**
|
||||||
* Blank out the "test" mail message from prapor
|
* Blank out the "test" mail message from prapor
|
||||||
*/
|
*/
|
||||||
|
@ -10,6 +10,7 @@ import { ILogger } from "../models/spt/utils/ILogger";
|
|||||||
import { ConfigServer } from "../servers/ConfigServer";
|
import { ConfigServer } from "../servers/ConfigServer";
|
||||||
import { DatabaseServer } from "../servers/DatabaseServer";
|
import { DatabaseServer } from "../servers/DatabaseServer";
|
||||||
import { BotEquipmentFilterService } from "../services/BotEquipmentFilterService";
|
import { BotEquipmentFilterService } from "../services/BotEquipmentFilterService";
|
||||||
|
import { LocalisationService } from "../services/LocalisationService";
|
||||||
import { SeasonalEventService } from "../services/SeasonalEventService";
|
import { SeasonalEventService } from "../services/SeasonalEventService";
|
||||||
import { HashUtil } from "../utils/HashUtil";
|
import { HashUtil } from "../utils/HashUtil";
|
||||||
import { JsonUtil } from "../utils/JsonUtil";
|
import { JsonUtil } from "../utils/JsonUtil";
|
||||||
@ -32,9 +33,10 @@ export declare class BotGenerator {
|
|||||||
protected botHelper: BotHelper;
|
protected botHelper: BotHelper;
|
||||||
protected botDifficultyHelper: BotDifficultyHelper;
|
protected botDifficultyHelper: BotDifficultyHelper;
|
||||||
protected seasonalEventService: SeasonalEventService;
|
protected seasonalEventService: SeasonalEventService;
|
||||||
|
protected localisationService: LocalisationService;
|
||||||
protected configServer: ConfigServer;
|
protected configServer: ConfigServer;
|
||||||
protected botConfig: IBotConfig;
|
protected botConfig: IBotConfig;
|
||||||
constructor(logger: ILogger, hashUtil: HashUtil, randomUtil: RandomUtil, timeUtil: TimeUtil, jsonUtil: JsonUtil, profileHelper: ProfileHelper, databaseServer: DatabaseServer, botInventoryGenerator: BotInventoryGenerator, botLevelGenerator: BotLevelGenerator, botEquipmentFilterService: BotEquipmentFilterService, weightedRandomHelper: WeightedRandomHelper, botHelper: BotHelper, botDifficultyHelper: BotDifficultyHelper, seasonalEventService: SeasonalEventService, configServer: ConfigServer);
|
constructor(logger: ILogger, hashUtil: HashUtil, randomUtil: RandomUtil, timeUtil: TimeUtil, jsonUtil: JsonUtil, profileHelper: ProfileHelper, databaseServer: DatabaseServer, botInventoryGenerator: BotInventoryGenerator, botLevelGenerator: BotLevelGenerator, botEquipmentFilterService: BotEquipmentFilterService, weightedRandomHelper: WeightedRandomHelper, botHelper: BotHelper, botDifficultyHelper: BotDifficultyHelper, seasonalEventService: SeasonalEventService, localisationService: LocalisationService, configServer: ConfigServer);
|
||||||
/**
|
/**
|
||||||
* Generate a player scav bot object
|
* Generate a player scav bot object
|
||||||
* @param role e.g. assault / pmcbot
|
* @param role e.g. assault / pmcbot
|
||||||
@ -71,7 +73,7 @@ export declare class BotGenerator {
|
|||||||
* @param botRole role of bot e.g. assault
|
* @param botRole role of bot e.g. assault
|
||||||
* @returns Nickname for bot
|
* @returns Nickname for bot
|
||||||
*/
|
*/
|
||||||
protected generateBotNickname(botJsonTemplate: IBotType, isPlayerScav: boolean, botRole: string): string;
|
protected generateBotNickname(botJsonTemplate: IBotType, isPlayerScav: boolean, botRole: string, sessionId: string): string;
|
||||||
/**
|
/**
|
||||||
* Log the number of PMCs generated to the debug console
|
* Log the number of PMCs generated to the debug console
|
||||||
* @param output Generated bot array, ready to send to client
|
* @param output Generated bot array, ready to send to client
|
||||||
|
@ -41,4 +41,10 @@ export declare class DialogueHelper {
|
|||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
getMessageItemContents(messageID: string, sessionID: string, itemId: string): Item[];
|
getMessageItemContents(messageID: string, sessionID: string, itemId: string): Item[];
|
||||||
|
/**
|
||||||
|
* Get the dialogs dictionary for a profile, create if doesnt exist
|
||||||
|
* @param sessionId Session/player id
|
||||||
|
* @returns Dialog dictionary
|
||||||
|
*/
|
||||||
|
getDialogsForProfile(sessionId: string): Record<string, Dialogue>;
|
||||||
}
|
}
|
||||||
|
@ -58,16 +58,12 @@ export declare class HideoutHelper {
|
|||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
isProductionType(productive: Productive): productive is Production;
|
isProductionType(productive: Productive): productive is Production;
|
||||||
applyPlayerUpgradesBonuses(pmcData: IPmcData, bonus: StageBonus): void;
|
|
||||||
/**
|
/**
|
||||||
* TODO:
|
* Apply bonus to player profile given after completing hideout upgrades
|
||||||
* After looking at the skills there doesnt seem to be a configuration per skill to boost
|
* @param pmcData Profile to add bonus to
|
||||||
* the XP gain PER skill. I THINK you should be able to put the variable "SkillProgress" (just like health has it)
|
* @param bonus Bonus to add to profile
|
||||||
* and be able to tune the skill gain PER skill, but I havent tested it and Im not sure!
|
|
||||||
* @param pmcData
|
|
||||||
* @param bonus
|
|
||||||
*/
|
*/
|
||||||
protected applySkillXPBoost(pmcData: IPmcData, bonus: StageBonus): void;
|
applyPlayerUpgradesBonuses(pmcData: IPmcData, bonus: StageBonus): void;
|
||||||
/**
|
/**
|
||||||
* Process a players hideout, update areas that use resources + increment production timers
|
* Process a players hideout, update areas that use resources + increment production timers
|
||||||
* @param sessionID Session id
|
* @param sessionID Session id
|
||||||
@ -83,6 +79,7 @@ export declare class HideoutHelper {
|
|||||||
isGeneratorOn: boolean;
|
isGeneratorOn: boolean;
|
||||||
waterCollectorHasFilter: boolean;
|
waterCollectorHasFilter: boolean;
|
||||||
};
|
};
|
||||||
|
protected doesWaterCollectorHaveFilter(waterCollector: HideoutArea): boolean;
|
||||||
/**
|
/**
|
||||||
* Update progress timer for water collector
|
* Update progress timer for water collector
|
||||||
* @param pmcData profile to update
|
* @param pmcData profile to update
|
||||||
@ -141,9 +138,8 @@ export declare class HideoutHelper {
|
|||||||
isGeneratorOn: boolean;
|
isGeneratorOn: boolean;
|
||||||
waterCollectorHasFilter: boolean;
|
waterCollectorHasFilter: boolean;
|
||||||
}): void;
|
}): void;
|
||||||
protected updateWaterCollector(sessionId: string, pmcData: IPmcData, area: HideoutArea, isGeneratorOn: boolean): void;
|
|
||||||
protected doesWaterCollectorHaveFilter(waterCollector: HideoutArea): boolean;
|
|
||||||
protected updateFuel(generatorArea: HideoutArea, pmcData: IPmcData): void;
|
protected updateFuel(generatorArea: HideoutArea, pmcData: IPmcData): void;
|
||||||
|
protected updateWaterCollector(sessionId: string, pmcData: IPmcData, area: HideoutArea, isGeneratorOn: boolean): void;
|
||||||
/**
|
/**
|
||||||
* Adjust water filter objects resourceValue or delete when they reach 0 resource
|
* Adjust water filter objects resourceValue or delete when they reach 0 resource
|
||||||
* @param waterFilterArea water filter area to update
|
* @param waterFilterArea water filter area to update
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { IPmcData } from "../models/eft/common/IPmcData";
|
import { IPmcData } from "../models/eft/common/IPmcData";
|
||||||
|
import { ProfileTraderTemplate } from "../models/eft/common/tables/IProfileTemplate";
|
||||||
import { ITraderAssort, ITraderBase, LoyaltyLevel } from "../models/eft/common/tables/ITrader";
|
import { ITraderAssort, ITraderBase, LoyaltyLevel } from "../models/eft/common/tables/ITrader";
|
||||||
import { Traders } from "../models/enums/Traders";
|
import { Traders } from "../models/enums/Traders";
|
||||||
import { ITraderConfig } from "../models/spt/config/ITraderConfig";
|
import { ITraderConfig } from "../models/spt/config/ITraderConfig";
|
||||||
@ -42,6 +43,7 @@ export declare class TraderHelper {
|
|||||||
* @param traderID trader id to reset
|
* @param traderID trader id to reset
|
||||||
*/
|
*/
|
||||||
resetTrader(sessionID: string, traderID: string): void;
|
resetTrader(sessionID: string, traderID: string): void;
|
||||||
|
protected getStartingStanding(traderId: string, rawProfileTemplate: ProfileTraderTemplate): number;
|
||||||
/**
|
/**
|
||||||
* Alter a traders unlocked status
|
* Alter a traders unlocked status
|
||||||
* @param traderId Trader to alter
|
* @param traderId Trader to alter
|
||||||
@ -113,4 +115,10 @@ export declare class TraderHelper {
|
|||||||
* @returns Traders key
|
* @returns Traders key
|
||||||
*/
|
*/
|
||||||
getTraderById(traderId: string): Traders;
|
getTraderById(traderId: string): Traders;
|
||||||
|
/**
|
||||||
|
* Does the 'Traders' enum has a value that matches the passed in parameter
|
||||||
|
* @param value Value to check for
|
||||||
|
* @returns True, values exists in Traders enum as a value
|
||||||
|
*/
|
||||||
|
traderEnumHasValue(value: string): boolean;
|
||||||
}
|
}
|
||||||
|
@ -35,6 +35,7 @@ export declare class PreAkiModLoader implements IModLoader {
|
|||||||
getImportedModDetails(): Record<string, IPackageJsonData>;
|
getImportedModDetails(): Record<string, IPackageJsonData>;
|
||||||
getModPath(mod: string): string;
|
getModPath(mod: string): string;
|
||||||
protected importMods(): Promise<void>;
|
protected importMods(): Promise<void>;
|
||||||
|
protected sortMods(prev: string, next: string, missingFromOrderJSON: Record<string, boolean>): number;
|
||||||
/**
|
/**
|
||||||
* Check for duplicate mods loaded, show error if any
|
* Check for duplicate mods loaded, show error if any
|
||||||
* @param modPackageData Dictionary of mod package.json data
|
* @param modPackageData Dictionary of mod package.json data
|
||||||
|
@ -14,7 +14,7 @@ export interface TemplateSide {
|
|||||||
character: IPmcData;
|
character: IPmcData;
|
||||||
suits: string[];
|
suits: string[];
|
||||||
dialogues: Record<string, Dialogue>;
|
dialogues: Record<string, Dialogue>;
|
||||||
weaponbuilds: WeaponBuild[];
|
weaponbuilds: Record<string, WeaponBuild>;
|
||||||
trader: ProfileTraderTemplate;
|
trader: ProfileTraderTemplate;
|
||||||
}
|
}
|
||||||
export interface ProfileTraderTemplate {
|
export interface ProfileTraderTemplate {
|
||||||
|
@ -7,7 +7,7 @@ export interface IAkiProfile {
|
|||||||
characters: Characters;
|
characters: Characters;
|
||||||
/** Clothing purchases */
|
/** Clothing purchases */
|
||||||
suits: string[];
|
suits: string[];
|
||||||
weaponbuilds: WeaponBuild[];
|
weaponbuilds: Record<string, WeaponBuild>;
|
||||||
dialogues: Record<string, Dialogue>;
|
dialogues: Record<string, Dialogue>;
|
||||||
aki: Aki;
|
aki: Aki;
|
||||||
vitality: Vitality;
|
vitality: Vitality;
|
||||||
|
@ -40,6 +40,8 @@ export interface IPmcConfig {
|
|||||||
botRelativeLevelDeltaMax: number;
|
botRelativeLevelDeltaMax: number;
|
||||||
/** Force a number of healing items into PMCs secure container to ensure they can heal */
|
/** Force a number of healing items into PMCs secure container to ensure they can heal */
|
||||||
forceHealingItemsIntoSecure: boolean;
|
forceHealingItemsIntoSecure: boolean;
|
||||||
|
addPrefixToSameNamePMCAsPlayerChance: number;
|
||||||
|
allPMCsHavePlayerNameWithRandomPrefixChance: number;
|
||||||
}
|
}
|
||||||
export interface PmcTypes {
|
export interface PmcTypes {
|
||||||
usec: string;
|
usec: string;
|
||||||
|
@ -2,17 +2,19 @@ import { I18n } from "i18n";
|
|||||||
import { ILocaleConfig } from "../models/spt/config/ILocaleConfig";
|
import { ILocaleConfig } from "../models/spt/config/ILocaleConfig";
|
||||||
import { ILogger } from "../models/spt/utils/ILogger";
|
import { ILogger } from "../models/spt/utils/ILogger";
|
||||||
import { DatabaseServer } from "../servers/DatabaseServer";
|
import { DatabaseServer } from "../servers/DatabaseServer";
|
||||||
|
import { RandomUtil } from "../utils/RandomUtil";
|
||||||
import { LocaleService } from "./LocaleService";
|
import { LocaleService } from "./LocaleService";
|
||||||
/**
|
/**
|
||||||
* Handles translating server text into different langauges
|
* Handles translating server text into different langauges
|
||||||
*/
|
*/
|
||||||
export declare class LocalisationService {
|
export declare class LocalisationService {
|
||||||
protected logger: ILogger;
|
protected logger: ILogger;
|
||||||
|
protected randomUtil: RandomUtil;
|
||||||
protected databaseServer: DatabaseServer;
|
protected databaseServer: DatabaseServer;
|
||||||
protected localeService: LocaleService;
|
protected localeService: LocaleService;
|
||||||
protected localeConfig: ILocaleConfig;
|
protected localeConfig: ILocaleConfig;
|
||||||
protected i18n: I18n;
|
protected i18n: I18n;
|
||||||
constructor(logger: ILogger, databaseServer: DatabaseServer, localeService: LocaleService);
|
constructor(logger: ILogger, randomUtil: RandomUtil, databaseServer: DatabaseServer, localeService: LocaleService);
|
||||||
/**
|
/**
|
||||||
* Get a localised value using the passed in key
|
* Get a localised value using the passed in key
|
||||||
* @param key Key to loop up locale for
|
* @param key Key to loop up locale for
|
||||||
@ -25,4 +27,10 @@ export declare class LocalisationService {
|
|||||||
* @returns string array of keys
|
* @returns string array of keys
|
||||||
*/
|
*/
|
||||||
getKeys(): string[];
|
getKeys(): string[];
|
||||||
|
/**
|
||||||
|
* From the provided partial key, find all keys that start with text and choose a random match
|
||||||
|
* @param partialKey Key to match locale keys on
|
||||||
|
* @returns locale text
|
||||||
|
*/
|
||||||
|
getRandomTextThatMatchesPartialKey(partialKey: string): string;
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import { DialogueHelper } from "../helpers/DialogueHelper";
|
||||||
import { ItemHelper } from "../helpers/ItemHelper";
|
import { ItemHelper } from "../helpers/ItemHelper";
|
||||||
import { NotificationSendHelper } from "../helpers/NotificationSendHelper";
|
import { NotificationSendHelper } from "../helpers/NotificationSendHelper";
|
||||||
import { NotifierHelper } from "../helpers/NotifierHelper";
|
import { NotifierHelper } from "../helpers/NotifierHelper";
|
||||||
@ -19,11 +20,12 @@ export declare class MailSendService {
|
|||||||
protected saveServer: SaveServer;
|
protected saveServer: SaveServer;
|
||||||
protected databaseServer: DatabaseServer;
|
protected databaseServer: DatabaseServer;
|
||||||
protected notifierHelper: NotifierHelper;
|
protected notifierHelper: NotifierHelper;
|
||||||
|
protected dialogueHelper: DialogueHelper;
|
||||||
protected notificationSendHelper: NotificationSendHelper;
|
protected notificationSendHelper: NotificationSendHelper;
|
||||||
protected localisationService: LocalisationService;
|
protected localisationService: LocalisationService;
|
||||||
protected itemHelper: ItemHelper;
|
protected itemHelper: ItemHelper;
|
||||||
protected readonly systemSenderId = "59e7125688a45068a6249071";
|
protected readonly systemSenderId = "59e7125688a45068a6249071";
|
||||||
constructor(logger: ILogger, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, databaseServer: DatabaseServer, notifierHelper: NotifierHelper, notificationSendHelper: NotificationSendHelper, localisationService: LocalisationService, itemHelper: ItemHelper);
|
constructor(logger: ILogger, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, databaseServer: DatabaseServer, notifierHelper: NotifierHelper, dialogueHelper: DialogueHelper, notificationSendHelper: NotificationSendHelper, localisationService: LocalisationService, itemHelper: ItemHelper);
|
||||||
/**
|
/**
|
||||||
* Send a message from an NPC (e.g. prapor) to the player with or without items using direct message text, do not look up any locale
|
* Send a message from an NPC (e.g. prapor) to the player with or without items using direct message text, do not look up any locale
|
||||||
* @param playerId Players id to send message to
|
* @param playerId Players id to send message to
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import { HideoutHelper } from "../helpers/HideoutHelper";
|
import { HideoutHelper } from "../helpers/HideoutHelper";
|
||||||
import { InventoryHelper } from "../helpers/InventoryHelper";
|
import { InventoryHelper } from "../helpers/InventoryHelper";
|
||||||
import { ItemHelper } from "../helpers/ItemHelper";
|
import { ItemHelper } from "../helpers/ItemHelper";
|
||||||
|
import { TraderHelper } from "../helpers/TraderHelper";
|
||||||
import { IPmcData } from "../models/eft/common/IPmcData";
|
import { IPmcData } from "../models/eft/common/IPmcData";
|
||||||
import { Bonus, HideoutSlot } from "../models/eft/common/tables/IBotBase";
|
import { Bonus, HideoutSlot } from "../models/eft/common/tables/IBotBase";
|
||||||
import { IPmcDataRepeatableQuest, IRepeatableQuest } from "../models/eft/common/tables/IRepeatableQuests";
|
import { IPmcDataRepeatableQuest, IRepeatableQuest } from "../models/eft/common/tables/IRepeatableQuests";
|
||||||
@ -20,6 +21,7 @@ export declare class ProfileFixerService {
|
|||||||
protected watermark: Watermark;
|
protected watermark: Watermark;
|
||||||
protected hideoutHelper: HideoutHelper;
|
protected hideoutHelper: HideoutHelper;
|
||||||
protected inventoryHelper: InventoryHelper;
|
protected inventoryHelper: InventoryHelper;
|
||||||
|
protected traderHelper: TraderHelper;
|
||||||
protected itemHelper: ItemHelper;
|
protected itemHelper: ItemHelper;
|
||||||
protected localisationService: LocalisationService;
|
protected localisationService: LocalisationService;
|
||||||
protected timeUtil: TimeUtil;
|
protected timeUtil: TimeUtil;
|
||||||
@ -27,7 +29,7 @@ export declare class ProfileFixerService {
|
|||||||
protected configServer: ConfigServer;
|
protected configServer: ConfigServer;
|
||||||
protected coreConfig: ICoreConfig;
|
protected coreConfig: ICoreConfig;
|
||||||
protected ragfairConfig: IRagfairConfig;
|
protected ragfairConfig: IRagfairConfig;
|
||||||
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
|
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
|
||||||
/**
|
/**
|
||||||
* Find issues in the pmc profile data that may cause issues and fix them
|
* Find issues in the pmc profile data that may cause issues and fix them
|
||||||
* @param pmcProfile profile to check and fix
|
* @param pmcProfile profile to check and fix
|
||||||
@ -105,7 +107,7 @@ export declare class ProfileFixerService {
|
|||||||
* @param sessionId Session id
|
* @param sessionId Session id
|
||||||
* @param pmcProfile Profile to check inventory of
|
* @param pmcProfile Profile to check inventory of
|
||||||
*/
|
*/
|
||||||
checkForOrphanedModdedItems(sessionId: string, pmcProfile: IPmcData): void;
|
checkForOrphanedModdedItems(sessionId: string, fullProfile: IAkiProfile): void;
|
||||||
/**
|
/**
|
||||||
* Add `Improvements` object to hideout if missing - added in eft 13.0.21469
|
* Add `Improvements` object to hideout if missing - added in eft 13.0.21469
|
||||||
* @param pmcProfile profile to update
|
* @param pmcProfile profile to update
|
||||||
|
@ -41,4 +41,10 @@ export declare class DialogueHelper {
|
|||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
getMessageItemContents(messageID: string, sessionID: string, itemId: string): Item[];
|
getMessageItemContents(messageID: string, sessionID: string, itemId: string): Item[];
|
||||||
|
/**
|
||||||
|
* Get the dialogs dictionary for a profile, create if doesnt exist
|
||||||
|
* @param sessionId Session/player id
|
||||||
|
* @returns Dialog dictionary
|
||||||
|
*/
|
||||||
|
getDialogsForProfile(sessionId: string): Record<string, Dialogue>;
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { IPmcData } from "../models/eft/common/IPmcData";
|
import { IPmcData } from "../models/eft/common/IPmcData";
|
||||||
|
import { ProfileTraderTemplate } from "../models/eft/common/tables/IProfileTemplate";
|
||||||
import { ITraderAssort, ITraderBase, LoyaltyLevel } from "../models/eft/common/tables/ITrader";
|
import { ITraderAssort, ITraderBase, LoyaltyLevel } from "../models/eft/common/tables/ITrader";
|
||||||
import { Traders } from "../models/enums/Traders";
|
import { Traders } from "../models/enums/Traders";
|
||||||
import { ITraderConfig } from "../models/spt/config/ITraderConfig";
|
import { ITraderConfig } from "../models/spt/config/ITraderConfig";
|
||||||
@ -42,6 +43,7 @@ export declare class TraderHelper {
|
|||||||
* @param traderID trader id to reset
|
* @param traderID trader id to reset
|
||||||
*/
|
*/
|
||||||
resetTrader(sessionID: string, traderID: string): void;
|
resetTrader(sessionID: string, traderID: string): void;
|
||||||
|
protected getStartingStanding(traderId: string, rawProfileTemplate: ProfileTraderTemplate): number;
|
||||||
/**
|
/**
|
||||||
* Alter a traders unlocked status
|
* Alter a traders unlocked status
|
||||||
* @param traderId Trader to alter
|
* @param traderId Trader to alter
|
||||||
@ -113,4 +115,10 @@ export declare class TraderHelper {
|
|||||||
* @returns Traders key
|
* @returns Traders key
|
||||||
*/
|
*/
|
||||||
getTraderById(traderId: string): Traders;
|
getTraderById(traderId: string): Traders;
|
||||||
|
/**
|
||||||
|
* Does the 'Traders' enum has a value that matches the passed in parameter
|
||||||
|
* @param value Value to check for
|
||||||
|
* @returns True, values exists in Traders enum as a value
|
||||||
|
*/
|
||||||
|
traderEnumHasValue(value: string): boolean;
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,7 @@ export interface TemplateSide {
|
|||||||
character: IPmcData;
|
character: IPmcData;
|
||||||
suits: string[];
|
suits: string[];
|
||||||
dialogues: Record<string, Dialogue>;
|
dialogues: Record<string, Dialogue>;
|
||||||
weaponbuilds: WeaponBuild[];
|
weaponbuilds: Record<string, WeaponBuild>;
|
||||||
trader: ProfileTraderTemplate;
|
trader: ProfileTraderTemplate;
|
||||||
}
|
}
|
||||||
export interface ProfileTraderTemplate {
|
export interface ProfileTraderTemplate {
|
||||||
|
@ -7,7 +7,7 @@ export interface IAkiProfile {
|
|||||||
characters: Characters;
|
characters: Characters;
|
||||||
/** Clothing purchases */
|
/** Clothing purchases */
|
||||||
suits: string[];
|
suits: string[];
|
||||||
weaponbuilds: WeaponBuild[];
|
weaponbuilds: Record<string, WeaponBuild>;
|
||||||
dialogues: Record<string, Dialogue>;
|
dialogues: Record<string, Dialogue>;
|
||||||
aki: Aki;
|
aki: Aki;
|
||||||
vitality: Vitality;
|
vitality: Vitality;
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import { DialogueHelper } from "../helpers/DialogueHelper";
|
||||||
import { ItemHelper } from "../helpers/ItemHelper";
|
import { ItemHelper } from "../helpers/ItemHelper";
|
||||||
import { NotificationSendHelper } from "../helpers/NotificationSendHelper";
|
import { NotificationSendHelper } from "../helpers/NotificationSendHelper";
|
||||||
import { NotifierHelper } from "../helpers/NotifierHelper";
|
import { NotifierHelper } from "../helpers/NotifierHelper";
|
||||||
@ -19,11 +20,12 @@ export declare class MailSendService {
|
|||||||
protected saveServer: SaveServer;
|
protected saveServer: SaveServer;
|
||||||
protected databaseServer: DatabaseServer;
|
protected databaseServer: DatabaseServer;
|
||||||
protected notifierHelper: NotifierHelper;
|
protected notifierHelper: NotifierHelper;
|
||||||
|
protected dialogueHelper: DialogueHelper;
|
||||||
protected notificationSendHelper: NotificationSendHelper;
|
protected notificationSendHelper: NotificationSendHelper;
|
||||||
protected localisationService: LocalisationService;
|
protected localisationService: LocalisationService;
|
||||||
protected itemHelper: ItemHelper;
|
protected itemHelper: ItemHelper;
|
||||||
protected readonly systemSenderId = "59e7125688a45068a6249071";
|
protected readonly systemSenderId = "59e7125688a45068a6249071";
|
||||||
constructor(logger: ILogger, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, databaseServer: DatabaseServer, notifierHelper: NotifierHelper, notificationSendHelper: NotificationSendHelper, localisationService: LocalisationService, itemHelper: ItemHelper);
|
constructor(logger: ILogger, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, databaseServer: DatabaseServer, notifierHelper: NotifierHelper, dialogueHelper: DialogueHelper, notificationSendHelper: NotificationSendHelper, localisationService: LocalisationService, itemHelper: ItemHelper);
|
||||||
/**
|
/**
|
||||||
* Send a message from an NPC (e.g. prapor) to the player with or without items using direct message text, do not look up any locale
|
* Send a message from an NPC (e.g. prapor) to the player with or without items using direct message text, do not look up any locale
|
||||||
* @param playerId Players id to send message to
|
* @param playerId Players id to send message to
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import { HideoutHelper } from "../helpers/HideoutHelper";
|
import { HideoutHelper } from "../helpers/HideoutHelper";
|
||||||
import { InventoryHelper } from "../helpers/InventoryHelper";
|
import { InventoryHelper } from "../helpers/InventoryHelper";
|
||||||
import { ItemHelper } from "../helpers/ItemHelper";
|
import { ItemHelper } from "../helpers/ItemHelper";
|
||||||
|
import { TraderHelper } from "../helpers/TraderHelper";
|
||||||
import { IPmcData } from "../models/eft/common/IPmcData";
|
import { IPmcData } from "../models/eft/common/IPmcData";
|
||||||
import { Bonus, HideoutSlot } from "../models/eft/common/tables/IBotBase";
|
import { Bonus, HideoutSlot } from "../models/eft/common/tables/IBotBase";
|
||||||
import { IPmcDataRepeatableQuest, IRepeatableQuest } from "../models/eft/common/tables/IRepeatableQuests";
|
import { IPmcDataRepeatableQuest, IRepeatableQuest } from "../models/eft/common/tables/IRepeatableQuests";
|
||||||
@ -20,6 +21,7 @@ export declare class ProfileFixerService {
|
|||||||
protected watermark: Watermark;
|
protected watermark: Watermark;
|
||||||
protected hideoutHelper: HideoutHelper;
|
protected hideoutHelper: HideoutHelper;
|
||||||
protected inventoryHelper: InventoryHelper;
|
protected inventoryHelper: InventoryHelper;
|
||||||
|
protected traderHelper: TraderHelper;
|
||||||
protected itemHelper: ItemHelper;
|
protected itemHelper: ItemHelper;
|
||||||
protected localisationService: LocalisationService;
|
protected localisationService: LocalisationService;
|
||||||
protected timeUtil: TimeUtil;
|
protected timeUtil: TimeUtil;
|
||||||
@ -27,7 +29,7 @@ export declare class ProfileFixerService {
|
|||||||
protected configServer: ConfigServer;
|
protected configServer: ConfigServer;
|
||||||
protected coreConfig: ICoreConfig;
|
protected coreConfig: ICoreConfig;
|
||||||
protected ragfairConfig: IRagfairConfig;
|
protected ragfairConfig: IRagfairConfig;
|
||||||
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
|
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
|
||||||
/**
|
/**
|
||||||
* Find issues in the pmc profile data that may cause issues and fix them
|
* Find issues in the pmc profile data that may cause issues and fix them
|
||||||
* @param pmcProfile profile to check and fix
|
* @param pmcProfile profile to check and fix
|
||||||
@ -105,7 +107,7 @@ export declare class ProfileFixerService {
|
|||||||
* @param sessionId Session id
|
* @param sessionId Session id
|
||||||
* @param pmcProfile Profile to check inventory of
|
* @param pmcProfile Profile to check inventory of
|
||||||
*/
|
*/
|
||||||
checkForOrphanedModdedItems(sessionId: string, pmcProfile: IPmcData): void;
|
checkForOrphanedModdedItems(sessionId: string, fullProfile: IAkiProfile): void;
|
||||||
/**
|
/**
|
||||||
* Add `Improvements` object to hideout if missing - added in eft 13.0.21469
|
* Add `Improvements` object to hideout if missing - added in eft 13.0.21469
|
||||||
* @param pmcProfile profile to update
|
* @param pmcProfile profile to update
|
||||||
|
@ -11,9 +11,11 @@ import { IGameConfigResponse } from "../models/eft/game/IGameConfigResponse";
|
|||||||
import { IGameKeepAliveResponse } from "../models/eft/game/IGameKeepAliveResponse";
|
import { IGameKeepAliveResponse } from "../models/eft/game/IGameKeepAliveResponse";
|
||||||
import { IServerDetails } from "../models/eft/game/IServerDetails";
|
import { IServerDetails } from "../models/eft/game/IServerDetails";
|
||||||
import { IAkiProfile } from "../models/eft/profile/IAkiProfile";
|
import { IAkiProfile } from "../models/eft/profile/IAkiProfile";
|
||||||
|
import { IBotConfig } from "../models/spt/config/IBotConfig";
|
||||||
import { ICoreConfig } from "../models/spt/config/ICoreConfig";
|
import { ICoreConfig } from "../models/spt/config/ICoreConfig";
|
||||||
import { IHttpConfig } from "../models/spt/config/IHttpConfig";
|
import { IHttpConfig } from "../models/spt/config/IHttpConfig";
|
||||||
import { ILocationConfig } from "../models/spt/config/ILocationConfig";
|
import { ILocationConfig } from "../models/spt/config/ILocationConfig";
|
||||||
|
import { IRagfairConfig } from "../models/spt/config/IRagfairConfig";
|
||||||
import { ILogger } from "../models/spt/utils/ILogger";
|
import { ILogger } from "../models/spt/utils/ILogger";
|
||||||
import { ConfigServer } from "../servers/ConfigServer";
|
import { ConfigServer } from "../servers/ConfigServer";
|
||||||
import { DatabaseServer } from "../servers/DatabaseServer";
|
import { DatabaseServer } from "../servers/DatabaseServer";
|
||||||
@ -25,6 +27,7 @@ import { ProfileFixerService } from "../services/ProfileFixerService";
|
|||||||
import { SeasonalEventService } from "../services/SeasonalEventService";
|
import { SeasonalEventService } from "../services/SeasonalEventService";
|
||||||
import { EncodingUtil } from "../utils/EncodingUtil";
|
import { EncodingUtil } from "../utils/EncodingUtil";
|
||||||
import { JsonUtil } from "../utils/JsonUtil";
|
import { JsonUtil } from "../utils/JsonUtil";
|
||||||
|
import { RandomUtil } from "../utils/RandomUtil";
|
||||||
import { TimeUtil } from "../utils/TimeUtil";
|
import { TimeUtil } from "../utils/TimeUtil";
|
||||||
export declare class GameController {
|
export declare class GameController {
|
||||||
protected logger: ILogger;
|
protected logger: ILogger;
|
||||||
@ -33,6 +36,7 @@ export declare class GameController {
|
|||||||
protected timeUtil: TimeUtil;
|
protected timeUtil: TimeUtil;
|
||||||
protected preAkiModLoader: PreAkiModLoader;
|
protected preAkiModLoader: PreAkiModLoader;
|
||||||
protected httpServerHelper: HttpServerHelper;
|
protected httpServerHelper: HttpServerHelper;
|
||||||
|
protected randomUtil: RandomUtil;
|
||||||
protected encodingUtil: EncodingUtil;
|
protected encodingUtil: EncodingUtil;
|
||||||
protected hideoutHelper: HideoutHelper;
|
protected hideoutHelper: HideoutHelper;
|
||||||
protected profileHelper: ProfileHelper;
|
protected profileHelper: ProfileHelper;
|
||||||
@ -48,7 +52,9 @@ export declare class GameController {
|
|||||||
protected httpConfig: IHttpConfig;
|
protected httpConfig: IHttpConfig;
|
||||||
protected coreConfig: ICoreConfig;
|
protected coreConfig: ICoreConfig;
|
||||||
protected locationConfig: ILocationConfig;
|
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, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
|
protected ragfairConfig: IRagfairConfig;
|
||||||
|
protected botConfig: IBotConfig;
|
||||||
|
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, 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
|
* Handle client/game/start
|
||||||
*/
|
*/
|
||||||
@ -84,6 +90,7 @@ export declare class GameController {
|
|||||||
* @param pmcProfile Player profile
|
* @param pmcProfile Player profile
|
||||||
*/
|
*/
|
||||||
protected warnOnActiveBotReloadSkill(pmcProfile: IPmcData): void;
|
protected warnOnActiveBotReloadSkill(pmcProfile: IPmcData): void;
|
||||||
|
protected flagAllItemsInDbAsSellableOnFlea(): void;
|
||||||
/**
|
/**
|
||||||
* When player logs in, iterate over all active effects and reduce timer
|
* When player logs in, iterate over all active effects and reduce timer
|
||||||
* TODO - add body part HP regen
|
* TODO - add body part HP regen
|
||||||
@ -118,9 +125,14 @@ export declare class GameController {
|
|||||||
protected validateQuestAssortUnlocksExist(): void;
|
protected validateQuestAssortUnlocksExist(): void;
|
||||||
/**
|
/**
|
||||||
* Add the logged in players name to PMC name pool
|
* Add the logged in players name to PMC name pool
|
||||||
* @param pmcProfile
|
* @param pmcProfile Profile of player to get name from
|
||||||
*/
|
*/
|
||||||
protected addPlayerToPMCNames(pmcProfile: IPmcData): void;
|
protected addPlayerToPMCNames(pmcProfile: IPmcData): void;
|
||||||
|
/**
|
||||||
|
* Check for a dialog with the key 'undefined', and remove it
|
||||||
|
* @param fullProfile Profile to check for dialog in
|
||||||
|
*/
|
||||||
|
protected checkForAndRemoveUndefinedDialogs(fullProfile: IAkiProfile): void;
|
||||||
/**
|
/**
|
||||||
* Blank out the "test" mail message from prapor
|
* Blank out the "test" mail message from prapor
|
||||||
*/
|
*/
|
||||||
|
@ -10,6 +10,7 @@ import { ILogger } from "../models/spt/utils/ILogger";
|
|||||||
import { ConfigServer } from "../servers/ConfigServer";
|
import { ConfigServer } from "../servers/ConfigServer";
|
||||||
import { DatabaseServer } from "../servers/DatabaseServer";
|
import { DatabaseServer } from "../servers/DatabaseServer";
|
||||||
import { BotEquipmentFilterService } from "../services/BotEquipmentFilterService";
|
import { BotEquipmentFilterService } from "../services/BotEquipmentFilterService";
|
||||||
|
import { LocalisationService } from "../services/LocalisationService";
|
||||||
import { SeasonalEventService } from "../services/SeasonalEventService";
|
import { SeasonalEventService } from "../services/SeasonalEventService";
|
||||||
import { HashUtil } from "../utils/HashUtil";
|
import { HashUtil } from "../utils/HashUtil";
|
||||||
import { JsonUtil } from "../utils/JsonUtil";
|
import { JsonUtil } from "../utils/JsonUtil";
|
||||||
@ -32,9 +33,10 @@ export declare class BotGenerator {
|
|||||||
protected botHelper: BotHelper;
|
protected botHelper: BotHelper;
|
||||||
protected botDifficultyHelper: BotDifficultyHelper;
|
protected botDifficultyHelper: BotDifficultyHelper;
|
||||||
protected seasonalEventService: SeasonalEventService;
|
protected seasonalEventService: SeasonalEventService;
|
||||||
|
protected localisationService: LocalisationService;
|
||||||
protected configServer: ConfigServer;
|
protected configServer: ConfigServer;
|
||||||
protected botConfig: IBotConfig;
|
protected botConfig: IBotConfig;
|
||||||
constructor(logger: ILogger, hashUtil: HashUtil, randomUtil: RandomUtil, timeUtil: TimeUtil, jsonUtil: JsonUtil, profileHelper: ProfileHelper, databaseServer: DatabaseServer, botInventoryGenerator: BotInventoryGenerator, botLevelGenerator: BotLevelGenerator, botEquipmentFilterService: BotEquipmentFilterService, weightedRandomHelper: WeightedRandomHelper, botHelper: BotHelper, botDifficultyHelper: BotDifficultyHelper, seasonalEventService: SeasonalEventService, configServer: ConfigServer);
|
constructor(logger: ILogger, hashUtil: HashUtil, randomUtil: RandomUtil, timeUtil: TimeUtil, jsonUtil: JsonUtil, profileHelper: ProfileHelper, databaseServer: DatabaseServer, botInventoryGenerator: BotInventoryGenerator, botLevelGenerator: BotLevelGenerator, botEquipmentFilterService: BotEquipmentFilterService, weightedRandomHelper: WeightedRandomHelper, botHelper: BotHelper, botDifficultyHelper: BotDifficultyHelper, seasonalEventService: SeasonalEventService, localisationService: LocalisationService, configServer: ConfigServer);
|
||||||
/**
|
/**
|
||||||
* Generate a player scav bot object
|
* Generate a player scav bot object
|
||||||
* @param role e.g. assault / pmcbot
|
* @param role e.g. assault / pmcbot
|
||||||
@ -71,7 +73,7 @@ export declare class BotGenerator {
|
|||||||
* @param botRole role of bot e.g. assault
|
* @param botRole role of bot e.g. assault
|
||||||
* @returns Nickname for bot
|
* @returns Nickname for bot
|
||||||
*/
|
*/
|
||||||
protected generateBotNickname(botJsonTemplate: IBotType, isPlayerScav: boolean, botRole: string): string;
|
protected generateBotNickname(botJsonTemplate: IBotType, isPlayerScav: boolean, botRole: string, sessionId: string): string;
|
||||||
/**
|
/**
|
||||||
* Log the number of PMCs generated to the debug console
|
* Log the number of PMCs generated to the debug console
|
||||||
* @param output Generated bot array, ready to send to client
|
* @param output Generated bot array, ready to send to client
|
||||||
|
@ -41,4 +41,10 @@ export declare class DialogueHelper {
|
|||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
getMessageItemContents(messageID: string, sessionID: string, itemId: string): Item[];
|
getMessageItemContents(messageID: string, sessionID: string, itemId: string): Item[];
|
||||||
|
/**
|
||||||
|
* Get the dialogs dictionary for a profile, create if doesnt exist
|
||||||
|
* @param sessionId Session/player id
|
||||||
|
* @returns Dialog dictionary
|
||||||
|
*/
|
||||||
|
getDialogsForProfile(sessionId: string): Record<string, Dialogue>;
|
||||||
}
|
}
|
||||||
|
@ -58,16 +58,12 @@ export declare class HideoutHelper {
|
|||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
isProductionType(productive: Productive): productive is Production;
|
isProductionType(productive: Productive): productive is Production;
|
||||||
applyPlayerUpgradesBonuses(pmcData: IPmcData, bonus: StageBonus): void;
|
|
||||||
/**
|
/**
|
||||||
* TODO:
|
* Apply bonus to player profile given after completing hideout upgrades
|
||||||
* After looking at the skills there doesnt seem to be a configuration per skill to boost
|
* @param pmcData Profile to add bonus to
|
||||||
* the XP gain PER skill. I THINK you should be able to put the variable "SkillProgress" (just like health has it)
|
* @param bonus Bonus to add to profile
|
||||||
* and be able to tune the skill gain PER skill, but I havent tested it and Im not sure!
|
|
||||||
* @param pmcData
|
|
||||||
* @param bonus
|
|
||||||
*/
|
*/
|
||||||
protected applySkillXPBoost(pmcData: IPmcData, bonus: StageBonus): void;
|
applyPlayerUpgradesBonuses(pmcData: IPmcData, bonus: StageBonus): void;
|
||||||
/**
|
/**
|
||||||
* Process a players hideout, update areas that use resources + increment production timers
|
* Process a players hideout, update areas that use resources + increment production timers
|
||||||
* @param sessionID Session id
|
* @param sessionID Session id
|
||||||
@ -83,6 +79,7 @@ export declare class HideoutHelper {
|
|||||||
isGeneratorOn: boolean;
|
isGeneratorOn: boolean;
|
||||||
waterCollectorHasFilter: boolean;
|
waterCollectorHasFilter: boolean;
|
||||||
};
|
};
|
||||||
|
protected doesWaterCollectorHaveFilter(waterCollector: HideoutArea): boolean;
|
||||||
/**
|
/**
|
||||||
* Update progress timer for water collector
|
* Update progress timer for water collector
|
||||||
* @param pmcData profile to update
|
* @param pmcData profile to update
|
||||||
@ -141,9 +138,8 @@ export declare class HideoutHelper {
|
|||||||
isGeneratorOn: boolean;
|
isGeneratorOn: boolean;
|
||||||
waterCollectorHasFilter: boolean;
|
waterCollectorHasFilter: boolean;
|
||||||
}): void;
|
}): void;
|
||||||
protected updateWaterCollector(sessionId: string, pmcData: IPmcData, area: HideoutArea, isGeneratorOn: boolean): void;
|
|
||||||
protected doesWaterCollectorHaveFilter(waterCollector: HideoutArea): boolean;
|
|
||||||
protected updateFuel(generatorArea: HideoutArea, pmcData: IPmcData): void;
|
protected updateFuel(generatorArea: HideoutArea, pmcData: IPmcData): void;
|
||||||
|
protected updateWaterCollector(sessionId: string, pmcData: IPmcData, area: HideoutArea, isGeneratorOn: boolean): void;
|
||||||
/**
|
/**
|
||||||
* Adjust water filter objects resourceValue or delete when they reach 0 resource
|
* Adjust water filter objects resourceValue or delete when they reach 0 resource
|
||||||
* @param waterFilterArea water filter area to update
|
* @param waterFilterArea water filter area to update
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { IPmcData } from "../models/eft/common/IPmcData";
|
import { IPmcData } from "../models/eft/common/IPmcData";
|
||||||
|
import { ProfileTraderTemplate } from "../models/eft/common/tables/IProfileTemplate";
|
||||||
import { ITraderAssort, ITraderBase, LoyaltyLevel } from "../models/eft/common/tables/ITrader";
|
import { ITraderAssort, ITraderBase, LoyaltyLevel } from "../models/eft/common/tables/ITrader";
|
||||||
import { Traders } from "../models/enums/Traders";
|
import { Traders } from "../models/enums/Traders";
|
||||||
import { ITraderConfig } from "../models/spt/config/ITraderConfig";
|
import { ITraderConfig } from "../models/spt/config/ITraderConfig";
|
||||||
@ -42,6 +43,7 @@ export declare class TraderHelper {
|
|||||||
* @param traderID trader id to reset
|
* @param traderID trader id to reset
|
||||||
*/
|
*/
|
||||||
resetTrader(sessionID: string, traderID: string): void;
|
resetTrader(sessionID: string, traderID: string): void;
|
||||||
|
protected getStartingStanding(traderId: string, rawProfileTemplate: ProfileTraderTemplate): number;
|
||||||
/**
|
/**
|
||||||
* Alter a traders unlocked status
|
* Alter a traders unlocked status
|
||||||
* @param traderId Trader to alter
|
* @param traderId Trader to alter
|
||||||
@ -113,4 +115,10 @@ export declare class TraderHelper {
|
|||||||
* @returns Traders key
|
* @returns Traders key
|
||||||
*/
|
*/
|
||||||
getTraderById(traderId: string): Traders;
|
getTraderById(traderId: string): Traders;
|
||||||
|
/**
|
||||||
|
* Does the 'Traders' enum has a value that matches the passed in parameter
|
||||||
|
* @param value Value to check for
|
||||||
|
* @returns True, values exists in Traders enum as a value
|
||||||
|
*/
|
||||||
|
traderEnumHasValue(value: string): boolean;
|
||||||
}
|
}
|
||||||
|
@ -35,6 +35,7 @@ export declare class PreAkiModLoader implements IModLoader {
|
|||||||
getImportedModDetails(): Record<string, IPackageJsonData>;
|
getImportedModDetails(): Record<string, IPackageJsonData>;
|
||||||
getModPath(mod: string): string;
|
getModPath(mod: string): string;
|
||||||
protected importMods(): Promise<void>;
|
protected importMods(): Promise<void>;
|
||||||
|
protected sortMods(prev: string, next: string, missingFromOrderJSON: Record<string, boolean>): number;
|
||||||
/**
|
/**
|
||||||
* Check for duplicate mods loaded, show error if any
|
* Check for duplicate mods loaded, show error if any
|
||||||
* @param modPackageData Dictionary of mod package.json data
|
* @param modPackageData Dictionary of mod package.json data
|
||||||
|
@ -14,7 +14,7 @@ export interface TemplateSide {
|
|||||||
character: IPmcData;
|
character: IPmcData;
|
||||||
suits: string[];
|
suits: string[];
|
||||||
dialogues: Record<string, Dialogue>;
|
dialogues: Record<string, Dialogue>;
|
||||||
weaponbuilds: WeaponBuild[];
|
weaponbuilds: Record<string, WeaponBuild>;
|
||||||
trader: ProfileTraderTemplate;
|
trader: ProfileTraderTemplate;
|
||||||
}
|
}
|
||||||
export interface ProfileTraderTemplate {
|
export interface ProfileTraderTemplate {
|
||||||
|
@ -7,7 +7,7 @@ export interface IAkiProfile {
|
|||||||
characters: Characters;
|
characters: Characters;
|
||||||
/** Clothing purchases */
|
/** Clothing purchases */
|
||||||
suits: string[];
|
suits: string[];
|
||||||
weaponbuilds: WeaponBuild[];
|
weaponbuilds: Record<string, WeaponBuild>;
|
||||||
dialogues: Record<string, Dialogue>;
|
dialogues: Record<string, Dialogue>;
|
||||||
aki: Aki;
|
aki: Aki;
|
||||||
vitality: Vitality;
|
vitality: Vitality;
|
||||||
|
@ -40,6 +40,8 @@ export interface IPmcConfig {
|
|||||||
botRelativeLevelDeltaMax: number;
|
botRelativeLevelDeltaMax: number;
|
||||||
/** Force a number of healing items into PMCs secure container to ensure they can heal */
|
/** Force a number of healing items into PMCs secure container to ensure they can heal */
|
||||||
forceHealingItemsIntoSecure: boolean;
|
forceHealingItemsIntoSecure: boolean;
|
||||||
|
addPrefixToSameNamePMCAsPlayerChance: number;
|
||||||
|
allPMCsHavePlayerNameWithRandomPrefixChance: number;
|
||||||
}
|
}
|
||||||
export interface PmcTypes {
|
export interface PmcTypes {
|
||||||
usec: string;
|
usec: string;
|
||||||
|
@ -2,17 +2,19 @@ import { I18n } from "i18n";
|
|||||||
import { ILocaleConfig } from "../models/spt/config/ILocaleConfig";
|
import { ILocaleConfig } from "../models/spt/config/ILocaleConfig";
|
||||||
import { ILogger } from "../models/spt/utils/ILogger";
|
import { ILogger } from "../models/spt/utils/ILogger";
|
||||||
import { DatabaseServer } from "../servers/DatabaseServer";
|
import { DatabaseServer } from "../servers/DatabaseServer";
|
||||||
|
import { RandomUtil } from "../utils/RandomUtil";
|
||||||
import { LocaleService } from "./LocaleService";
|
import { LocaleService } from "./LocaleService";
|
||||||
/**
|
/**
|
||||||
* Handles translating server text into different langauges
|
* Handles translating server text into different langauges
|
||||||
*/
|
*/
|
||||||
export declare class LocalisationService {
|
export declare class LocalisationService {
|
||||||
protected logger: ILogger;
|
protected logger: ILogger;
|
||||||
|
protected randomUtil: RandomUtil;
|
||||||
protected databaseServer: DatabaseServer;
|
protected databaseServer: DatabaseServer;
|
||||||
protected localeService: LocaleService;
|
protected localeService: LocaleService;
|
||||||
protected localeConfig: ILocaleConfig;
|
protected localeConfig: ILocaleConfig;
|
||||||
protected i18n: I18n;
|
protected i18n: I18n;
|
||||||
constructor(logger: ILogger, databaseServer: DatabaseServer, localeService: LocaleService);
|
constructor(logger: ILogger, randomUtil: RandomUtil, databaseServer: DatabaseServer, localeService: LocaleService);
|
||||||
/**
|
/**
|
||||||
* Get a localised value using the passed in key
|
* Get a localised value using the passed in key
|
||||||
* @param key Key to loop up locale for
|
* @param key Key to loop up locale for
|
||||||
@ -25,4 +27,10 @@ export declare class LocalisationService {
|
|||||||
* @returns string array of keys
|
* @returns string array of keys
|
||||||
*/
|
*/
|
||||||
getKeys(): string[];
|
getKeys(): string[];
|
||||||
|
/**
|
||||||
|
* From the provided partial key, find all keys that start with text and choose a random match
|
||||||
|
* @param partialKey Key to match locale keys on
|
||||||
|
* @returns locale text
|
||||||
|
*/
|
||||||
|
getRandomTextThatMatchesPartialKey(partialKey: string): string;
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import { DialogueHelper } from "../helpers/DialogueHelper";
|
||||||
import { ItemHelper } from "../helpers/ItemHelper";
|
import { ItemHelper } from "../helpers/ItemHelper";
|
||||||
import { NotificationSendHelper } from "../helpers/NotificationSendHelper";
|
import { NotificationSendHelper } from "../helpers/NotificationSendHelper";
|
||||||
import { NotifierHelper } from "../helpers/NotifierHelper";
|
import { NotifierHelper } from "../helpers/NotifierHelper";
|
||||||
@ -19,11 +20,12 @@ export declare class MailSendService {
|
|||||||
protected saveServer: SaveServer;
|
protected saveServer: SaveServer;
|
||||||
protected databaseServer: DatabaseServer;
|
protected databaseServer: DatabaseServer;
|
||||||
protected notifierHelper: NotifierHelper;
|
protected notifierHelper: NotifierHelper;
|
||||||
|
protected dialogueHelper: DialogueHelper;
|
||||||
protected notificationSendHelper: NotificationSendHelper;
|
protected notificationSendHelper: NotificationSendHelper;
|
||||||
protected localisationService: LocalisationService;
|
protected localisationService: LocalisationService;
|
||||||
protected itemHelper: ItemHelper;
|
protected itemHelper: ItemHelper;
|
||||||
protected readonly systemSenderId = "59e7125688a45068a6249071";
|
protected readonly systemSenderId = "59e7125688a45068a6249071";
|
||||||
constructor(logger: ILogger, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, databaseServer: DatabaseServer, notifierHelper: NotifierHelper, notificationSendHelper: NotificationSendHelper, localisationService: LocalisationService, itemHelper: ItemHelper);
|
constructor(logger: ILogger, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, databaseServer: DatabaseServer, notifierHelper: NotifierHelper, dialogueHelper: DialogueHelper, notificationSendHelper: NotificationSendHelper, localisationService: LocalisationService, itemHelper: ItemHelper);
|
||||||
/**
|
/**
|
||||||
* Send a message from an NPC (e.g. prapor) to the player with or without items using direct message text, do not look up any locale
|
* Send a message from an NPC (e.g. prapor) to the player with or without items using direct message text, do not look up any locale
|
||||||
* @param playerId Players id to send message to
|
* @param playerId Players id to send message to
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import { HideoutHelper } from "../helpers/HideoutHelper";
|
import { HideoutHelper } from "../helpers/HideoutHelper";
|
||||||
import { InventoryHelper } from "../helpers/InventoryHelper";
|
import { InventoryHelper } from "../helpers/InventoryHelper";
|
||||||
import { ItemHelper } from "../helpers/ItemHelper";
|
import { ItemHelper } from "../helpers/ItemHelper";
|
||||||
|
import { TraderHelper } from "../helpers/TraderHelper";
|
||||||
import { IPmcData } from "../models/eft/common/IPmcData";
|
import { IPmcData } from "../models/eft/common/IPmcData";
|
||||||
import { Bonus, HideoutSlot } from "../models/eft/common/tables/IBotBase";
|
import { Bonus, HideoutSlot } from "../models/eft/common/tables/IBotBase";
|
||||||
import { IPmcDataRepeatableQuest, IRepeatableQuest } from "../models/eft/common/tables/IRepeatableQuests";
|
import { IPmcDataRepeatableQuest, IRepeatableQuest } from "../models/eft/common/tables/IRepeatableQuests";
|
||||||
@ -20,6 +21,7 @@ export declare class ProfileFixerService {
|
|||||||
protected watermark: Watermark;
|
protected watermark: Watermark;
|
||||||
protected hideoutHelper: HideoutHelper;
|
protected hideoutHelper: HideoutHelper;
|
||||||
protected inventoryHelper: InventoryHelper;
|
protected inventoryHelper: InventoryHelper;
|
||||||
|
protected traderHelper: TraderHelper;
|
||||||
protected itemHelper: ItemHelper;
|
protected itemHelper: ItemHelper;
|
||||||
protected localisationService: LocalisationService;
|
protected localisationService: LocalisationService;
|
||||||
protected timeUtil: TimeUtil;
|
protected timeUtil: TimeUtil;
|
||||||
@ -27,7 +29,7 @@ export declare class ProfileFixerService {
|
|||||||
protected configServer: ConfigServer;
|
protected configServer: ConfigServer;
|
||||||
protected coreConfig: ICoreConfig;
|
protected coreConfig: ICoreConfig;
|
||||||
protected ragfairConfig: IRagfairConfig;
|
protected ragfairConfig: IRagfairConfig;
|
||||||
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
|
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
|
||||||
/**
|
/**
|
||||||
* Find issues in the pmc profile data that may cause issues and fix them
|
* Find issues in the pmc profile data that may cause issues and fix them
|
||||||
* @param pmcProfile profile to check and fix
|
* @param pmcProfile profile to check and fix
|
||||||
@ -105,7 +107,7 @@ export declare class ProfileFixerService {
|
|||||||
* @param sessionId Session id
|
* @param sessionId Session id
|
||||||
* @param pmcProfile Profile to check inventory of
|
* @param pmcProfile Profile to check inventory of
|
||||||
*/
|
*/
|
||||||
checkForOrphanedModdedItems(sessionId: string, pmcProfile: IPmcData): void;
|
checkForOrphanedModdedItems(sessionId: string, fullProfile: IAkiProfile): void;
|
||||||
/**
|
/**
|
||||||
* Add `Improvements` object to hideout if missing - added in eft 13.0.21469
|
* Add `Improvements` object to hideout if missing - added in eft 13.0.21469
|
||||||
* @param pmcProfile profile to update
|
* @param pmcProfile profile to update
|
||||||
|
@ -11,9 +11,11 @@ import { IGameConfigResponse } from "../models/eft/game/IGameConfigResponse";
|
|||||||
import { IGameKeepAliveResponse } from "../models/eft/game/IGameKeepAliveResponse";
|
import { IGameKeepAliveResponse } from "../models/eft/game/IGameKeepAliveResponse";
|
||||||
import { IServerDetails } from "../models/eft/game/IServerDetails";
|
import { IServerDetails } from "../models/eft/game/IServerDetails";
|
||||||
import { IAkiProfile } from "../models/eft/profile/IAkiProfile";
|
import { IAkiProfile } from "../models/eft/profile/IAkiProfile";
|
||||||
|
import { IBotConfig } from "../models/spt/config/IBotConfig";
|
||||||
import { ICoreConfig } from "../models/spt/config/ICoreConfig";
|
import { ICoreConfig } from "../models/spt/config/ICoreConfig";
|
||||||
import { IHttpConfig } from "../models/spt/config/IHttpConfig";
|
import { IHttpConfig } from "../models/spt/config/IHttpConfig";
|
||||||
import { ILocationConfig } from "../models/spt/config/ILocationConfig";
|
import { ILocationConfig } from "../models/spt/config/ILocationConfig";
|
||||||
|
import { IRagfairConfig } from "../models/spt/config/IRagfairConfig";
|
||||||
import { ILogger } from "../models/spt/utils/ILogger";
|
import { ILogger } from "../models/spt/utils/ILogger";
|
||||||
import { ConfigServer } from "../servers/ConfigServer";
|
import { ConfigServer } from "../servers/ConfigServer";
|
||||||
import { DatabaseServer } from "../servers/DatabaseServer";
|
import { DatabaseServer } from "../servers/DatabaseServer";
|
||||||
@ -25,6 +27,7 @@ import { ProfileFixerService } from "../services/ProfileFixerService";
|
|||||||
import { SeasonalEventService } from "../services/SeasonalEventService";
|
import { SeasonalEventService } from "../services/SeasonalEventService";
|
||||||
import { EncodingUtil } from "../utils/EncodingUtil";
|
import { EncodingUtil } from "../utils/EncodingUtil";
|
||||||
import { JsonUtil } from "../utils/JsonUtil";
|
import { JsonUtil } from "../utils/JsonUtil";
|
||||||
|
import { RandomUtil } from "../utils/RandomUtil";
|
||||||
import { TimeUtil } from "../utils/TimeUtil";
|
import { TimeUtil } from "../utils/TimeUtil";
|
||||||
export declare class GameController {
|
export declare class GameController {
|
||||||
protected logger: ILogger;
|
protected logger: ILogger;
|
||||||
@ -33,6 +36,7 @@ export declare class GameController {
|
|||||||
protected timeUtil: TimeUtil;
|
protected timeUtil: TimeUtil;
|
||||||
protected preAkiModLoader: PreAkiModLoader;
|
protected preAkiModLoader: PreAkiModLoader;
|
||||||
protected httpServerHelper: HttpServerHelper;
|
protected httpServerHelper: HttpServerHelper;
|
||||||
|
protected randomUtil: RandomUtil;
|
||||||
protected encodingUtil: EncodingUtil;
|
protected encodingUtil: EncodingUtil;
|
||||||
protected hideoutHelper: HideoutHelper;
|
protected hideoutHelper: HideoutHelper;
|
||||||
protected profileHelper: ProfileHelper;
|
protected profileHelper: ProfileHelper;
|
||||||
@ -48,7 +52,9 @@ export declare class GameController {
|
|||||||
protected httpConfig: IHttpConfig;
|
protected httpConfig: IHttpConfig;
|
||||||
protected coreConfig: ICoreConfig;
|
protected coreConfig: ICoreConfig;
|
||||||
protected locationConfig: ILocationConfig;
|
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, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
|
protected ragfairConfig: IRagfairConfig;
|
||||||
|
protected botConfig: IBotConfig;
|
||||||
|
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, 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
|
* Handle client/game/start
|
||||||
*/
|
*/
|
||||||
@ -84,6 +90,7 @@ export declare class GameController {
|
|||||||
* @param pmcProfile Player profile
|
* @param pmcProfile Player profile
|
||||||
*/
|
*/
|
||||||
protected warnOnActiveBotReloadSkill(pmcProfile: IPmcData): void;
|
protected warnOnActiveBotReloadSkill(pmcProfile: IPmcData): void;
|
||||||
|
protected flagAllItemsInDbAsSellableOnFlea(): void;
|
||||||
/**
|
/**
|
||||||
* When player logs in, iterate over all active effects and reduce timer
|
* When player logs in, iterate over all active effects and reduce timer
|
||||||
* TODO - add body part HP regen
|
* TODO - add body part HP regen
|
||||||
@ -118,9 +125,14 @@ export declare class GameController {
|
|||||||
protected validateQuestAssortUnlocksExist(): void;
|
protected validateQuestAssortUnlocksExist(): void;
|
||||||
/**
|
/**
|
||||||
* Add the logged in players name to PMC name pool
|
* Add the logged in players name to PMC name pool
|
||||||
* @param pmcProfile
|
* @param pmcProfile Profile of player to get name from
|
||||||
*/
|
*/
|
||||||
protected addPlayerToPMCNames(pmcProfile: IPmcData): void;
|
protected addPlayerToPMCNames(pmcProfile: IPmcData): void;
|
||||||
|
/**
|
||||||
|
* Check for a dialog with the key 'undefined', and remove it
|
||||||
|
* @param fullProfile Profile to check for dialog in
|
||||||
|
*/
|
||||||
|
protected checkForAndRemoveUndefinedDialogs(fullProfile: IAkiProfile): void;
|
||||||
/**
|
/**
|
||||||
* Blank out the "test" mail message from prapor
|
* Blank out the "test" mail message from prapor
|
||||||
*/
|
*/
|
||||||
|
@ -10,6 +10,7 @@ import { ILogger } from "../models/spt/utils/ILogger";
|
|||||||
import { ConfigServer } from "../servers/ConfigServer";
|
import { ConfigServer } from "../servers/ConfigServer";
|
||||||
import { DatabaseServer } from "../servers/DatabaseServer";
|
import { DatabaseServer } from "../servers/DatabaseServer";
|
||||||
import { BotEquipmentFilterService } from "../services/BotEquipmentFilterService";
|
import { BotEquipmentFilterService } from "../services/BotEquipmentFilterService";
|
||||||
|
import { LocalisationService } from "../services/LocalisationService";
|
||||||
import { SeasonalEventService } from "../services/SeasonalEventService";
|
import { SeasonalEventService } from "../services/SeasonalEventService";
|
||||||
import { HashUtil } from "../utils/HashUtil";
|
import { HashUtil } from "../utils/HashUtil";
|
||||||
import { JsonUtil } from "../utils/JsonUtil";
|
import { JsonUtil } from "../utils/JsonUtil";
|
||||||
@ -32,9 +33,10 @@ export declare class BotGenerator {
|
|||||||
protected botHelper: BotHelper;
|
protected botHelper: BotHelper;
|
||||||
protected botDifficultyHelper: BotDifficultyHelper;
|
protected botDifficultyHelper: BotDifficultyHelper;
|
||||||
protected seasonalEventService: SeasonalEventService;
|
protected seasonalEventService: SeasonalEventService;
|
||||||
|
protected localisationService: LocalisationService;
|
||||||
protected configServer: ConfigServer;
|
protected configServer: ConfigServer;
|
||||||
protected botConfig: IBotConfig;
|
protected botConfig: IBotConfig;
|
||||||
constructor(logger: ILogger, hashUtil: HashUtil, randomUtil: RandomUtil, timeUtil: TimeUtil, jsonUtil: JsonUtil, profileHelper: ProfileHelper, databaseServer: DatabaseServer, botInventoryGenerator: BotInventoryGenerator, botLevelGenerator: BotLevelGenerator, botEquipmentFilterService: BotEquipmentFilterService, weightedRandomHelper: WeightedRandomHelper, botHelper: BotHelper, botDifficultyHelper: BotDifficultyHelper, seasonalEventService: SeasonalEventService, configServer: ConfigServer);
|
constructor(logger: ILogger, hashUtil: HashUtil, randomUtil: RandomUtil, timeUtil: TimeUtil, jsonUtil: JsonUtil, profileHelper: ProfileHelper, databaseServer: DatabaseServer, botInventoryGenerator: BotInventoryGenerator, botLevelGenerator: BotLevelGenerator, botEquipmentFilterService: BotEquipmentFilterService, weightedRandomHelper: WeightedRandomHelper, botHelper: BotHelper, botDifficultyHelper: BotDifficultyHelper, seasonalEventService: SeasonalEventService, localisationService: LocalisationService, configServer: ConfigServer);
|
||||||
/**
|
/**
|
||||||
* Generate a player scav bot object
|
* Generate a player scav bot object
|
||||||
* @param role e.g. assault / pmcbot
|
* @param role e.g. assault / pmcbot
|
||||||
@ -71,7 +73,7 @@ export declare class BotGenerator {
|
|||||||
* @param botRole role of bot e.g. assault
|
* @param botRole role of bot e.g. assault
|
||||||
* @returns Nickname for bot
|
* @returns Nickname for bot
|
||||||
*/
|
*/
|
||||||
protected generateBotNickname(botJsonTemplate: IBotType, isPlayerScav: boolean, botRole: string): string;
|
protected generateBotNickname(botJsonTemplate: IBotType, isPlayerScav: boolean, botRole: string, sessionId: string): string;
|
||||||
/**
|
/**
|
||||||
* Log the number of PMCs generated to the debug console
|
* Log the number of PMCs generated to the debug console
|
||||||
* @param output Generated bot array, ready to send to client
|
* @param output Generated bot array, ready to send to client
|
||||||
|
@ -41,4 +41,10 @@ export declare class DialogueHelper {
|
|||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
getMessageItemContents(messageID: string, sessionID: string, itemId: string): Item[];
|
getMessageItemContents(messageID: string, sessionID: string, itemId: string): Item[];
|
||||||
|
/**
|
||||||
|
* Get the dialogs dictionary for a profile, create if doesnt exist
|
||||||
|
* @param sessionId Session/player id
|
||||||
|
* @returns Dialog dictionary
|
||||||
|
*/
|
||||||
|
getDialogsForProfile(sessionId: string): Record<string, Dialogue>;
|
||||||
}
|
}
|
||||||
|
@ -58,16 +58,12 @@ export declare class HideoutHelper {
|
|||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
isProductionType(productive: Productive): productive is Production;
|
isProductionType(productive: Productive): productive is Production;
|
||||||
applyPlayerUpgradesBonuses(pmcData: IPmcData, bonus: StageBonus): void;
|
|
||||||
/**
|
/**
|
||||||
* TODO:
|
* Apply bonus to player profile given after completing hideout upgrades
|
||||||
* After looking at the skills there doesnt seem to be a configuration per skill to boost
|
* @param pmcData Profile to add bonus to
|
||||||
* the XP gain PER skill. I THINK you should be able to put the variable "SkillProgress" (just like health has it)
|
* @param bonus Bonus to add to profile
|
||||||
* and be able to tune the skill gain PER skill, but I havent tested it and Im not sure!
|
|
||||||
* @param pmcData
|
|
||||||
* @param bonus
|
|
||||||
*/
|
*/
|
||||||
protected applySkillXPBoost(pmcData: IPmcData, bonus: StageBonus): void;
|
applyPlayerUpgradesBonuses(pmcData: IPmcData, bonus: StageBonus): void;
|
||||||
/**
|
/**
|
||||||
* Process a players hideout, update areas that use resources + increment production timers
|
* Process a players hideout, update areas that use resources + increment production timers
|
||||||
* @param sessionID Session id
|
* @param sessionID Session id
|
||||||
@ -83,6 +79,7 @@ export declare class HideoutHelper {
|
|||||||
isGeneratorOn: boolean;
|
isGeneratorOn: boolean;
|
||||||
waterCollectorHasFilter: boolean;
|
waterCollectorHasFilter: boolean;
|
||||||
};
|
};
|
||||||
|
protected doesWaterCollectorHaveFilter(waterCollector: HideoutArea): boolean;
|
||||||
/**
|
/**
|
||||||
* Update progress timer for water collector
|
* Update progress timer for water collector
|
||||||
* @param pmcData profile to update
|
* @param pmcData profile to update
|
||||||
@ -141,9 +138,8 @@ export declare class HideoutHelper {
|
|||||||
isGeneratorOn: boolean;
|
isGeneratorOn: boolean;
|
||||||
waterCollectorHasFilter: boolean;
|
waterCollectorHasFilter: boolean;
|
||||||
}): void;
|
}): void;
|
||||||
protected updateWaterCollector(sessionId: string, pmcData: IPmcData, area: HideoutArea, isGeneratorOn: boolean): void;
|
|
||||||
protected doesWaterCollectorHaveFilter(waterCollector: HideoutArea): boolean;
|
|
||||||
protected updateFuel(generatorArea: HideoutArea, pmcData: IPmcData): void;
|
protected updateFuel(generatorArea: HideoutArea, pmcData: IPmcData): void;
|
||||||
|
protected updateWaterCollector(sessionId: string, pmcData: IPmcData, area: HideoutArea, isGeneratorOn: boolean): void;
|
||||||
/**
|
/**
|
||||||
* Adjust water filter objects resourceValue or delete when they reach 0 resource
|
* Adjust water filter objects resourceValue or delete when they reach 0 resource
|
||||||
* @param waterFilterArea water filter area to update
|
* @param waterFilterArea water filter area to update
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { IPmcData } from "../models/eft/common/IPmcData";
|
import { IPmcData } from "../models/eft/common/IPmcData";
|
||||||
|
import { ProfileTraderTemplate } from "../models/eft/common/tables/IProfileTemplate";
|
||||||
import { ITraderAssort, ITraderBase, LoyaltyLevel } from "../models/eft/common/tables/ITrader";
|
import { ITraderAssort, ITraderBase, LoyaltyLevel } from "../models/eft/common/tables/ITrader";
|
||||||
import { Traders } from "../models/enums/Traders";
|
import { Traders } from "../models/enums/Traders";
|
||||||
import { ITraderConfig } from "../models/spt/config/ITraderConfig";
|
import { ITraderConfig } from "../models/spt/config/ITraderConfig";
|
||||||
@ -42,6 +43,7 @@ export declare class TraderHelper {
|
|||||||
* @param traderID trader id to reset
|
* @param traderID trader id to reset
|
||||||
*/
|
*/
|
||||||
resetTrader(sessionID: string, traderID: string): void;
|
resetTrader(sessionID: string, traderID: string): void;
|
||||||
|
protected getStartingStanding(traderId: string, rawProfileTemplate: ProfileTraderTemplate): number;
|
||||||
/**
|
/**
|
||||||
* Alter a traders unlocked status
|
* Alter a traders unlocked status
|
||||||
* @param traderId Trader to alter
|
* @param traderId Trader to alter
|
||||||
@ -113,4 +115,10 @@ export declare class TraderHelper {
|
|||||||
* @returns Traders key
|
* @returns Traders key
|
||||||
*/
|
*/
|
||||||
getTraderById(traderId: string): Traders;
|
getTraderById(traderId: string): Traders;
|
||||||
|
/**
|
||||||
|
* Does the 'Traders' enum has a value that matches the passed in parameter
|
||||||
|
* @param value Value to check for
|
||||||
|
* @returns True, values exists in Traders enum as a value
|
||||||
|
*/
|
||||||
|
traderEnumHasValue(value: string): boolean;
|
||||||
}
|
}
|
||||||
|
@ -35,6 +35,7 @@ export declare class PreAkiModLoader implements IModLoader {
|
|||||||
getImportedModDetails(): Record<string, IPackageJsonData>;
|
getImportedModDetails(): Record<string, IPackageJsonData>;
|
||||||
getModPath(mod: string): string;
|
getModPath(mod: string): string;
|
||||||
protected importMods(): Promise<void>;
|
protected importMods(): Promise<void>;
|
||||||
|
protected sortMods(prev: string, next: string, missingFromOrderJSON: Record<string, boolean>): number;
|
||||||
/**
|
/**
|
||||||
* Check for duplicate mods loaded, show error if any
|
* Check for duplicate mods loaded, show error if any
|
||||||
* @param modPackageData Dictionary of mod package.json data
|
* @param modPackageData Dictionary of mod package.json data
|
||||||
|
@ -14,7 +14,7 @@ export interface TemplateSide {
|
|||||||
character: IPmcData;
|
character: IPmcData;
|
||||||
suits: string[];
|
suits: string[];
|
||||||
dialogues: Record<string, Dialogue>;
|
dialogues: Record<string, Dialogue>;
|
||||||
weaponbuilds: WeaponBuild[];
|
weaponbuilds: Record<string, WeaponBuild>;
|
||||||
trader: ProfileTraderTemplate;
|
trader: ProfileTraderTemplate;
|
||||||
}
|
}
|
||||||
export interface ProfileTraderTemplate {
|
export interface ProfileTraderTemplate {
|
||||||
|
@ -7,7 +7,7 @@ export interface IAkiProfile {
|
|||||||
characters: Characters;
|
characters: Characters;
|
||||||
/** Clothing purchases */
|
/** Clothing purchases */
|
||||||
suits: string[];
|
suits: string[];
|
||||||
weaponbuilds: WeaponBuild[];
|
weaponbuilds: Record<string, WeaponBuild>;
|
||||||
dialogues: Record<string, Dialogue>;
|
dialogues: Record<string, Dialogue>;
|
||||||
aki: Aki;
|
aki: Aki;
|
||||||
vitality: Vitality;
|
vitality: Vitality;
|
||||||
|
@ -40,6 +40,8 @@ export interface IPmcConfig {
|
|||||||
botRelativeLevelDeltaMax: number;
|
botRelativeLevelDeltaMax: number;
|
||||||
/** Force a number of healing items into PMCs secure container to ensure they can heal */
|
/** Force a number of healing items into PMCs secure container to ensure they can heal */
|
||||||
forceHealingItemsIntoSecure: boolean;
|
forceHealingItemsIntoSecure: boolean;
|
||||||
|
addPrefixToSameNamePMCAsPlayerChance: number;
|
||||||
|
allPMCsHavePlayerNameWithRandomPrefixChance: number;
|
||||||
}
|
}
|
||||||
export interface PmcTypes {
|
export interface PmcTypes {
|
||||||
usec: string;
|
usec: string;
|
||||||
|
@ -2,17 +2,19 @@ import { I18n } from "i18n";
|
|||||||
import { ILocaleConfig } from "../models/spt/config/ILocaleConfig";
|
import { ILocaleConfig } from "../models/spt/config/ILocaleConfig";
|
||||||
import { ILogger } from "../models/spt/utils/ILogger";
|
import { ILogger } from "../models/spt/utils/ILogger";
|
||||||
import { DatabaseServer } from "../servers/DatabaseServer";
|
import { DatabaseServer } from "../servers/DatabaseServer";
|
||||||
|
import { RandomUtil } from "../utils/RandomUtil";
|
||||||
import { LocaleService } from "./LocaleService";
|
import { LocaleService } from "./LocaleService";
|
||||||
/**
|
/**
|
||||||
* Handles translating server text into different langauges
|
* Handles translating server text into different langauges
|
||||||
*/
|
*/
|
||||||
export declare class LocalisationService {
|
export declare class LocalisationService {
|
||||||
protected logger: ILogger;
|
protected logger: ILogger;
|
||||||
|
protected randomUtil: RandomUtil;
|
||||||
protected databaseServer: DatabaseServer;
|
protected databaseServer: DatabaseServer;
|
||||||
protected localeService: LocaleService;
|
protected localeService: LocaleService;
|
||||||
protected localeConfig: ILocaleConfig;
|
protected localeConfig: ILocaleConfig;
|
||||||
protected i18n: I18n;
|
protected i18n: I18n;
|
||||||
constructor(logger: ILogger, databaseServer: DatabaseServer, localeService: LocaleService);
|
constructor(logger: ILogger, randomUtil: RandomUtil, databaseServer: DatabaseServer, localeService: LocaleService);
|
||||||
/**
|
/**
|
||||||
* Get a localised value using the passed in key
|
* Get a localised value using the passed in key
|
||||||
* @param key Key to loop up locale for
|
* @param key Key to loop up locale for
|
||||||
@ -25,4 +27,10 @@ export declare class LocalisationService {
|
|||||||
* @returns string array of keys
|
* @returns string array of keys
|
||||||
*/
|
*/
|
||||||
getKeys(): string[];
|
getKeys(): string[];
|
||||||
|
/**
|
||||||
|
* From the provided partial key, find all keys that start with text and choose a random match
|
||||||
|
* @param partialKey Key to match locale keys on
|
||||||
|
* @returns locale text
|
||||||
|
*/
|
||||||
|
getRandomTextThatMatchesPartialKey(partialKey: string): string;
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import { DialogueHelper } from "../helpers/DialogueHelper";
|
||||||
import { ItemHelper } from "../helpers/ItemHelper";
|
import { ItemHelper } from "../helpers/ItemHelper";
|
||||||
import { NotificationSendHelper } from "../helpers/NotificationSendHelper";
|
import { NotificationSendHelper } from "../helpers/NotificationSendHelper";
|
||||||
import { NotifierHelper } from "../helpers/NotifierHelper";
|
import { NotifierHelper } from "../helpers/NotifierHelper";
|
||||||
@ -19,11 +20,12 @@ export declare class MailSendService {
|
|||||||
protected saveServer: SaveServer;
|
protected saveServer: SaveServer;
|
||||||
protected databaseServer: DatabaseServer;
|
protected databaseServer: DatabaseServer;
|
||||||
protected notifierHelper: NotifierHelper;
|
protected notifierHelper: NotifierHelper;
|
||||||
|
protected dialogueHelper: DialogueHelper;
|
||||||
protected notificationSendHelper: NotificationSendHelper;
|
protected notificationSendHelper: NotificationSendHelper;
|
||||||
protected localisationService: LocalisationService;
|
protected localisationService: LocalisationService;
|
||||||
protected itemHelper: ItemHelper;
|
protected itemHelper: ItemHelper;
|
||||||
protected readonly systemSenderId = "59e7125688a45068a6249071";
|
protected readonly systemSenderId = "59e7125688a45068a6249071";
|
||||||
constructor(logger: ILogger, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, databaseServer: DatabaseServer, notifierHelper: NotifierHelper, notificationSendHelper: NotificationSendHelper, localisationService: LocalisationService, itemHelper: ItemHelper);
|
constructor(logger: ILogger, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, databaseServer: DatabaseServer, notifierHelper: NotifierHelper, dialogueHelper: DialogueHelper, notificationSendHelper: NotificationSendHelper, localisationService: LocalisationService, itemHelper: ItemHelper);
|
||||||
/**
|
/**
|
||||||
* Send a message from an NPC (e.g. prapor) to the player with or without items using direct message text, do not look up any locale
|
* Send a message from an NPC (e.g. prapor) to the player with or without items using direct message text, do not look up any locale
|
||||||
* @param playerId Players id to send message to
|
* @param playerId Players id to send message to
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import { HideoutHelper } from "../helpers/HideoutHelper";
|
import { HideoutHelper } from "../helpers/HideoutHelper";
|
||||||
import { InventoryHelper } from "../helpers/InventoryHelper";
|
import { InventoryHelper } from "../helpers/InventoryHelper";
|
||||||
import { ItemHelper } from "../helpers/ItemHelper";
|
import { ItemHelper } from "../helpers/ItemHelper";
|
||||||
|
import { TraderHelper } from "../helpers/TraderHelper";
|
||||||
import { IPmcData } from "../models/eft/common/IPmcData";
|
import { IPmcData } from "../models/eft/common/IPmcData";
|
||||||
import { Bonus, HideoutSlot } from "../models/eft/common/tables/IBotBase";
|
import { Bonus, HideoutSlot } from "../models/eft/common/tables/IBotBase";
|
||||||
import { IPmcDataRepeatableQuest, IRepeatableQuest } from "../models/eft/common/tables/IRepeatableQuests";
|
import { IPmcDataRepeatableQuest, IRepeatableQuest } from "../models/eft/common/tables/IRepeatableQuests";
|
||||||
@ -20,6 +21,7 @@ export declare class ProfileFixerService {
|
|||||||
protected watermark: Watermark;
|
protected watermark: Watermark;
|
||||||
protected hideoutHelper: HideoutHelper;
|
protected hideoutHelper: HideoutHelper;
|
||||||
protected inventoryHelper: InventoryHelper;
|
protected inventoryHelper: InventoryHelper;
|
||||||
|
protected traderHelper: TraderHelper;
|
||||||
protected itemHelper: ItemHelper;
|
protected itemHelper: ItemHelper;
|
||||||
protected localisationService: LocalisationService;
|
protected localisationService: LocalisationService;
|
||||||
protected timeUtil: TimeUtil;
|
protected timeUtil: TimeUtil;
|
||||||
@ -27,7 +29,7 @@ export declare class ProfileFixerService {
|
|||||||
protected configServer: ConfigServer;
|
protected configServer: ConfigServer;
|
||||||
protected coreConfig: ICoreConfig;
|
protected coreConfig: ICoreConfig;
|
||||||
protected ragfairConfig: IRagfairConfig;
|
protected ragfairConfig: IRagfairConfig;
|
||||||
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
|
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
|
||||||
/**
|
/**
|
||||||
* Find issues in the pmc profile data that may cause issues and fix them
|
* Find issues in the pmc profile data that may cause issues and fix them
|
||||||
* @param pmcProfile profile to check and fix
|
* @param pmcProfile profile to check and fix
|
||||||
@ -105,7 +107,7 @@ export declare class ProfileFixerService {
|
|||||||
* @param sessionId Session id
|
* @param sessionId Session id
|
||||||
* @param pmcProfile Profile to check inventory of
|
* @param pmcProfile Profile to check inventory of
|
||||||
*/
|
*/
|
||||||
checkForOrphanedModdedItems(sessionId: string, pmcProfile: IPmcData): void;
|
checkForOrphanedModdedItems(sessionId: string, fullProfile: IAkiProfile): void;
|
||||||
/**
|
/**
|
||||||
* Add `Improvements` object to hideout if missing - added in eft 13.0.21469
|
* Add `Improvements` object to hideout if missing - added in eft 13.0.21469
|
||||||
* @param pmcProfile profile to update
|
* @param pmcProfile profile to update
|
||||||
|
@ -11,9 +11,11 @@ import { IGameConfigResponse } from "../models/eft/game/IGameConfigResponse";
|
|||||||
import { IGameKeepAliveResponse } from "../models/eft/game/IGameKeepAliveResponse";
|
import { IGameKeepAliveResponse } from "../models/eft/game/IGameKeepAliveResponse";
|
||||||
import { IServerDetails } from "../models/eft/game/IServerDetails";
|
import { IServerDetails } from "../models/eft/game/IServerDetails";
|
||||||
import { IAkiProfile } from "../models/eft/profile/IAkiProfile";
|
import { IAkiProfile } from "../models/eft/profile/IAkiProfile";
|
||||||
|
import { IBotConfig } from "../models/spt/config/IBotConfig";
|
||||||
import { ICoreConfig } from "../models/spt/config/ICoreConfig";
|
import { ICoreConfig } from "../models/spt/config/ICoreConfig";
|
||||||
import { IHttpConfig } from "../models/spt/config/IHttpConfig";
|
import { IHttpConfig } from "../models/spt/config/IHttpConfig";
|
||||||
import { ILocationConfig } from "../models/spt/config/ILocationConfig";
|
import { ILocationConfig } from "../models/spt/config/ILocationConfig";
|
||||||
|
import { IRagfairConfig } from "../models/spt/config/IRagfairConfig";
|
||||||
import { ILogger } from "../models/spt/utils/ILogger";
|
import { ILogger } from "../models/spt/utils/ILogger";
|
||||||
import { ConfigServer } from "../servers/ConfigServer";
|
import { ConfigServer } from "../servers/ConfigServer";
|
||||||
import { DatabaseServer } from "../servers/DatabaseServer";
|
import { DatabaseServer } from "../servers/DatabaseServer";
|
||||||
@ -25,6 +27,7 @@ import { ProfileFixerService } from "../services/ProfileFixerService";
|
|||||||
import { SeasonalEventService } from "../services/SeasonalEventService";
|
import { SeasonalEventService } from "../services/SeasonalEventService";
|
||||||
import { EncodingUtil } from "../utils/EncodingUtil";
|
import { EncodingUtil } from "../utils/EncodingUtil";
|
||||||
import { JsonUtil } from "../utils/JsonUtil";
|
import { JsonUtil } from "../utils/JsonUtil";
|
||||||
|
import { RandomUtil } from "../utils/RandomUtil";
|
||||||
import { TimeUtil } from "../utils/TimeUtil";
|
import { TimeUtil } from "../utils/TimeUtil";
|
||||||
export declare class GameController {
|
export declare class GameController {
|
||||||
protected logger: ILogger;
|
protected logger: ILogger;
|
||||||
@ -33,6 +36,7 @@ export declare class GameController {
|
|||||||
protected timeUtil: TimeUtil;
|
protected timeUtil: TimeUtil;
|
||||||
protected preAkiModLoader: PreAkiModLoader;
|
protected preAkiModLoader: PreAkiModLoader;
|
||||||
protected httpServerHelper: HttpServerHelper;
|
protected httpServerHelper: HttpServerHelper;
|
||||||
|
protected randomUtil: RandomUtil;
|
||||||
protected encodingUtil: EncodingUtil;
|
protected encodingUtil: EncodingUtil;
|
||||||
protected hideoutHelper: HideoutHelper;
|
protected hideoutHelper: HideoutHelper;
|
||||||
protected profileHelper: ProfileHelper;
|
protected profileHelper: ProfileHelper;
|
||||||
@ -48,7 +52,9 @@ export declare class GameController {
|
|||||||
protected httpConfig: IHttpConfig;
|
protected httpConfig: IHttpConfig;
|
||||||
protected coreConfig: ICoreConfig;
|
protected coreConfig: ICoreConfig;
|
||||||
protected locationConfig: ILocationConfig;
|
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, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
|
protected ragfairConfig: IRagfairConfig;
|
||||||
|
protected botConfig: IBotConfig;
|
||||||
|
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, 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
|
* Handle client/game/start
|
||||||
*/
|
*/
|
||||||
@ -84,6 +90,7 @@ export declare class GameController {
|
|||||||
* @param pmcProfile Player profile
|
* @param pmcProfile Player profile
|
||||||
*/
|
*/
|
||||||
protected warnOnActiveBotReloadSkill(pmcProfile: IPmcData): void;
|
protected warnOnActiveBotReloadSkill(pmcProfile: IPmcData): void;
|
||||||
|
protected flagAllItemsInDbAsSellableOnFlea(): void;
|
||||||
/**
|
/**
|
||||||
* When player logs in, iterate over all active effects and reduce timer
|
* When player logs in, iterate over all active effects and reduce timer
|
||||||
* TODO - add body part HP regen
|
* TODO - add body part HP regen
|
||||||
@ -118,9 +125,14 @@ export declare class GameController {
|
|||||||
protected validateQuestAssortUnlocksExist(): void;
|
protected validateQuestAssortUnlocksExist(): void;
|
||||||
/**
|
/**
|
||||||
* Add the logged in players name to PMC name pool
|
* Add the logged in players name to PMC name pool
|
||||||
* @param pmcProfile
|
* @param pmcProfile Profile of player to get name from
|
||||||
*/
|
*/
|
||||||
protected addPlayerToPMCNames(pmcProfile: IPmcData): void;
|
protected addPlayerToPMCNames(pmcProfile: IPmcData): void;
|
||||||
|
/**
|
||||||
|
* Check for a dialog with the key 'undefined', and remove it
|
||||||
|
* @param fullProfile Profile to check for dialog in
|
||||||
|
*/
|
||||||
|
protected checkForAndRemoveUndefinedDialogs(fullProfile: IAkiProfile): void;
|
||||||
/**
|
/**
|
||||||
* Blank out the "test" mail message from prapor
|
* Blank out the "test" mail message from prapor
|
||||||
*/
|
*/
|
||||||
|
@ -10,6 +10,7 @@ import { ILogger } from "../models/spt/utils/ILogger";
|
|||||||
import { ConfigServer } from "../servers/ConfigServer";
|
import { ConfigServer } from "../servers/ConfigServer";
|
||||||
import { DatabaseServer } from "../servers/DatabaseServer";
|
import { DatabaseServer } from "../servers/DatabaseServer";
|
||||||
import { BotEquipmentFilterService } from "../services/BotEquipmentFilterService";
|
import { BotEquipmentFilterService } from "../services/BotEquipmentFilterService";
|
||||||
|
import { LocalisationService } from "../services/LocalisationService";
|
||||||
import { SeasonalEventService } from "../services/SeasonalEventService";
|
import { SeasonalEventService } from "../services/SeasonalEventService";
|
||||||
import { HashUtil } from "../utils/HashUtil";
|
import { HashUtil } from "../utils/HashUtil";
|
||||||
import { JsonUtil } from "../utils/JsonUtil";
|
import { JsonUtil } from "../utils/JsonUtil";
|
||||||
@ -32,9 +33,10 @@ export declare class BotGenerator {
|
|||||||
protected botHelper: BotHelper;
|
protected botHelper: BotHelper;
|
||||||
protected botDifficultyHelper: BotDifficultyHelper;
|
protected botDifficultyHelper: BotDifficultyHelper;
|
||||||
protected seasonalEventService: SeasonalEventService;
|
protected seasonalEventService: SeasonalEventService;
|
||||||
|
protected localisationService: LocalisationService;
|
||||||
protected configServer: ConfigServer;
|
protected configServer: ConfigServer;
|
||||||
protected botConfig: IBotConfig;
|
protected botConfig: IBotConfig;
|
||||||
constructor(logger: ILogger, hashUtil: HashUtil, randomUtil: RandomUtil, timeUtil: TimeUtil, jsonUtil: JsonUtil, profileHelper: ProfileHelper, databaseServer: DatabaseServer, botInventoryGenerator: BotInventoryGenerator, botLevelGenerator: BotLevelGenerator, botEquipmentFilterService: BotEquipmentFilterService, weightedRandomHelper: WeightedRandomHelper, botHelper: BotHelper, botDifficultyHelper: BotDifficultyHelper, seasonalEventService: SeasonalEventService, configServer: ConfigServer);
|
constructor(logger: ILogger, hashUtil: HashUtil, randomUtil: RandomUtil, timeUtil: TimeUtil, jsonUtil: JsonUtil, profileHelper: ProfileHelper, databaseServer: DatabaseServer, botInventoryGenerator: BotInventoryGenerator, botLevelGenerator: BotLevelGenerator, botEquipmentFilterService: BotEquipmentFilterService, weightedRandomHelper: WeightedRandomHelper, botHelper: BotHelper, botDifficultyHelper: BotDifficultyHelper, seasonalEventService: SeasonalEventService, localisationService: LocalisationService, configServer: ConfigServer);
|
||||||
/**
|
/**
|
||||||
* Generate a player scav bot object
|
* Generate a player scav bot object
|
||||||
* @param role e.g. assault / pmcbot
|
* @param role e.g. assault / pmcbot
|
||||||
@ -71,7 +73,7 @@ export declare class BotGenerator {
|
|||||||
* @param botRole role of bot e.g. assault
|
* @param botRole role of bot e.g. assault
|
||||||
* @returns Nickname for bot
|
* @returns Nickname for bot
|
||||||
*/
|
*/
|
||||||
protected generateBotNickname(botJsonTemplate: IBotType, isPlayerScav: boolean, botRole: string): string;
|
protected generateBotNickname(botJsonTemplate: IBotType, isPlayerScav: boolean, botRole: string, sessionId: string): string;
|
||||||
/**
|
/**
|
||||||
* Log the number of PMCs generated to the debug console
|
* Log the number of PMCs generated to the debug console
|
||||||
* @param output Generated bot array, ready to send to client
|
* @param output Generated bot array, ready to send to client
|
||||||
|
@ -41,4 +41,10 @@ export declare class DialogueHelper {
|
|||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
getMessageItemContents(messageID: string, sessionID: string, itemId: string): Item[];
|
getMessageItemContents(messageID: string, sessionID: string, itemId: string): Item[];
|
||||||
|
/**
|
||||||
|
* Get the dialogs dictionary for a profile, create if doesnt exist
|
||||||
|
* @param sessionId Session/player id
|
||||||
|
* @returns Dialog dictionary
|
||||||
|
*/
|
||||||
|
getDialogsForProfile(sessionId: string): Record<string, Dialogue>;
|
||||||
}
|
}
|
||||||
|
@ -58,16 +58,12 @@ export declare class HideoutHelper {
|
|||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
isProductionType(productive: Productive): productive is Production;
|
isProductionType(productive: Productive): productive is Production;
|
||||||
applyPlayerUpgradesBonuses(pmcData: IPmcData, bonus: StageBonus): void;
|
|
||||||
/**
|
/**
|
||||||
* TODO:
|
* Apply bonus to player profile given after completing hideout upgrades
|
||||||
* After looking at the skills there doesnt seem to be a configuration per skill to boost
|
* @param pmcData Profile to add bonus to
|
||||||
* the XP gain PER skill. I THINK you should be able to put the variable "SkillProgress" (just like health has it)
|
* @param bonus Bonus to add to profile
|
||||||
* and be able to tune the skill gain PER skill, but I havent tested it and Im not sure!
|
|
||||||
* @param pmcData
|
|
||||||
* @param bonus
|
|
||||||
*/
|
*/
|
||||||
protected applySkillXPBoost(pmcData: IPmcData, bonus: StageBonus): void;
|
applyPlayerUpgradesBonuses(pmcData: IPmcData, bonus: StageBonus): void;
|
||||||
/**
|
/**
|
||||||
* Process a players hideout, update areas that use resources + increment production timers
|
* Process a players hideout, update areas that use resources + increment production timers
|
||||||
* @param sessionID Session id
|
* @param sessionID Session id
|
||||||
@ -83,6 +79,7 @@ export declare class HideoutHelper {
|
|||||||
isGeneratorOn: boolean;
|
isGeneratorOn: boolean;
|
||||||
waterCollectorHasFilter: boolean;
|
waterCollectorHasFilter: boolean;
|
||||||
};
|
};
|
||||||
|
protected doesWaterCollectorHaveFilter(waterCollector: HideoutArea): boolean;
|
||||||
/**
|
/**
|
||||||
* Update progress timer for water collector
|
* Update progress timer for water collector
|
||||||
* @param pmcData profile to update
|
* @param pmcData profile to update
|
||||||
@ -141,9 +138,8 @@ export declare class HideoutHelper {
|
|||||||
isGeneratorOn: boolean;
|
isGeneratorOn: boolean;
|
||||||
waterCollectorHasFilter: boolean;
|
waterCollectorHasFilter: boolean;
|
||||||
}): void;
|
}): void;
|
||||||
protected updateWaterCollector(sessionId: string, pmcData: IPmcData, area: HideoutArea, isGeneratorOn: boolean): void;
|
|
||||||
protected doesWaterCollectorHaveFilter(waterCollector: HideoutArea): boolean;
|
|
||||||
protected updateFuel(generatorArea: HideoutArea, pmcData: IPmcData): void;
|
protected updateFuel(generatorArea: HideoutArea, pmcData: IPmcData): void;
|
||||||
|
protected updateWaterCollector(sessionId: string, pmcData: IPmcData, area: HideoutArea, isGeneratorOn: boolean): void;
|
||||||
/**
|
/**
|
||||||
* Adjust water filter objects resourceValue or delete when they reach 0 resource
|
* Adjust water filter objects resourceValue or delete when they reach 0 resource
|
||||||
* @param waterFilterArea water filter area to update
|
* @param waterFilterArea water filter area to update
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { IPmcData } from "../models/eft/common/IPmcData";
|
import { IPmcData } from "../models/eft/common/IPmcData";
|
||||||
|
import { ProfileTraderTemplate } from "../models/eft/common/tables/IProfileTemplate";
|
||||||
import { ITraderAssort, ITraderBase, LoyaltyLevel } from "../models/eft/common/tables/ITrader";
|
import { ITraderAssort, ITraderBase, LoyaltyLevel } from "../models/eft/common/tables/ITrader";
|
||||||
import { Traders } from "../models/enums/Traders";
|
import { Traders } from "../models/enums/Traders";
|
||||||
import { ITraderConfig } from "../models/spt/config/ITraderConfig";
|
import { ITraderConfig } from "../models/spt/config/ITraderConfig";
|
||||||
@ -42,6 +43,7 @@ export declare class TraderHelper {
|
|||||||
* @param traderID trader id to reset
|
* @param traderID trader id to reset
|
||||||
*/
|
*/
|
||||||
resetTrader(sessionID: string, traderID: string): void;
|
resetTrader(sessionID: string, traderID: string): void;
|
||||||
|
protected getStartingStanding(traderId: string, rawProfileTemplate: ProfileTraderTemplate): number;
|
||||||
/**
|
/**
|
||||||
* Alter a traders unlocked status
|
* Alter a traders unlocked status
|
||||||
* @param traderId Trader to alter
|
* @param traderId Trader to alter
|
||||||
@ -113,4 +115,10 @@ export declare class TraderHelper {
|
|||||||
* @returns Traders key
|
* @returns Traders key
|
||||||
*/
|
*/
|
||||||
getTraderById(traderId: string): Traders;
|
getTraderById(traderId: string): Traders;
|
||||||
|
/**
|
||||||
|
* Does the 'Traders' enum has a value that matches the passed in parameter
|
||||||
|
* @param value Value to check for
|
||||||
|
* @returns True, values exists in Traders enum as a value
|
||||||
|
*/
|
||||||
|
traderEnumHasValue(value: string): boolean;
|
||||||
}
|
}
|
||||||
|
@ -35,6 +35,7 @@ export declare class PreAkiModLoader implements IModLoader {
|
|||||||
getImportedModDetails(): Record<string, IPackageJsonData>;
|
getImportedModDetails(): Record<string, IPackageJsonData>;
|
||||||
getModPath(mod: string): string;
|
getModPath(mod: string): string;
|
||||||
protected importMods(): Promise<void>;
|
protected importMods(): Promise<void>;
|
||||||
|
protected sortMods(prev: string, next: string, missingFromOrderJSON: Record<string, boolean>): number;
|
||||||
/**
|
/**
|
||||||
* Check for duplicate mods loaded, show error if any
|
* Check for duplicate mods loaded, show error if any
|
||||||
* @param modPackageData Dictionary of mod package.json data
|
* @param modPackageData Dictionary of mod package.json data
|
||||||
|
@ -14,7 +14,7 @@ export interface TemplateSide {
|
|||||||
character: IPmcData;
|
character: IPmcData;
|
||||||
suits: string[];
|
suits: string[];
|
||||||
dialogues: Record<string, Dialogue>;
|
dialogues: Record<string, Dialogue>;
|
||||||
weaponbuilds: WeaponBuild[];
|
weaponbuilds: Record<string, WeaponBuild>;
|
||||||
trader: ProfileTraderTemplate;
|
trader: ProfileTraderTemplate;
|
||||||
}
|
}
|
||||||
export interface ProfileTraderTemplate {
|
export interface ProfileTraderTemplate {
|
||||||
|
@ -7,7 +7,7 @@ export interface IAkiProfile {
|
|||||||
characters: Characters;
|
characters: Characters;
|
||||||
/** Clothing purchases */
|
/** Clothing purchases */
|
||||||
suits: string[];
|
suits: string[];
|
||||||
weaponbuilds: WeaponBuild[];
|
weaponbuilds: Record<string, WeaponBuild>;
|
||||||
dialogues: Record<string, Dialogue>;
|
dialogues: Record<string, Dialogue>;
|
||||||
aki: Aki;
|
aki: Aki;
|
||||||
vitality: Vitality;
|
vitality: Vitality;
|
||||||
|
@ -40,6 +40,8 @@ export interface IPmcConfig {
|
|||||||
botRelativeLevelDeltaMax: number;
|
botRelativeLevelDeltaMax: number;
|
||||||
/** Force a number of healing items into PMCs secure container to ensure they can heal */
|
/** Force a number of healing items into PMCs secure container to ensure they can heal */
|
||||||
forceHealingItemsIntoSecure: boolean;
|
forceHealingItemsIntoSecure: boolean;
|
||||||
|
addPrefixToSameNamePMCAsPlayerChance: number;
|
||||||
|
allPMCsHavePlayerNameWithRandomPrefixChance: number;
|
||||||
}
|
}
|
||||||
export interface PmcTypes {
|
export interface PmcTypes {
|
||||||
usec: string;
|
usec: string;
|
||||||
|
@ -2,17 +2,19 @@ import { I18n } from "i18n";
|
|||||||
import { ILocaleConfig } from "../models/spt/config/ILocaleConfig";
|
import { ILocaleConfig } from "../models/spt/config/ILocaleConfig";
|
||||||
import { ILogger } from "../models/spt/utils/ILogger";
|
import { ILogger } from "../models/spt/utils/ILogger";
|
||||||
import { DatabaseServer } from "../servers/DatabaseServer";
|
import { DatabaseServer } from "../servers/DatabaseServer";
|
||||||
|
import { RandomUtil } from "../utils/RandomUtil";
|
||||||
import { LocaleService } from "./LocaleService";
|
import { LocaleService } from "./LocaleService";
|
||||||
/**
|
/**
|
||||||
* Handles translating server text into different langauges
|
* Handles translating server text into different langauges
|
||||||
*/
|
*/
|
||||||
export declare class LocalisationService {
|
export declare class LocalisationService {
|
||||||
protected logger: ILogger;
|
protected logger: ILogger;
|
||||||
|
protected randomUtil: RandomUtil;
|
||||||
protected databaseServer: DatabaseServer;
|
protected databaseServer: DatabaseServer;
|
||||||
protected localeService: LocaleService;
|
protected localeService: LocaleService;
|
||||||
protected localeConfig: ILocaleConfig;
|
protected localeConfig: ILocaleConfig;
|
||||||
protected i18n: I18n;
|
protected i18n: I18n;
|
||||||
constructor(logger: ILogger, databaseServer: DatabaseServer, localeService: LocaleService);
|
constructor(logger: ILogger, randomUtil: RandomUtil, databaseServer: DatabaseServer, localeService: LocaleService);
|
||||||
/**
|
/**
|
||||||
* Get a localised value using the passed in key
|
* Get a localised value using the passed in key
|
||||||
* @param key Key to loop up locale for
|
* @param key Key to loop up locale for
|
||||||
@ -25,4 +27,10 @@ export declare class LocalisationService {
|
|||||||
* @returns string array of keys
|
* @returns string array of keys
|
||||||
*/
|
*/
|
||||||
getKeys(): string[];
|
getKeys(): string[];
|
||||||
|
/**
|
||||||
|
* From the provided partial key, find all keys that start with text and choose a random match
|
||||||
|
* @param partialKey Key to match locale keys on
|
||||||
|
* @returns locale text
|
||||||
|
*/
|
||||||
|
getRandomTextThatMatchesPartialKey(partialKey: string): string;
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import { DialogueHelper } from "../helpers/DialogueHelper";
|
||||||
import { ItemHelper } from "../helpers/ItemHelper";
|
import { ItemHelper } from "../helpers/ItemHelper";
|
||||||
import { NotificationSendHelper } from "../helpers/NotificationSendHelper";
|
import { NotificationSendHelper } from "../helpers/NotificationSendHelper";
|
||||||
import { NotifierHelper } from "../helpers/NotifierHelper";
|
import { NotifierHelper } from "../helpers/NotifierHelper";
|
||||||
@ -19,11 +20,12 @@ export declare class MailSendService {
|
|||||||
protected saveServer: SaveServer;
|
protected saveServer: SaveServer;
|
||||||
protected databaseServer: DatabaseServer;
|
protected databaseServer: DatabaseServer;
|
||||||
protected notifierHelper: NotifierHelper;
|
protected notifierHelper: NotifierHelper;
|
||||||
|
protected dialogueHelper: DialogueHelper;
|
||||||
protected notificationSendHelper: NotificationSendHelper;
|
protected notificationSendHelper: NotificationSendHelper;
|
||||||
protected localisationService: LocalisationService;
|
protected localisationService: LocalisationService;
|
||||||
protected itemHelper: ItemHelper;
|
protected itemHelper: ItemHelper;
|
||||||
protected readonly systemSenderId = "59e7125688a45068a6249071";
|
protected readonly systemSenderId = "59e7125688a45068a6249071";
|
||||||
constructor(logger: ILogger, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, databaseServer: DatabaseServer, notifierHelper: NotifierHelper, notificationSendHelper: NotificationSendHelper, localisationService: LocalisationService, itemHelper: ItemHelper);
|
constructor(logger: ILogger, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, databaseServer: DatabaseServer, notifierHelper: NotifierHelper, dialogueHelper: DialogueHelper, notificationSendHelper: NotificationSendHelper, localisationService: LocalisationService, itemHelper: ItemHelper);
|
||||||
/**
|
/**
|
||||||
* Send a message from an NPC (e.g. prapor) to the player with or without items using direct message text, do not look up any locale
|
* Send a message from an NPC (e.g. prapor) to the player with or without items using direct message text, do not look up any locale
|
||||||
* @param playerId Players id to send message to
|
* @param playerId Players id to send message to
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import { HideoutHelper } from "../helpers/HideoutHelper";
|
import { HideoutHelper } from "../helpers/HideoutHelper";
|
||||||
import { InventoryHelper } from "../helpers/InventoryHelper";
|
import { InventoryHelper } from "../helpers/InventoryHelper";
|
||||||
import { ItemHelper } from "../helpers/ItemHelper";
|
import { ItemHelper } from "../helpers/ItemHelper";
|
||||||
|
import { TraderHelper } from "../helpers/TraderHelper";
|
||||||
import { IPmcData } from "../models/eft/common/IPmcData";
|
import { IPmcData } from "../models/eft/common/IPmcData";
|
||||||
import { Bonus, HideoutSlot } from "../models/eft/common/tables/IBotBase";
|
import { Bonus, HideoutSlot } from "../models/eft/common/tables/IBotBase";
|
||||||
import { IPmcDataRepeatableQuest, IRepeatableQuest } from "../models/eft/common/tables/IRepeatableQuests";
|
import { IPmcDataRepeatableQuest, IRepeatableQuest } from "../models/eft/common/tables/IRepeatableQuests";
|
||||||
@ -20,6 +21,7 @@ export declare class ProfileFixerService {
|
|||||||
protected watermark: Watermark;
|
protected watermark: Watermark;
|
||||||
protected hideoutHelper: HideoutHelper;
|
protected hideoutHelper: HideoutHelper;
|
||||||
protected inventoryHelper: InventoryHelper;
|
protected inventoryHelper: InventoryHelper;
|
||||||
|
protected traderHelper: TraderHelper;
|
||||||
protected itemHelper: ItemHelper;
|
protected itemHelper: ItemHelper;
|
||||||
protected localisationService: LocalisationService;
|
protected localisationService: LocalisationService;
|
||||||
protected timeUtil: TimeUtil;
|
protected timeUtil: TimeUtil;
|
||||||
@ -27,7 +29,7 @@ export declare class ProfileFixerService {
|
|||||||
protected configServer: ConfigServer;
|
protected configServer: ConfigServer;
|
||||||
protected coreConfig: ICoreConfig;
|
protected coreConfig: ICoreConfig;
|
||||||
protected ragfairConfig: IRagfairConfig;
|
protected ragfairConfig: IRagfairConfig;
|
||||||
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
|
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
|
||||||
/**
|
/**
|
||||||
* Find issues in the pmc profile data that may cause issues and fix them
|
* Find issues in the pmc profile data that may cause issues and fix them
|
||||||
* @param pmcProfile profile to check and fix
|
* @param pmcProfile profile to check and fix
|
||||||
@ -105,7 +107,7 @@ export declare class ProfileFixerService {
|
|||||||
* @param sessionId Session id
|
* @param sessionId Session id
|
||||||
* @param pmcProfile Profile to check inventory of
|
* @param pmcProfile Profile to check inventory of
|
||||||
*/
|
*/
|
||||||
checkForOrphanedModdedItems(sessionId: string, pmcProfile: IPmcData): void;
|
checkForOrphanedModdedItems(sessionId: string, fullProfile: IAkiProfile): void;
|
||||||
/**
|
/**
|
||||||
* Add `Improvements` object to hideout if missing - added in eft 13.0.21469
|
* Add `Improvements` object to hideout if missing - added in eft 13.0.21469
|
||||||
* @param pmcProfile profile to update
|
* @param pmcProfile profile to update
|
||||||
|
@ -11,9 +11,11 @@ import { IGameConfigResponse } from "../models/eft/game/IGameConfigResponse";
|
|||||||
import { IGameKeepAliveResponse } from "../models/eft/game/IGameKeepAliveResponse";
|
import { IGameKeepAliveResponse } from "../models/eft/game/IGameKeepAliveResponse";
|
||||||
import { IServerDetails } from "../models/eft/game/IServerDetails";
|
import { IServerDetails } from "../models/eft/game/IServerDetails";
|
||||||
import { IAkiProfile } from "../models/eft/profile/IAkiProfile";
|
import { IAkiProfile } from "../models/eft/profile/IAkiProfile";
|
||||||
|
import { IBotConfig } from "../models/spt/config/IBotConfig";
|
||||||
import { ICoreConfig } from "../models/spt/config/ICoreConfig";
|
import { ICoreConfig } from "../models/spt/config/ICoreConfig";
|
||||||
import { IHttpConfig } from "../models/spt/config/IHttpConfig";
|
import { IHttpConfig } from "../models/spt/config/IHttpConfig";
|
||||||
import { ILocationConfig } from "../models/spt/config/ILocationConfig";
|
import { ILocationConfig } from "../models/spt/config/ILocationConfig";
|
||||||
|
import { IRagfairConfig } from "../models/spt/config/IRagfairConfig";
|
||||||
import { ILogger } from "../models/spt/utils/ILogger";
|
import { ILogger } from "../models/spt/utils/ILogger";
|
||||||
import { ConfigServer } from "../servers/ConfigServer";
|
import { ConfigServer } from "../servers/ConfigServer";
|
||||||
import { DatabaseServer } from "../servers/DatabaseServer";
|
import { DatabaseServer } from "../servers/DatabaseServer";
|
||||||
@ -25,6 +27,7 @@ import { ProfileFixerService } from "../services/ProfileFixerService";
|
|||||||
import { SeasonalEventService } from "../services/SeasonalEventService";
|
import { SeasonalEventService } from "../services/SeasonalEventService";
|
||||||
import { EncodingUtil } from "../utils/EncodingUtil";
|
import { EncodingUtil } from "../utils/EncodingUtil";
|
||||||
import { JsonUtil } from "../utils/JsonUtil";
|
import { JsonUtil } from "../utils/JsonUtil";
|
||||||
|
import { RandomUtil } from "../utils/RandomUtil";
|
||||||
import { TimeUtil } from "../utils/TimeUtil";
|
import { TimeUtil } from "../utils/TimeUtil";
|
||||||
export declare class GameController {
|
export declare class GameController {
|
||||||
protected logger: ILogger;
|
protected logger: ILogger;
|
||||||
@ -33,6 +36,7 @@ export declare class GameController {
|
|||||||
protected timeUtil: TimeUtil;
|
protected timeUtil: TimeUtil;
|
||||||
protected preAkiModLoader: PreAkiModLoader;
|
protected preAkiModLoader: PreAkiModLoader;
|
||||||
protected httpServerHelper: HttpServerHelper;
|
protected httpServerHelper: HttpServerHelper;
|
||||||
|
protected randomUtil: RandomUtil;
|
||||||
protected encodingUtil: EncodingUtil;
|
protected encodingUtil: EncodingUtil;
|
||||||
protected hideoutHelper: HideoutHelper;
|
protected hideoutHelper: HideoutHelper;
|
||||||
protected profileHelper: ProfileHelper;
|
protected profileHelper: ProfileHelper;
|
||||||
@ -48,7 +52,9 @@ export declare class GameController {
|
|||||||
protected httpConfig: IHttpConfig;
|
protected httpConfig: IHttpConfig;
|
||||||
protected coreConfig: ICoreConfig;
|
protected coreConfig: ICoreConfig;
|
||||||
protected locationConfig: ILocationConfig;
|
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, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
|
protected ragfairConfig: IRagfairConfig;
|
||||||
|
protected botConfig: IBotConfig;
|
||||||
|
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, 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
|
* Handle client/game/start
|
||||||
*/
|
*/
|
||||||
@ -84,6 +90,7 @@ export declare class GameController {
|
|||||||
* @param pmcProfile Player profile
|
* @param pmcProfile Player profile
|
||||||
*/
|
*/
|
||||||
protected warnOnActiveBotReloadSkill(pmcProfile: IPmcData): void;
|
protected warnOnActiveBotReloadSkill(pmcProfile: IPmcData): void;
|
||||||
|
protected flagAllItemsInDbAsSellableOnFlea(): void;
|
||||||
/**
|
/**
|
||||||
* When player logs in, iterate over all active effects and reduce timer
|
* When player logs in, iterate over all active effects and reduce timer
|
||||||
* TODO - add body part HP regen
|
* TODO - add body part HP regen
|
||||||
@ -118,9 +125,14 @@ export declare class GameController {
|
|||||||
protected validateQuestAssortUnlocksExist(): void;
|
protected validateQuestAssortUnlocksExist(): void;
|
||||||
/**
|
/**
|
||||||
* Add the logged in players name to PMC name pool
|
* Add the logged in players name to PMC name pool
|
||||||
* @param pmcProfile
|
* @param pmcProfile Profile of player to get name from
|
||||||
*/
|
*/
|
||||||
protected addPlayerToPMCNames(pmcProfile: IPmcData): void;
|
protected addPlayerToPMCNames(pmcProfile: IPmcData): void;
|
||||||
|
/**
|
||||||
|
* Check for a dialog with the key 'undefined', and remove it
|
||||||
|
* @param fullProfile Profile to check for dialog in
|
||||||
|
*/
|
||||||
|
protected checkForAndRemoveUndefinedDialogs(fullProfile: IAkiProfile): void;
|
||||||
/**
|
/**
|
||||||
* Blank out the "test" mail message from prapor
|
* Blank out the "test" mail message from prapor
|
||||||
*/
|
*/
|
||||||
|
@ -10,6 +10,7 @@ import { ILogger } from "../models/spt/utils/ILogger";
|
|||||||
import { ConfigServer } from "../servers/ConfigServer";
|
import { ConfigServer } from "../servers/ConfigServer";
|
||||||
import { DatabaseServer } from "../servers/DatabaseServer";
|
import { DatabaseServer } from "../servers/DatabaseServer";
|
||||||
import { BotEquipmentFilterService } from "../services/BotEquipmentFilterService";
|
import { BotEquipmentFilterService } from "../services/BotEquipmentFilterService";
|
||||||
|
import { LocalisationService } from "../services/LocalisationService";
|
||||||
import { SeasonalEventService } from "../services/SeasonalEventService";
|
import { SeasonalEventService } from "../services/SeasonalEventService";
|
||||||
import { HashUtil } from "../utils/HashUtil";
|
import { HashUtil } from "../utils/HashUtil";
|
||||||
import { JsonUtil } from "../utils/JsonUtil";
|
import { JsonUtil } from "../utils/JsonUtil";
|
||||||
@ -32,9 +33,10 @@ export declare class BotGenerator {
|
|||||||
protected botHelper: BotHelper;
|
protected botHelper: BotHelper;
|
||||||
protected botDifficultyHelper: BotDifficultyHelper;
|
protected botDifficultyHelper: BotDifficultyHelper;
|
||||||
protected seasonalEventService: SeasonalEventService;
|
protected seasonalEventService: SeasonalEventService;
|
||||||
|
protected localisationService: LocalisationService;
|
||||||
protected configServer: ConfigServer;
|
protected configServer: ConfigServer;
|
||||||
protected botConfig: IBotConfig;
|
protected botConfig: IBotConfig;
|
||||||
constructor(logger: ILogger, hashUtil: HashUtil, randomUtil: RandomUtil, timeUtil: TimeUtil, jsonUtil: JsonUtil, profileHelper: ProfileHelper, databaseServer: DatabaseServer, botInventoryGenerator: BotInventoryGenerator, botLevelGenerator: BotLevelGenerator, botEquipmentFilterService: BotEquipmentFilterService, weightedRandomHelper: WeightedRandomHelper, botHelper: BotHelper, botDifficultyHelper: BotDifficultyHelper, seasonalEventService: SeasonalEventService, configServer: ConfigServer);
|
constructor(logger: ILogger, hashUtil: HashUtil, randomUtil: RandomUtil, timeUtil: TimeUtil, jsonUtil: JsonUtil, profileHelper: ProfileHelper, databaseServer: DatabaseServer, botInventoryGenerator: BotInventoryGenerator, botLevelGenerator: BotLevelGenerator, botEquipmentFilterService: BotEquipmentFilterService, weightedRandomHelper: WeightedRandomHelper, botHelper: BotHelper, botDifficultyHelper: BotDifficultyHelper, seasonalEventService: SeasonalEventService, localisationService: LocalisationService, configServer: ConfigServer);
|
||||||
/**
|
/**
|
||||||
* Generate a player scav bot object
|
* Generate a player scav bot object
|
||||||
* @param role e.g. assault / pmcbot
|
* @param role e.g. assault / pmcbot
|
||||||
@ -71,7 +73,7 @@ export declare class BotGenerator {
|
|||||||
* @param botRole role of bot e.g. assault
|
* @param botRole role of bot e.g. assault
|
||||||
* @returns Nickname for bot
|
* @returns Nickname for bot
|
||||||
*/
|
*/
|
||||||
protected generateBotNickname(botJsonTemplate: IBotType, isPlayerScav: boolean, botRole: string): string;
|
protected generateBotNickname(botJsonTemplate: IBotType, isPlayerScav: boolean, botRole: string, sessionId: string): string;
|
||||||
/**
|
/**
|
||||||
* Log the number of PMCs generated to the debug console
|
* Log the number of PMCs generated to the debug console
|
||||||
* @param output Generated bot array, ready to send to client
|
* @param output Generated bot array, ready to send to client
|
||||||
|
@ -41,4 +41,10 @@ export declare class DialogueHelper {
|
|||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
getMessageItemContents(messageID: string, sessionID: string, itemId: string): Item[];
|
getMessageItemContents(messageID: string, sessionID: string, itemId: string): Item[];
|
||||||
|
/**
|
||||||
|
* Get the dialogs dictionary for a profile, create if doesnt exist
|
||||||
|
* @param sessionId Session/player id
|
||||||
|
* @returns Dialog dictionary
|
||||||
|
*/
|
||||||
|
getDialogsForProfile(sessionId: string): Record<string, Dialogue>;
|
||||||
}
|
}
|
||||||
|
@ -58,16 +58,12 @@ export declare class HideoutHelper {
|
|||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
isProductionType(productive: Productive): productive is Production;
|
isProductionType(productive: Productive): productive is Production;
|
||||||
applyPlayerUpgradesBonuses(pmcData: IPmcData, bonus: StageBonus): void;
|
|
||||||
/**
|
/**
|
||||||
* TODO:
|
* Apply bonus to player profile given after completing hideout upgrades
|
||||||
* After looking at the skills there doesnt seem to be a configuration per skill to boost
|
* @param pmcData Profile to add bonus to
|
||||||
* the XP gain PER skill. I THINK you should be able to put the variable "SkillProgress" (just like health has it)
|
* @param bonus Bonus to add to profile
|
||||||
* and be able to tune the skill gain PER skill, but I havent tested it and Im not sure!
|
|
||||||
* @param pmcData
|
|
||||||
* @param bonus
|
|
||||||
*/
|
*/
|
||||||
protected applySkillXPBoost(pmcData: IPmcData, bonus: StageBonus): void;
|
applyPlayerUpgradesBonuses(pmcData: IPmcData, bonus: StageBonus): void;
|
||||||
/**
|
/**
|
||||||
* Process a players hideout, update areas that use resources + increment production timers
|
* Process a players hideout, update areas that use resources + increment production timers
|
||||||
* @param sessionID Session id
|
* @param sessionID Session id
|
||||||
@ -83,6 +79,7 @@ export declare class HideoutHelper {
|
|||||||
isGeneratorOn: boolean;
|
isGeneratorOn: boolean;
|
||||||
waterCollectorHasFilter: boolean;
|
waterCollectorHasFilter: boolean;
|
||||||
};
|
};
|
||||||
|
protected doesWaterCollectorHaveFilter(waterCollector: HideoutArea): boolean;
|
||||||
/**
|
/**
|
||||||
* Update progress timer for water collector
|
* Update progress timer for water collector
|
||||||
* @param pmcData profile to update
|
* @param pmcData profile to update
|
||||||
@ -141,9 +138,8 @@ export declare class HideoutHelper {
|
|||||||
isGeneratorOn: boolean;
|
isGeneratorOn: boolean;
|
||||||
waterCollectorHasFilter: boolean;
|
waterCollectorHasFilter: boolean;
|
||||||
}): void;
|
}): void;
|
||||||
protected updateWaterCollector(sessionId: string, pmcData: IPmcData, area: HideoutArea, isGeneratorOn: boolean): void;
|
|
||||||
protected doesWaterCollectorHaveFilter(waterCollector: HideoutArea): boolean;
|
|
||||||
protected updateFuel(generatorArea: HideoutArea, pmcData: IPmcData): void;
|
protected updateFuel(generatorArea: HideoutArea, pmcData: IPmcData): void;
|
||||||
|
protected updateWaterCollector(sessionId: string, pmcData: IPmcData, area: HideoutArea, isGeneratorOn: boolean): void;
|
||||||
/**
|
/**
|
||||||
* Adjust water filter objects resourceValue or delete when they reach 0 resource
|
* Adjust water filter objects resourceValue or delete when they reach 0 resource
|
||||||
* @param waterFilterArea water filter area to update
|
* @param waterFilterArea water filter area to update
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { IPmcData } from "../models/eft/common/IPmcData";
|
import { IPmcData } from "../models/eft/common/IPmcData";
|
||||||
|
import { ProfileTraderTemplate } from "../models/eft/common/tables/IProfileTemplate";
|
||||||
import { ITraderAssort, ITraderBase, LoyaltyLevel } from "../models/eft/common/tables/ITrader";
|
import { ITraderAssort, ITraderBase, LoyaltyLevel } from "../models/eft/common/tables/ITrader";
|
||||||
import { Traders } from "../models/enums/Traders";
|
import { Traders } from "../models/enums/Traders";
|
||||||
import { ITraderConfig } from "../models/spt/config/ITraderConfig";
|
import { ITraderConfig } from "../models/spt/config/ITraderConfig";
|
||||||
@ -42,6 +43,7 @@ export declare class TraderHelper {
|
|||||||
* @param traderID trader id to reset
|
* @param traderID trader id to reset
|
||||||
*/
|
*/
|
||||||
resetTrader(sessionID: string, traderID: string): void;
|
resetTrader(sessionID: string, traderID: string): void;
|
||||||
|
protected getStartingStanding(traderId: string, rawProfileTemplate: ProfileTraderTemplate): number;
|
||||||
/**
|
/**
|
||||||
* Alter a traders unlocked status
|
* Alter a traders unlocked status
|
||||||
* @param traderId Trader to alter
|
* @param traderId Trader to alter
|
||||||
@ -113,4 +115,10 @@ export declare class TraderHelper {
|
|||||||
* @returns Traders key
|
* @returns Traders key
|
||||||
*/
|
*/
|
||||||
getTraderById(traderId: string): Traders;
|
getTraderById(traderId: string): Traders;
|
||||||
|
/**
|
||||||
|
* Does the 'Traders' enum has a value that matches the passed in parameter
|
||||||
|
* @param value Value to check for
|
||||||
|
* @returns True, values exists in Traders enum as a value
|
||||||
|
*/
|
||||||
|
traderEnumHasValue(value: string): boolean;
|
||||||
}
|
}
|
||||||
|
@ -35,6 +35,7 @@ export declare class PreAkiModLoader implements IModLoader {
|
|||||||
getImportedModDetails(): Record<string, IPackageJsonData>;
|
getImportedModDetails(): Record<string, IPackageJsonData>;
|
||||||
getModPath(mod: string): string;
|
getModPath(mod: string): string;
|
||||||
protected importMods(): Promise<void>;
|
protected importMods(): Promise<void>;
|
||||||
|
protected sortMods(prev: string, next: string, missingFromOrderJSON: Record<string, boolean>): number;
|
||||||
/**
|
/**
|
||||||
* Check for duplicate mods loaded, show error if any
|
* Check for duplicate mods loaded, show error if any
|
||||||
* @param modPackageData Dictionary of mod package.json data
|
* @param modPackageData Dictionary of mod package.json data
|
||||||
|
@ -14,7 +14,7 @@ export interface TemplateSide {
|
|||||||
character: IPmcData;
|
character: IPmcData;
|
||||||
suits: string[];
|
suits: string[];
|
||||||
dialogues: Record<string, Dialogue>;
|
dialogues: Record<string, Dialogue>;
|
||||||
weaponbuilds: WeaponBuild[];
|
weaponbuilds: Record<string, WeaponBuild>;
|
||||||
trader: ProfileTraderTemplate;
|
trader: ProfileTraderTemplate;
|
||||||
}
|
}
|
||||||
export interface ProfileTraderTemplate {
|
export interface ProfileTraderTemplate {
|
||||||
|
@ -7,7 +7,7 @@ export interface IAkiProfile {
|
|||||||
characters: Characters;
|
characters: Characters;
|
||||||
/** Clothing purchases */
|
/** Clothing purchases */
|
||||||
suits: string[];
|
suits: string[];
|
||||||
weaponbuilds: WeaponBuild[];
|
weaponbuilds: Record<string, WeaponBuild>;
|
||||||
dialogues: Record<string, Dialogue>;
|
dialogues: Record<string, Dialogue>;
|
||||||
aki: Aki;
|
aki: Aki;
|
||||||
vitality: Vitality;
|
vitality: Vitality;
|
||||||
|
@ -40,6 +40,8 @@ export interface IPmcConfig {
|
|||||||
botRelativeLevelDeltaMax: number;
|
botRelativeLevelDeltaMax: number;
|
||||||
/** Force a number of healing items into PMCs secure container to ensure they can heal */
|
/** Force a number of healing items into PMCs secure container to ensure they can heal */
|
||||||
forceHealingItemsIntoSecure: boolean;
|
forceHealingItemsIntoSecure: boolean;
|
||||||
|
addPrefixToSameNamePMCAsPlayerChance: number;
|
||||||
|
allPMCsHavePlayerNameWithRandomPrefixChance: number;
|
||||||
}
|
}
|
||||||
export interface PmcTypes {
|
export interface PmcTypes {
|
||||||
usec: string;
|
usec: string;
|
||||||
|
@ -2,17 +2,19 @@ import { I18n } from "i18n";
|
|||||||
import { ILocaleConfig } from "../models/spt/config/ILocaleConfig";
|
import { ILocaleConfig } from "../models/spt/config/ILocaleConfig";
|
||||||
import { ILogger } from "../models/spt/utils/ILogger";
|
import { ILogger } from "../models/spt/utils/ILogger";
|
||||||
import { DatabaseServer } from "../servers/DatabaseServer";
|
import { DatabaseServer } from "../servers/DatabaseServer";
|
||||||
|
import { RandomUtil } from "../utils/RandomUtil";
|
||||||
import { LocaleService } from "./LocaleService";
|
import { LocaleService } from "./LocaleService";
|
||||||
/**
|
/**
|
||||||
* Handles translating server text into different langauges
|
* Handles translating server text into different langauges
|
||||||
*/
|
*/
|
||||||
export declare class LocalisationService {
|
export declare class LocalisationService {
|
||||||
protected logger: ILogger;
|
protected logger: ILogger;
|
||||||
|
protected randomUtil: RandomUtil;
|
||||||
protected databaseServer: DatabaseServer;
|
protected databaseServer: DatabaseServer;
|
||||||
protected localeService: LocaleService;
|
protected localeService: LocaleService;
|
||||||
protected localeConfig: ILocaleConfig;
|
protected localeConfig: ILocaleConfig;
|
||||||
protected i18n: I18n;
|
protected i18n: I18n;
|
||||||
constructor(logger: ILogger, databaseServer: DatabaseServer, localeService: LocaleService);
|
constructor(logger: ILogger, randomUtil: RandomUtil, databaseServer: DatabaseServer, localeService: LocaleService);
|
||||||
/**
|
/**
|
||||||
* Get a localised value using the passed in key
|
* Get a localised value using the passed in key
|
||||||
* @param key Key to loop up locale for
|
* @param key Key to loop up locale for
|
||||||
@ -25,4 +27,10 @@ export declare class LocalisationService {
|
|||||||
* @returns string array of keys
|
* @returns string array of keys
|
||||||
*/
|
*/
|
||||||
getKeys(): string[];
|
getKeys(): string[];
|
||||||
|
/**
|
||||||
|
* From the provided partial key, find all keys that start with text and choose a random match
|
||||||
|
* @param partialKey Key to match locale keys on
|
||||||
|
* @returns locale text
|
||||||
|
*/
|
||||||
|
getRandomTextThatMatchesPartialKey(partialKey: string): string;
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import { DialogueHelper } from "../helpers/DialogueHelper";
|
||||||
import { ItemHelper } from "../helpers/ItemHelper";
|
import { ItemHelper } from "../helpers/ItemHelper";
|
||||||
import { NotificationSendHelper } from "../helpers/NotificationSendHelper";
|
import { NotificationSendHelper } from "../helpers/NotificationSendHelper";
|
||||||
import { NotifierHelper } from "../helpers/NotifierHelper";
|
import { NotifierHelper } from "../helpers/NotifierHelper";
|
||||||
@ -19,11 +20,12 @@ export declare class MailSendService {
|
|||||||
protected saveServer: SaveServer;
|
protected saveServer: SaveServer;
|
||||||
protected databaseServer: DatabaseServer;
|
protected databaseServer: DatabaseServer;
|
||||||
protected notifierHelper: NotifierHelper;
|
protected notifierHelper: NotifierHelper;
|
||||||
|
protected dialogueHelper: DialogueHelper;
|
||||||
protected notificationSendHelper: NotificationSendHelper;
|
protected notificationSendHelper: NotificationSendHelper;
|
||||||
protected localisationService: LocalisationService;
|
protected localisationService: LocalisationService;
|
||||||
protected itemHelper: ItemHelper;
|
protected itemHelper: ItemHelper;
|
||||||
protected readonly systemSenderId = "59e7125688a45068a6249071";
|
protected readonly systemSenderId = "59e7125688a45068a6249071";
|
||||||
constructor(logger: ILogger, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, databaseServer: DatabaseServer, notifierHelper: NotifierHelper, notificationSendHelper: NotificationSendHelper, localisationService: LocalisationService, itemHelper: ItemHelper);
|
constructor(logger: ILogger, hashUtil: HashUtil, timeUtil: TimeUtil, saveServer: SaveServer, databaseServer: DatabaseServer, notifierHelper: NotifierHelper, dialogueHelper: DialogueHelper, notificationSendHelper: NotificationSendHelper, localisationService: LocalisationService, itemHelper: ItemHelper);
|
||||||
/**
|
/**
|
||||||
* Send a message from an NPC (e.g. prapor) to the player with or without items using direct message text, do not look up any locale
|
* Send a message from an NPC (e.g. prapor) to the player with or without items using direct message text, do not look up any locale
|
||||||
* @param playerId Players id to send message to
|
* @param playerId Players id to send message to
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import { HideoutHelper } from "../helpers/HideoutHelper";
|
import { HideoutHelper } from "../helpers/HideoutHelper";
|
||||||
import { InventoryHelper } from "../helpers/InventoryHelper";
|
import { InventoryHelper } from "../helpers/InventoryHelper";
|
||||||
import { ItemHelper } from "../helpers/ItemHelper";
|
import { ItemHelper } from "../helpers/ItemHelper";
|
||||||
|
import { TraderHelper } from "../helpers/TraderHelper";
|
||||||
import { IPmcData } from "../models/eft/common/IPmcData";
|
import { IPmcData } from "../models/eft/common/IPmcData";
|
||||||
import { Bonus, HideoutSlot } from "../models/eft/common/tables/IBotBase";
|
import { Bonus, HideoutSlot } from "../models/eft/common/tables/IBotBase";
|
||||||
import { IPmcDataRepeatableQuest, IRepeatableQuest } from "../models/eft/common/tables/IRepeatableQuests";
|
import { IPmcDataRepeatableQuest, IRepeatableQuest } from "../models/eft/common/tables/IRepeatableQuests";
|
||||||
@ -20,6 +21,7 @@ export declare class ProfileFixerService {
|
|||||||
protected watermark: Watermark;
|
protected watermark: Watermark;
|
||||||
protected hideoutHelper: HideoutHelper;
|
protected hideoutHelper: HideoutHelper;
|
||||||
protected inventoryHelper: InventoryHelper;
|
protected inventoryHelper: InventoryHelper;
|
||||||
|
protected traderHelper: TraderHelper;
|
||||||
protected itemHelper: ItemHelper;
|
protected itemHelper: ItemHelper;
|
||||||
protected localisationService: LocalisationService;
|
protected localisationService: LocalisationService;
|
||||||
protected timeUtil: TimeUtil;
|
protected timeUtil: TimeUtil;
|
||||||
@ -27,7 +29,7 @@ export declare class ProfileFixerService {
|
|||||||
protected configServer: ConfigServer;
|
protected configServer: ConfigServer;
|
||||||
protected coreConfig: ICoreConfig;
|
protected coreConfig: ICoreConfig;
|
||||||
protected ragfairConfig: IRagfairConfig;
|
protected ragfairConfig: IRagfairConfig;
|
||||||
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
|
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, inventoryHelper: InventoryHelper, traderHelper: TraderHelper, itemHelper: ItemHelper, localisationService: LocalisationService, timeUtil: TimeUtil, databaseServer: DatabaseServer, configServer: ConfigServer);
|
||||||
/**
|
/**
|
||||||
* Find issues in the pmc profile data that may cause issues and fix them
|
* Find issues in the pmc profile data that may cause issues and fix them
|
||||||
* @param pmcProfile profile to check and fix
|
* @param pmcProfile profile to check and fix
|
||||||
@ -105,7 +107,7 @@ export declare class ProfileFixerService {
|
|||||||
* @param sessionId Session id
|
* @param sessionId Session id
|
||||||
* @param pmcProfile Profile to check inventory of
|
* @param pmcProfile Profile to check inventory of
|
||||||
*/
|
*/
|
||||||
checkForOrphanedModdedItems(sessionId: string, pmcProfile: IPmcData): void;
|
checkForOrphanedModdedItems(sessionId: string, fullProfile: IAkiProfile): void;
|
||||||
/**
|
/**
|
||||||
* Add `Improvements` object to hideout if missing - added in eft 13.0.21469
|
* Add `Improvements` object to hideout if missing - added in eft 13.0.21469
|
||||||
* @param pmcProfile profile to update
|
* @param pmcProfile profile to update
|
||||||
|
@ -11,9 +11,11 @@ import { IGameConfigResponse } from "../models/eft/game/IGameConfigResponse";
|
|||||||
import { IGameKeepAliveResponse } from "../models/eft/game/IGameKeepAliveResponse";
|
import { IGameKeepAliveResponse } from "../models/eft/game/IGameKeepAliveResponse";
|
||||||
import { IServerDetails } from "../models/eft/game/IServerDetails";
|
import { IServerDetails } from "../models/eft/game/IServerDetails";
|
||||||
import { IAkiProfile } from "../models/eft/profile/IAkiProfile";
|
import { IAkiProfile } from "../models/eft/profile/IAkiProfile";
|
||||||
|
import { IBotConfig } from "../models/spt/config/IBotConfig";
|
||||||
import { ICoreConfig } from "../models/spt/config/ICoreConfig";
|
import { ICoreConfig } from "../models/spt/config/ICoreConfig";
|
||||||
import { IHttpConfig } from "../models/spt/config/IHttpConfig";
|
import { IHttpConfig } from "../models/spt/config/IHttpConfig";
|
||||||
import { ILocationConfig } from "../models/spt/config/ILocationConfig";
|
import { ILocationConfig } from "../models/spt/config/ILocationConfig";
|
||||||
|
import { IRagfairConfig } from "../models/spt/config/IRagfairConfig";
|
||||||
import { ILogger } from "../models/spt/utils/ILogger";
|
import { ILogger } from "../models/spt/utils/ILogger";
|
||||||
import { ConfigServer } from "../servers/ConfigServer";
|
import { ConfigServer } from "../servers/ConfigServer";
|
||||||
import { DatabaseServer } from "../servers/DatabaseServer";
|
import { DatabaseServer } from "../servers/DatabaseServer";
|
||||||
@ -25,6 +27,7 @@ import { ProfileFixerService } from "../services/ProfileFixerService";
|
|||||||
import { SeasonalEventService } from "../services/SeasonalEventService";
|
import { SeasonalEventService } from "../services/SeasonalEventService";
|
||||||
import { EncodingUtil } from "../utils/EncodingUtil";
|
import { EncodingUtil } from "../utils/EncodingUtil";
|
||||||
import { JsonUtil } from "../utils/JsonUtil";
|
import { JsonUtil } from "../utils/JsonUtil";
|
||||||
|
import { RandomUtil } from "../utils/RandomUtil";
|
||||||
import { TimeUtil } from "../utils/TimeUtil";
|
import { TimeUtil } from "../utils/TimeUtil";
|
||||||
export declare class GameController {
|
export declare class GameController {
|
||||||
protected logger: ILogger;
|
protected logger: ILogger;
|
||||||
@ -33,6 +36,7 @@ export declare class GameController {
|
|||||||
protected timeUtil: TimeUtil;
|
protected timeUtil: TimeUtil;
|
||||||
protected preAkiModLoader: PreAkiModLoader;
|
protected preAkiModLoader: PreAkiModLoader;
|
||||||
protected httpServerHelper: HttpServerHelper;
|
protected httpServerHelper: HttpServerHelper;
|
||||||
|
protected randomUtil: RandomUtil;
|
||||||
protected encodingUtil: EncodingUtil;
|
protected encodingUtil: EncodingUtil;
|
||||||
protected hideoutHelper: HideoutHelper;
|
protected hideoutHelper: HideoutHelper;
|
||||||
protected profileHelper: ProfileHelper;
|
protected profileHelper: ProfileHelper;
|
||||||
@ -48,7 +52,9 @@ export declare class GameController {
|
|||||||
protected httpConfig: IHttpConfig;
|
protected httpConfig: IHttpConfig;
|
||||||
protected coreConfig: ICoreConfig;
|
protected coreConfig: ICoreConfig;
|
||||||
protected locationConfig: ILocationConfig;
|
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, giftService: GiftService, applicationContext: ApplicationContext, configServer: ConfigServer);
|
protected ragfairConfig: IRagfairConfig;
|
||||||
|
protected botConfig: IBotConfig;
|
||||||
|
constructor(logger: ILogger, databaseServer: DatabaseServer, jsonUtil: JsonUtil, timeUtil: TimeUtil, preAkiModLoader: PreAkiModLoader, httpServerHelper: HttpServerHelper, randomUtil: RandomUtil, 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
|
* Handle client/game/start
|
||||||
*/
|
*/
|
||||||
@ -84,6 +90,7 @@ export declare class GameController {
|
|||||||
* @param pmcProfile Player profile
|
* @param pmcProfile Player profile
|
||||||
*/
|
*/
|
||||||
protected warnOnActiveBotReloadSkill(pmcProfile: IPmcData): void;
|
protected warnOnActiveBotReloadSkill(pmcProfile: IPmcData): void;
|
||||||
|
protected flagAllItemsInDbAsSellableOnFlea(): void;
|
||||||
/**
|
/**
|
||||||
* When player logs in, iterate over all active effects and reduce timer
|
* When player logs in, iterate over all active effects and reduce timer
|
||||||
* TODO - add body part HP regen
|
* TODO - add body part HP regen
|
||||||
@ -118,9 +125,14 @@ export declare class GameController {
|
|||||||
protected validateQuestAssortUnlocksExist(): void;
|
protected validateQuestAssortUnlocksExist(): void;
|
||||||
/**
|
/**
|
||||||
* Add the logged in players name to PMC name pool
|
* Add the logged in players name to PMC name pool
|
||||||
* @param pmcProfile
|
* @param pmcProfile Profile of player to get name from
|
||||||
*/
|
*/
|
||||||
protected addPlayerToPMCNames(pmcProfile: IPmcData): void;
|
protected addPlayerToPMCNames(pmcProfile: IPmcData): void;
|
||||||
|
/**
|
||||||
|
* Check for a dialog with the key 'undefined', and remove it
|
||||||
|
* @param fullProfile Profile to check for dialog in
|
||||||
|
*/
|
||||||
|
protected checkForAndRemoveUndefinedDialogs(fullProfile: IAkiProfile): void;
|
||||||
/**
|
/**
|
||||||
* Blank out the "test" mail message from prapor
|
* Blank out the "test" mail message from prapor
|
||||||
*/
|
*/
|
||||||
|
@ -10,6 +10,7 @@ import { ILogger } from "../models/spt/utils/ILogger";
|
|||||||
import { ConfigServer } from "../servers/ConfigServer";
|
import { ConfigServer } from "../servers/ConfigServer";
|
||||||
import { DatabaseServer } from "../servers/DatabaseServer";
|
import { DatabaseServer } from "../servers/DatabaseServer";
|
||||||
import { BotEquipmentFilterService } from "../services/BotEquipmentFilterService";
|
import { BotEquipmentFilterService } from "../services/BotEquipmentFilterService";
|
||||||
|
import { LocalisationService } from "../services/LocalisationService";
|
||||||
import { SeasonalEventService } from "../services/SeasonalEventService";
|
import { SeasonalEventService } from "../services/SeasonalEventService";
|
||||||
import { HashUtil } from "../utils/HashUtil";
|
import { HashUtil } from "../utils/HashUtil";
|
||||||
import { JsonUtil } from "../utils/JsonUtil";
|
import { JsonUtil } from "../utils/JsonUtil";
|
||||||
@ -32,9 +33,10 @@ export declare class BotGenerator {
|
|||||||
protected botHelper: BotHelper;
|
protected botHelper: BotHelper;
|
||||||
protected botDifficultyHelper: BotDifficultyHelper;
|
protected botDifficultyHelper: BotDifficultyHelper;
|
||||||
protected seasonalEventService: SeasonalEventService;
|
protected seasonalEventService: SeasonalEventService;
|
||||||
|
protected localisationService: LocalisationService;
|
||||||
protected configServer: ConfigServer;
|
protected configServer: ConfigServer;
|
||||||
protected botConfig: IBotConfig;
|
protected botConfig: IBotConfig;
|
||||||
constructor(logger: ILogger, hashUtil: HashUtil, randomUtil: RandomUtil, timeUtil: TimeUtil, jsonUtil: JsonUtil, profileHelper: ProfileHelper, databaseServer: DatabaseServer, botInventoryGenerator: BotInventoryGenerator, botLevelGenerator: BotLevelGenerator, botEquipmentFilterService: BotEquipmentFilterService, weightedRandomHelper: WeightedRandomHelper, botHelper: BotHelper, botDifficultyHelper: BotDifficultyHelper, seasonalEventService: SeasonalEventService, configServer: ConfigServer);
|
constructor(logger: ILogger, hashUtil: HashUtil, randomUtil: RandomUtil, timeUtil: TimeUtil, jsonUtil: JsonUtil, profileHelper: ProfileHelper, databaseServer: DatabaseServer, botInventoryGenerator: BotInventoryGenerator, botLevelGenerator: BotLevelGenerator, botEquipmentFilterService: BotEquipmentFilterService, weightedRandomHelper: WeightedRandomHelper, botHelper: BotHelper, botDifficultyHelper: BotDifficultyHelper, seasonalEventService: SeasonalEventService, localisationService: LocalisationService, configServer: ConfigServer);
|
||||||
/**
|
/**
|
||||||
* Generate a player scav bot object
|
* Generate a player scav bot object
|
||||||
* @param role e.g. assault / pmcbot
|
* @param role e.g. assault / pmcbot
|
||||||
@ -71,7 +73,7 @@ export declare class BotGenerator {
|
|||||||
* @param botRole role of bot e.g. assault
|
* @param botRole role of bot e.g. assault
|
||||||
* @returns Nickname for bot
|
* @returns Nickname for bot
|
||||||
*/
|
*/
|
||||||
protected generateBotNickname(botJsonTemplate: IBotType, isPlayerScav: boolean, botRole: string): string;
|
protected generateBotNickname(botJsonTemplate: IBotType, isPlayerScav: boolean, botRole: string, sessionId: string): string;
|
||||||
/**
|
/**
|
||||||
* Log the number of PMCs generated to the debug console
|
* Log the number of PMCs generated to the debug console
|
||||||
* @param output Generated bot array, ready to send to client
|
* @param output Generated bot array, ready to send to client
|
||||||
|
@ -41,4 +41,10 @@ export declare class DialogueHelper {
|
|||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
getMessageItemContents(messageID: string, sessionID: string, itemId: string): Item[];
|
getMessageItemContents(messageID: string, sessionID: string, itemId: string): Item[];
|
||||||
|
/**
|
||||||
|
* Get the dialogs dictionary for a profile, create if doesnt exist
|
||||||
|
* @param sessionId Session/player id
|
||||||
|
* @returns Dialog dictionary
|
||||||
|
*/
|
||||||
|
getDialogsForProfile(sessionId: string): Record<string, Dialogue>;
|
||||||
}
|
}
|
||||||
|
@ -58,16 +58,12 @@ export declare class HideoutHelper {
|
|||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
isProductionType(productive: Productive): productive is Production;
|
isProductionType(productive: Productive): productive is Production;
|
||||||
applyPlayerUpgradesBonuses(pmcData: IPmcData, bonus: StageBonus): void;
|
|
||||||
/**
|
/**
|
||||||
* TODO:
|
* Apply bonus to player profile given after completing hideout upgrades
|
||||||
* After looking at the skills there doesnt seem to be a configuration per skill to boost
|
* @param pmcData Profile to add bonus to
|
||||||
* the XP gain PER skill. I THINK you should be able to put the variable "SkillProgress" (just like health has it)
|
* @param bonus Bonus to add to profile
|
||||||
* and be able to tune the skill gain PER skill, but I havent tested it and Im not sure!
|
|
||||||
* @param pmcData
|
|
||||||
* @param bonus
|
|
||||||
*/
|
*/
|
||||||
protected applySkillXPBoost(pmcData: IPmcData, bonus: StageBonus): void;
|
applyPlayerUpgradesBonuses(pmcData: IPmcData, bonus: StageBonus): void;
|
||||||
/**
|
/**
|
||||||
* Process a players hideout, update areas that use resources + increment production timers
|
* Process a players hideout, update areas that use resources + increment production timers
|
||||||
* @param sessionID Session id
|
* @param sessionID Session id
|
||||||
@ -83,6 +79,7 @@ export declare class HideoutHelper {
|
|||||||
isGeneratorOn: boolean;
|
isGeneratorOn: boolean;
|
||||||
waterCollectorHasFilter: boolean;
|
waterCollectorHasFilter: boolean;
|
||||||
};
|
};
|
||||||
|
protected doesWaterCollectorHaveFilter(waterCollector: HideoutArea): boolean;
|
||||||
/**
|
/**
|
||||||
* Update progress timer for water collector
|
* Update progress timer for water collector
|
||||||
* @param pmcData profile to update
|
* @param pmcData profile to update
|
||||||
@ -141,9 +138,8 @@ export declare class HideoutHelper {
|
|||||||
isGeneratorOn: boolean;
|
isGeneratorOn: boolean;
|
||||||
waterCollectorHasFilter: boolean;
|
waterCollectorHasFilter: boolean;
|
||||||
}): void;
|
}): void;
|
||||||
protected updateWaterCollector(sessionId: string, pmcData: IPmcData, area: HideoutArea, isGeneratorOn: boolean): void;
|
|
||||||
protected doesWaterCollectorHaveFilter(waterCollector: HideoutArea): boolean;
|
|
||||||
protected updateFuel(generatorArea: HideoutArea, pmcData: IPmcData): void;
|
protected updateFuel(generatorArea: HideoutArea, pmcData: IPmcData): void;
|
||||||
|
protected updateWaterCollector(sessionId: string, pmcData: IPmcData, area: HideoutArea, isGeneratorOn: boolean): void;
|
||||||
/**
|
/**
|
||||||
* Adjust water filter objects resourceValue or delete when they reach 0 resource
|
* Adjust water filter objects resourceValue or delete when they reach 0 resource
|
||||||
* @param waterFilterArea water filter area to update
|
* @param waterFilterArea water filter area to update
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { IPmcData } from "../models/eft/common/IPmcData";
|
import { IPmcData } from "../models/eft/common/IPmcData";
|
||||||
|
import { ProfileTraderTemplate } from "../models/eft/common/tables/IProfileTemplate";
|
||||||
import { ITraderAssort, ITraderBase, LoyaltyLevel } from "../models/eft/common/tables/ITrader";
|
import { ITraderAssort, ITraderBase, LoyaltyLevel } from "../models/eft/common/tables/ITrader";
|
||||||
import { Traders } from "../models/enums/Traders";
|
import { Traders } from "../models/enums/Traders";
|
||||||
import { ITraderConfig } from "../models/spt/config/ITraderConfig";
|
import { ITraderConfig } from "../models/spt/config/ITraderConfig";
|
||||||
@ -42,6 +43,7 @@ export declare class TraderHelper {
|
|||||||
* @param traderID trader id to reset
|
* @param traderID trader id to reset
|
||||||
*/
|
*/
|
||||||
resetTrader(sessionID: string, traderID: string): void;
|
resetTrader(sessionID: string, traderID: string): void;
|
||||||
|
protected getStartingStanding(traderId: string, rawProfileTemplate: ProfileTraderTemplate): number;
|
||||||
/**
|
/**
|
||||||
* Alter a traders unlocked status
|
* Alter a traders unlocked status
|
||||||
* @param traderId Trader to alter
|
* @param traderId Trader to alter
|
||||||
@ -113,4 +115,10 @@ export declare class TraderHelper {
|
|||||||
* @returns Traders key
|
* @returns Traders key
|
||||||
*/
|
*/
|
||||||
getTraderById(traderId: string): Traders;
|
getTraderById(traderId: string): Traders;
|
||||||
|
/**
|
||||||
|
* Does the 'Traders' enum has a value that matches the passed in parameter
|
||||||
|
* @param value Value to check for
|
||||||
|
* @returns True, values exists in Traders enum as a value
|
||||||
|
*/
|
||||||
|
traderEnumHasValue(value: string): boolean;
|
||||||
}
|
}
|
||||||
|
@ -35,6 +35,7 @@ export declare class PreAkiModLoader implements IModLoader {
|
|||||||
getImportedModDetails(): Record<string, IPackageJsonData>;
|
getImportedModDetails(): Record<string, IPackageJsonData>;
|
||||||
getModPath(mod: string): string;
|
getModPath(mod: string): string;
|
||||||
protected importMods(): Promise<void>;
|
protected importMods(): Promise<void>;
|
||||||
|
protected sortMods(prev: string, next: string, missingFromOrderJSON: Record<string, boolean>): number;
|
||||||
/**
|
/**
|
||||||
* Check for duplicate mods loaded, show error if any
|
* Check for duplicate mods loaded, show error if any
|
||||||
* @param modPackageData Dictionary of mod package.json data
|
* @param modPackageData Dictionary of mod package.json data
|
||||||
|
@ -14,7 +14,7 @@ export interface TemplateSide {
|
|||||||
character: IPmcData;
|
character: IPmcData;
|
||||||
suits: string[];
|
suits: string[];
|
||||||
dialogues: Record<string, Dialogue>;
|
dialogues: Record<string, Dialogue>;
|
||||||
weaponbuilds: WeaponBuild[];
|
weaponbuilds: Record<string, WeaponBuild>;
|
||||||
trader: ProfileTraderTemplate;
|
trader: ProfileTraderTemplate;
|
||||||
}
|
}
|
||||||
export interface ProfileTraderTemplate {
|
export interface ProfileTraderTemplate {
|
||||||
|
@ -7,7 +7,7 @@ export interface IAkiProfile {
|
|||||||
characters: Characters;
|
characters: Characters;
|
||||||
/** Clothing purchases */
|
/** Clothing purchases */
|
||||||
suits: string[];
|
suits: string[];
|
||||||
weaponbuilds: WeaponBuild[];
|
weaponbuilds: Record<string, WeaponBuild>;
|
||||||
dialogues: Record<string, Dialogue>;
|
dialogues: Record<string, Dialogue>;
|
||||||
aki: Aki;
|
aki: Aki;
|
||||||
vitality: Vitality;
|
vitality: Vitality;
|
||||||
|
@ -40,6 +40,8 @@ export interface IPmcConfig {
|
|||||||
botRelativeLevelDeltaMax: number;
|
botRelativeLevelDeltaMax: number;
|
||||||
/** Force a number of healing items into PMCs secure container to ensure they can heal */
|
/** Force a number of healing items into PMCs secure container to ensure they can heal */
|
||||||
forceHealingItemsIntoSecure: boolean;
|
forceHealingItemsIntoSecure: boolean;
|
||||||
|
addPrefixToSameNamePMCAsPlayerChance: number;
|
||||||
|
allPMCsHavePlayerNameWithRandomPrefixChance: number;
|
||||||
}
|
}
|
||||||
export interface PmcTypes {
|
export interface PmcTypes {
|
||||||
usec: string;
|
usec: string;
|
||||||
|
@ -2,17 +2,19 @@ import { I18n } from "i18n";
|
|||||||
import { ILocaleConfig } from "../models/spt/config/ILocaleConfig";
|
import { ILocaleConfig } from "../models/spt/config/ILocaleConfig";
|
||||||
import { ILogger } from "../models/spt/utils/ILogger";
|
import { ILogger } from "../models/spt/utils/ILogger";
|
||||||
import { DatabaseServer } from "../servers/DatabaseServer";
|
import { DatabaseServer } from "../servers/DatabaseServer";
|
||||||
|
import { RandomUtil } from "../utils/RandomUtil";
|
||||||
import { LocaleService } from "./LocaleService";
|
import { LocaleService } from "./LocaleService";
|
||||||
/**
|
/**
|
||||||
* Handles translating server text into different langauges
|
* Handles translating server text into different langauges
|
||||||
*/
|
*/
|
||||||
export declare class LocalisationService {
|
export declare class LocalisationService {
|
||||||
protected logger: ILogger;
|
protected logger: ILogger;
|
||||||
|
protected randomUtil: RandomUtil;
|
||||||
protected databaseServer: DatabaseServer;
|
protected databaseServer: DatabaseServer;
|
||||||
protected localeService: LocaleService;
|
protected localeService: LocaleService;
|
||||||
protected localeConfig: ILocaleConfig;
|
protected localeConfig: ILocaleConfig;
|
||||||
protected i18n: I18n;
|
protected i18n: I18n;
|
||||||
constructor(logger: ILogger, databaseServer: DatabaseServer, localeService: LocaleService);
|
constructor(logger: ILogger, randomUtil: RandomUtil, databaseServer: DatabaseServer, localeService: LocaleService);
|
||||||
/**
|
/**
|
||||||
* Get a localised value using the passed in key
|
* Get a localised value using the passed in key
|
||||||
* @param key Key to loop up locale for
|
* @param key Key to loop up locale for
|
||||||
@ -25,4 +27,10 @@ export declare class LocalisationService {
|
|||||||
* @returns string array of keys
|
* @returns string array of keys
|
||||||
*/
|
*/
|
||||||
getKeys(): string[];
|
getKeys(): string[];
|
||||||
|
/**
|
||||||
|
* From the provided partial key, find all keys that start with text and choose a random match
|
||||||
|
* @param partialKey Key to match locale keys on
|
||||||
|
* @returns locale text
|
||||||
|
*/
|
||||||
|
getRandomTextThatMatchesPartialKey(partialKey: string): string;
|
||||||
}
|
}
|
||||||
|
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