Valens-AIO/types/services/ProfileFixerService.d.ts

89 lines
4.3 KiB
TypeScript
Raw Normal View History

2022-12-25 18:45:37 -05:00
import { HideoutHelper } from "../helpers/HideoutHelper";
2022-07-30 00:35:54 -04:00
import { IPmcData } from "../models/eft/common/IPmcData";
2022-12-25 18:45:37 -05:00
import { Bonus, HideoutSlot } from "../models/eft/common/tables/IBotBase";
2022-07-30 00:35:54 -04:00
import { IPmcDataRepeatableQuest, IRepeatableQuest } from "../models/eft/common/tables/IRepeatableQuests";
2022-12-25 18:45:37 -05:00
import { StageBonus } from "../models/eft/hideout/IHideoutArea";
2022-07-30 00:35:54 -04:00
import { IAkiProfile } from "../models/eft/profile/IAkiProfile";
2022-08-08 20:03:48 -04:00
import { HideoutAreas } from "../models/enums/HideoutAreas";
2022-07-30 00:35:54 -04:00
import { ILogger } from "../models/spt/utils/ILogger";
import { DatabaseServer } from "../servers/DatabaseServer";
import { Watermark } from "../utils/Watermark";
2022-12-25 18:45:37 -05:00
import { LocalisationService } from "./LocalisationService";
2022-07-30 00:35:54 -04:00
export declare class ProfileFixerService {
protected logger: ILogger;
protected watermark: Watermark;
2022-12-25 18:45:37 -05:00
protected hideoutHelper: HideoutHelper;
protected localisationService: LocalisationService;
2022-07-30 00:35:54 -04:00
protected databaseServer: DatabaseServer;
2022-12-25 18:45:37 -05:00
constructor(logger: ILogger, watermark: Watermark, hideoutHelper: HideoutHelper, localisationService: LocalisationService, databaseServer: DatabaseServer);
2022-07-30 00:35:54 -04:00
/**
* Find issues in the pmc profile data that may cause issues and fix them
* @param pmcProfile profile to check and fix
*/
checkForAndFixPmcProfileIssues(pmcProfile: IPmcData): void;
/**
* Add tag to profile to indicate when it was made
* @param fullProfile
*/
addMissingAkiVersionTagToProfile(fullProfile: IAkiProfile): void;
/**
* TODO - make this non-public - currently used by RepeatableQuestController
* Remove unused condition counters
* @param pmcProfile profile to remove old counters from
*/
removeDanglingConditionCounters(pmcProfile: IPmcData): void;
protected removeDanglingBackendCounters(pmcProfile: IPmcData): void;
protected getActiveRepeatableQuests(repeatableQuests: IPmcDataRepeatableQuest[]): IRepeatableQuest[];
protected fixNullTraderSalesSums(pmcProfile: IPmcData): void;
protected addMissingBonusesProperty(pmcProfile: IPmcData): void;
2022-08-08 20:03:48 -04:00
/**
* Adjust profile quest status and statusTimers object values
* quest.status is numeric e.g. 2
* quest.statusTimers keys are numeric as strings e.g. "2"
* @param pmcProfile profile to update
*/
protected updateProfileQuestDataValues(pmcProfile: IPmcData): void;
2022-07-30 00:35:54 -04:00
protected addMissingRepeatableQuestsProperty(pmcProfile: IPmcData): void;
protected addMissingWorkbenchWeaponSkills(pmcProfile: IPmcData): void;
2022-08-08 20:03:48 -04:00
/**
* A new property was added to slot items "locationIndex", if this is missing, the hideout slot item must be removed
* @param pmcProfile Profile to find and remove slots from
*/
protected removeResourcesFromSlotsInHideoutWithoutLocationIndexValue(pmcProfile: IPmcData): void;
2022-08-28 23:48:57 -04:00
/**
* Hideout slots need to be in a specific order, locationIndex in ascending order
* @param pmcProfile profile to edit
*/
protected reorderHideoutAreasWithResouceInputs(pmcProfile: IPmcData): void;
2022-08-08 20:03:48 -04:00
/**
* add in objects equal to the number of slots
* @param areaType area to check
* @param pmcProfile profile to update
*/
protected addEmptyObjectsToHideoutAreaSlots(areaType: HideoutAreas, emptyItemCount: number, pmcProfile: IPmcData): void;
protected addObjectsToArray(count: number, slots: HideoutSlot[]): HideoutSlot[];
2022-07-30 00:35:54 -04:00
/**
* In 18876 bsg changed the pockets tplid to be one that has 3 additional special slots
* @param pmcProfile
*/
protected updateProfilePocketsToNewId(pmcProfile: IPmcData): void;
addMissingArmorRepairSkill(pmcProfile: IPmcData): void;
2022-12-25 18:45:37 -05:00
/**
* Iterate over players hideout areas and find what's build, look for missing bonuses those areas give and add them if missing
* @param pmcProfile Profile to update
*/
addMissingHideoutBonusesToProfile(pmcProfile: IPmcData): void;
/**
*
* @param profileBonuses bonuses from profile
* @param bonus bonus to find
* @returns matching bonus
*/
protected getBonusFromProfile(profileBonuses: Bonus[], bonus: StageBonus): Bonus;
/**
* Checks profile inventiory for items that do not exist inside the items db
* @param pmcProfile Profile to check inventory of
*/
checkForOrphanedModdedItems(pmcProfile: IPmcData): void;
2022-07-30 00:35:54 -04:00
}