Updated types

This commit is contained in:
Dev 2024-07-03 10:36:08 +01:00
parent 43e6e21516
commit e23289e57e
144 changed files with 864 additions and 528 deletions

View File

@ -148,11 +148,12 @@ export declare class RepeatableQuestController {
changeRepeatableQuest(pmcData: IPmcData, changeRequest: IRepeatableQuestChangeRequest, sessionID: string): IItemEventRouterResponse;
protected attemptToGenerateRepeatableQuest(pmcData: IPmcData, questTypePool: IQuestTypePool, repeatableConfig: IRepeatableQuestConfig): IRepeatableQuest;
/**
* Some accounts have access to repeatable quest refreshes for free
* Some accounts have access to free repeatable quest refreshes
* Track the usage of them inside players profile
* @param fullProfile Profile of player
* @param repeatableSubType Can be daily/weekly/scav repeatables
* @param repeatableTypeName Subtype of repeatables: daily / weekly / scav
* @param fullProfile Player profile
* @param repeatableSubType Can be daily / weekly / scav repeatable
* @param repeatableTypeName Subtype of repeatable quest: daily / weekly / scav
* @returns Is the repeatable being replaced for free
*/
protected handleFreeRefreshUses(fullProfile: ISptProfile, repeatableSubType: IPmcDataRepeatableQuest, repeatableTypeName: string): void;
protected useFreeRefreshIfAvailable(fullProfile: ISptProfile, repeatableSubType: IPmcDataRepeatableQuest, repeatableTypeName: string): boolean;
}

View File

@ -170,7 +170,7 @@ export declare class RagfairOfferGenerator {
* @param tpl Item to look for matching condition object
* @returns condition id
*/
protected getDynamicConditionIdForTpl(tpl: string): string;
protected getDynamicConditionIdForTpl(tpl: string): string | undefined;
/**
* Alter an items condition based on its item base type
* @param conditionSettingsId also the parentId of item being altered

View File

@ -22,12 +22,12 @@ export declare class HealthHelper {
*/
resetVitality(sessionID: string): ISptProfile;
/**
* Update player profile with changes from request object
* Update player profile vitality values with changes from client request object
* @param pmcData Player profile
* @param request Heal request
* @param sessionID Session id
* @param addEffects Should effects be added or removed (default - add)
* @param deleteExistingEffects Should all prior effects be removed before apply new ones
* @param addEffects Should effects be added to profile (default - true)
* @param deleteExistingEffects Should all prior effects be removed before apply new ones (default - true)
*/
saveVitality(pmcData: IPmcData, request: ISyncHealthRequestData, sessionID: string, addEffects?: boolean, deleteExistingEffects?: boolean): void;
/**

View File

@ -9,9 +9,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { Inventory } from "@spt/models/eft/common/tables/IBotBase";
import { Item, Upd } from "@spt/models/eft/common/tables/IItem";
import { IAddItemDirectRequest } from "@spt/models/eft/inventory/IAddItemDirectRequest";
import { AddItem } from "@spt/models/eft/inventory/IAddItemRequestData";
import { IAddItemsDirectRequest } from "@spt/models/eft/inventory/IAddItemsDirectRequest";
import { IAddItemTempObject } from "@spt/models/eft/inventory/IAddItemTempObject";
import { IInventoryMergeRequestData } from "@spt/models/eft/inventory/IInventoryMergeRequestData";
import { IInventoryMoveRequestData } from "@spt/models/eft/inventory/IInventoryMoveRequestData";
import { IInventoryRemoveRequestData } from "@spt/models/eft/inventory/IInventoryRemoveRequestData";
@ -106,19 +104,12 @@ export declare class InventoryHelper {
* Find a location to place an item into inventory and place it
* @param stashFS2D 2-dimensional representation of the container slots
* @param sortingTableFS2D 2-dimensional representation of the sorting table slots
* @param itemWithChildren Item to place
* @param playerInventory
* @param itemWithChildren Item to place with children
* @param playerInventory Players inventory
* @param useSortingTable Should sorting table to be used if main stash has no space
* @param output output to send back to client
*/
protected placeItemInInventory(stashFS2D: number[][], sortingTableFS2D: number[][], itemWithChildren: Item[], playerInventory: Inventory, useSortingTable: boolean, output: IItemEventRouterResponse): void;
/**
* Split an items stack size based on its StackMaxSize value
* @param assortItems Items to add to inventory
* @param requestItem Details of purchased item to add to inventory
* @param result Array split stacks are appended to
*/
protected splitStackIntoSmallerChildStacks(assortItems: Item[], requestItem: AddItem, result: IAddItemTempObject[]): void;
/**
* Handle Remove event
* Remove item from player inventory + insured items array
@ -154,6 +145,14 @@ export declare class InventoryHelper {
* @returns [width, height]
*/
getItemSize(itemTpl: string, itemID: string, inventoryItems: Item[]): number[];
/**
* Calculates the size of an item including attachements
* takes into account if item is folded
* @param itemTpl Items template id
* @param itemID Items id
* @param inventoryItemHash Hashmap of inventory items
* @returns An array representing the [width, height] of the item
*/
protected getSizeByInventoryItemHash(itemTpl: string, itemID: string, inventoryItemHash: InventoryHelper.InventoryItemHash): number[];
/**
* Get a blank two-dimentional representation of a container

View File

@ -27,7 +27,8 @@ export interface FenceConfig {
presetPriceMult: number;
armorMaxDurabilityPercentMinMax: IItemDurabilityCurrentMax;
weaponDurabilityPercentMinMax: IItemDurabilityCurrentMax;
chancePlateExistsInArmorPercent: number;
/** Keyed to plate protection level */
chancePlateExistsInArmorPercent: Record<string, number>;
/** Key: item tpl */
itemStackSizeOverrideMinMax: Record<string, MinMax>;
itemTypeLimits: Record<string, number>;

View File

@ -4,7 +4,7 @@ import { PresetHelper } from "@spt/helpers/PresetHelper";
import { IFenceLevel } from "@spt/models/eft/common/IGlobals";
import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { Item, Repairable } from "@spt/models/eft/common/tables/IItem";
import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
import { ITemplateItem, Slot } from "@spt/models/eft/common/tables/ITemplateItem";
import { IBarterScheme, ITraderAssort } from "@spt/models/eft/common/tables/ITrader";
import { IItemDurabilityCurrentMax, ITraderConfig } from "@spt/models/spt/config/ITraderConfig";
import { ICreateFenceAssortsResult } from "@spt/models/spt/fence/ICreateFenceAssortsResult";
@ -254,6 +254,19 @@ export declare class FenceService {
* @param itemDbDetails Armor items db template
*/
protected randomiseArmorModDurability(armor: Item[], itemDbDetails: ITemplateItem): void;
/**
* Randomise the durability values of items on armor with a passed in slot
* @param softInsertSlots Slots of items to randomise
* @param armorItemAndMods Array of armor + inserts to get items from
*/
protected randomiseArmorSoftInsertDurabilities(softInsertSlots: Slot[], armorItemAndMods: Item[]): void;
/**
* Randomise the durability values of plate items in armor
* Has chance to remove plate
* @param plateSlots Slots of items to randomise
* @param armorItemAndMods Array of armor + inserts to get items from
*/
protected randomiseArmorInsertsDurabilities(plateSlots: Slot[], armorItemAndMods: Item[]): void;
/**
* Get stack size of a singular item (no mods)
* @param itemDbDetails item being added to fence

View File

@ -148,11 +148,12 @@ export declare class RepeatableQuestController {
changeRepeatableQuest(pmcData: IPmcData, changeRequest: IRepeatableQuestChangeRequest, sessionID: string): IItemEventRouterResponse;
protected attemptToGenerateRepeatableQuest(pmcData: IPmcData, questTypePool: IQuestTypePool, repeatableConfig: IRepeatableQuestConfig): IRepeatableQuest;
/**
* Some accounts have access to repeatable quest refreshes for free
* Some accounts have access to free repeatable quest refreshes
* Track the usage of them inside players profile
* @param fullProfile Profile of player
* @param repeatableSubType Can be daily/weekly/scav repeatables
* @param repeatableTypeName Subtype of repeatables: daily / weekly / scav
* @param fullProfile Player profile
* @param repeatableSubType Can be daily / weekly / scav repeatable
* @param repeatableTypeName Subtype of repeatable quest: daily / weekly / scav
* @returns Is the repeatable being replaced for free
*/
protected handleFreeRefreshUses(fullProfile: ISptProfile, repeatableSubType: IPmcDataRepeatableQuest, repeatableTypeName: string): void;
protected useFreeRefreshIfAvailable(fullProfile: ISptProfile, repeatableSubType: IPmcDataRepeatableQuest, repeatableTypeName: string): boolean;
}

View File

@ -170,7 +170,7 @@ export declare class RagfairOfferGenerator {
* @param tpl Item to look for matching condition object
* @returns condition id
*/
protected getDynamicConditionIdForTpl(tpl: string): string;
protected getDynamicConditionIdForTpl(tpl: string): string | undefined;
/**
* Alter an items condition based on its item base type
* @param conditionSettingsId also the parentId of item being altered

View File

@ -22,12 +22,12 @@ export declare class HealthHelper {
*/
resetVitality(sessionID: string): ISptProfile;
/**
* Update player profile with changes from request object
* Update player profile vitality values with changes from client request object
* @param pmcData Player profile
* @param request Heal request
* @param sessionID Session id
* @param addEffects Should effects be added or removed (default - add)
* @param deleteExistingEffects Should all prior effects be removed before apply new ones
* @param addEffects Should effects be added to profile (default - true)
* @param deleteExistingEffects Should all prior effects be removed before apply new ones (default - true)
*/
saveVitality(pmcData: IPmcData, request: ISyncHealthRequestData, sessionID: string, addEffects?: boolean, deleteExistingEffects?: boolean): void;
/**

View File

@ -9,9 +9,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { Inventory } from "@spt/models/eft/common/tables/IBotBase";
import { Item, Upd } from "@spt/models/eft/common/tables/IItem";
import { IAddItemDirectRequest } from "@spt/models/eft/inventory/IAddItemDirectRequest";
import { AddItem } from "@spt/models/eft/inventory/IAddItemRequestData";
import { IAddItemsDirectRequest } from "@spt/models/eft/inventory/IAddItemsDirectRequest";
import { IAddItemTempObject } from "@spt/models/eft/inventory/IAddItemTempObject";
import { IInventoryMergeRequestData } from "@spt/models/eft/inventory/IInventoryMergeRequestData";
import { IInventoryMoveRequestData } from "@spt/models/eft/inventory/IInventoryMoveRequestData";
import { IInventoryRemoveRequestData } from "@spt/models/eft/inventory/IInventoryRemoveRequestData";
@ -106,19 +104,12 @@ export declare class InventoryHelper {
* Find a location to place an item into inventory and place it
* @param stashFS2D 2-dimensional representation of the container slots
* @param sortingTableFS2D 2-dimensional representation of the sorting table slots
* @param itemWithChildren Item to place
* @param playerInventory
* @param itemWithChildren Item to place with children
* @param playerInventory Players inventory
* @param useSortingTable Should sorting table to be used if main stash has no space
* @param output output to send back to client
*/
protected placeItemInInventory(stashFS2D: number[][], sortingTableFS2D: number[][], itemWithChildren: Item[], playerInventory: Inventory, useSortingTable: boolean, output: IItemEventRouterResponse): void;
/**
* Split an items stack size based on its StackMaxSize value
* @param assortItems Items to add to inventory
* @param requestItem Details of purchased item to add to inventory
* @param result Array split stacks are appended to
*/
protected splitStackIntoSmallerChildStacks(assortItems: Item[], requestItem: AddItem, result: IAddItemTempObject[]): void;
/**
* Handle Remove event
* Remove item from player inventory + insured items array
@ -154,6 +145,14 @@ export declare class InventoryHelper {
* @returns [width, height]
*/
getItemSize(itemTpl: string, itemID: string, inventoryItems: Item[]): number[];
/**
* Calculates the size of an item including attachements
* takes into account if item is folded
* @param itemTpl Items template id
* @param itemID Items id
* @param inventoryItemHash Hashmap of inventory items
* @returns An array representing the [width, height] of the item
*/
protected getSizeByInventoryItemHash(itemTpl: string, itemID: string, inventoryItemHash: InventoryHelper.InventoryItemHash): number[];
/**
* Get a blank two-dimentional representation of a container

View File

@ -27,7 +27,8 @@ export interface FenceConfig {
presetPriceMult: number;
armorMaxDurabilityPercentMinMax: IItemDurabilityCurrentMax;
weaponDurabilityPercentMinMax: IItemDurabilityCurrentMax;
chancePlateExistsInArmorPercent: number;
/** Keyed to plate protection level */
chancePlateExistsInArmorPercent: Record<string, number>;
/** Key: item tpl */
itemStackSizeOverrideMinMax: Record<string, MinMax>;
itemTypeLimits: Record<string, number>;

View File

@ -4,7 +4,7 @@ import { PresetHelper } from "@spt/helpers/PresetHelper";
import { IFenceLevel } from "@spt/models/eft/common/IGlobals";
import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { Item, Repairable } from "@spt/models/eft/common/tables/IItem";
import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
import { ITemplateItem, Slot } from "@spt/models/eft/common/tables/ITemplateItem";
import { IBarterScheme, ITraderAssort } from "@spt/models/eft/common/tables/ITrader";
import { IItemDurabilityCurrentMax, ITraderConfig } from "@spt/models/spt/config/ITraderConfig";
import { ICreateFenceAssortsResult } from "@spt/models/spt/fence/ICreateFenceAssortsResult";
@ -254,6 +254,19 @@ export declare class FenceService {
* @param itemDbDetails Armor items db template
*/
protected randomiseArmorModDurability(armor: Item[], itemDbDetails: ITemplateItem): void;
/**
* Randomise the durability values of items on armor with a passed in slot
* @param softInsertSlots Slots of items to randomise
* @param armorItemAndMods Array of armor + inserts to get items from
*/
protected randomiseArmorSoftInsertDurabilities(softInsertSlots: Slot[], armorItemAndMods: Item[]): void;
/**
* Randomise the durability values of plate items in armor
* Has chance to remove plate
* @param plateSlots Slots of items to randomise
* @param armorItemAndMods Array of armor + inserts to get items from
*/
protected randomiseArmorInsertsDurabilities(plateSlots: Slot[], armorItemAndMods: Item[]): void;
/**
* Get stack size of a singular item (no mods)
* @param itemDbDetails item being added to fence

View File

@ -148,11 +148,12 @@ export declare class RepeatableQuestController {
changeRepeatableQuest(pmcData: IPmcData, changeRequest: IRepeatableQuestChangeRequest, sessionID: string): IItemEventRouterResponse;
protected attemptToGenerateRepeatableQuest(pmcData: IPmcData, questTypePool: IQuestTypePool, repeatableConfig: IRepeatableQuestConfig): IRepeatableQuest;
/**
* Some accounts have access to repeatable quest refreshes for free
* Some accounts have access to free repeatable quest refreshes
* Track the usage of them inside players profile
* @param fullProfile Profile of player
* @param repeatableSubType Can be daily/weekly/scav repeatables
* @param repeatableTypeName Subtype of repeatables: daily / weekly / scav
* @param fullProfile Player profile
* @param repeatableSubType Can be daily / weekly / scav repeatable
* @param repeatableTypeName Subtype of repeatable quest: daily / weekly / scav
* @returns Is the repeatable being replaced for free
*/
protected handleFreeRefreshUses(fullProfile: ISptProfile, repeatableSubType: IPmcDataRepeatableQuest, repeatableTypeName: string): void;
protected useFreeRefreshIfAvailable(fullProfile: ISptProfile, repeatableSubType: IPmcDataRepeatableQuest, repeatableTypeName: string): boolean;
}

View File

@ -170,7 +170,7 @@ export declare class RagfairOfferGenerator {
* @param tpl Item to look for matching condition object
* @returns condition id
*/
protected getDynamicConditionIdForTpl(tpl: string): string;
protected getDynamicConditionIdForTpl(tpl: string): string | undefined;
/**
* Alter an items condition based on its item base type
* @param conditionSettingsId also the parentId of item being altered

View File

@ -22,12 +22,12 @@ export declare class HealthHelper {
*/
resetVitality(sessionID: string): ISptProfile;
/**
* Update player profile with changes from request object
* Update player profile vitality values with changes from client request object
* @param pmcData Player profile
* @param request Heal request
* @param sessionID Session id
* @param addEffects Should effects be added or removed (default - add)
* @param deleteExistingEffects Should all prior effects be removed before apply new ones
* @param addEffects Should effects be added to profile (default - true)
* @param deleteExistingEffects Should all prior effects be removed before apply new ones (default - true)
*/
saveVitality(pmcData: IPmcData, request: ISyncHealthRequestData, sessionID: string, addEffects?: boolean, deleteExistingEffects?: boolean): void;
/**

View File

@ -9,9 +9,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { Inventory } from "@spt/models/eft/common/tables/IBotBase";
import { Item, Upd } from "@spt/models/eft/common/tables/IItem";
import { IAddItemDirectRequest } from "@spt/models/eft/inventory/IAddItemDirectRequest";
import { AddItem } from "@spt/models/eft/inventory/IAddItemRequestData";
import { IAddItemsDirectRequest } from "@spt/models/eft/inventory/IAddItemsDirectRequest";
import { IAddItemTempObject } from "@spt/models/eft/inventory/IAddItemTempObject";
import { IInventoryMergeRequestData } from "@spt/models/eft/inventory/IInventoryMergeRequestData";
import { IInventoryMoveRequestData } from "@spt/models/eft/inventory/IInventoryMoveRequestData";
import { IInventoryRemoveRequestData } from "@spt/models/eft/inventory/IInventoryRemoveRequestData";
@ -106,19 +104,12 @@ export declare class InventoryHelper {
* Find a location to place an item into inventory and place it
* @param stashFS2D 2-dimensional representation of the container slots
* @param sortingTableFS2D 2-dimensional representation of the sorting table slots
* @param itemWithChildren Item to place
* @param playerInventory
* @param itemWithChildren Item to place with children
* @param playerInventory Players inventory
* @param useSortingTable Should sorting table to be used if main stash has no space
* @param output output to send back to client
*/
protected placeItemInInventory(stashFS2D: number[][], sortingTableFS2D: number[][], itemWithChildren: Item[], playerInventory: Inventory, useSortingTable: boolean, output: IItemEventRouterResponse): void;
/**
* Split an items stack size based on its StackMaxSize value
* @param assortItems Items to add to inventory
* @param requestItem Details of purchased item to add to inventory
* @param result Array split stacks are appended to
*/
protected splitStackIntoSmallerChildStacks(assortItems: Item[], requestItem: AddItem, result: IAddItemTempObject[]): void;
/**
* Handle Remove event
* Remove item from player inventory + insured items array
@ -154,6 +145,14 @@ export declare class InventoryHelper {
* @returns [width, height]
*/
getItemSize(itemTpl: string, itemID: string, inventoryItems: Item[]): number[];
/**
* Calculates the size of an item including attachements
* takes into account if item is folded
* @param itemTpl Items template id
* @param itemID Items id
* @param inventoryItemHash Hashmap of inventory items
* @returns An array representing the [width, height] of the item
*/
protected getSizeByInventoryItemHash(itemTpl: string, itemID: string, inventoryItemHash: InventoryHelper.InventoryItemHash): number[];
/**
* Get a blank two-dimentional representation of a container

View File

@ -27,7 +27,8 @@ export interface FenceConfig {
presetPriceMult: number;
armorMaxDurabilityPercentMinMax: IItemDurabilityCurrentMax;
weaponDurabilityPercentMinMax: IItemDurabilityCurrentMax;
chancePlateExistsInArmorPercent: number;
/** Keyed to plate protection level */
chancePlateExistsInArmorPercent: Record<string, number>;
/** Key: item tpl */
itemStackSizeOverrideMinMax: Record<string, MinMax>;
itemTypeLimits: Record<string, number>;

View File

@ -4,7 +4,7 @@ import { PresetHelper } from "@spt/helpers/PresetHelper";
import { IFenceLevel } from "@spt/models/eft/common/IGlobals";
import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { Item, Repairable } from "@spt/models/eft/common/tables/IItem";
import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
import { ITemplateItem, Slot } from "@spt/models/eft/common/tables/ITemplateItem";
import { IBarterScheme, ITraderAssort } from "@spt/models/eft/common/tables/ITrader";
import { IItemDurabilityCurrentMax, ITraderConfig } from "@spt/models/spt/config/ITraderConfig";
import { ICreateFenceAssortsResult } from "@spt/models/spt/fence/ICreateFenceAssortsResult";
@ -254,6 +254,19 @@ export declare class FenceService {
* @param itemDbDetails Armor items db template
*/
protected randomiseArmorModDurability(armor: Item[], itemDbDetails: ITemplateItem): void;
/**
* Randomise the durability values of items on armor with a passed in slot
* @param softInsertSlots Slots of items to randomise
* @param armorItemAndMods Array of armor + inserts to get items from
*/
protected randomiseArmorSoftInsertDurabilities(softInsertSlots: Slot[], armorItemAndMods: Item[]): void;
/**
* Randomise the durability values of plate items in armor
* Has chance to remove plate
* @param plateSlots Slots of items to randomise
* @param armorItemAndMods Array of armor + inserts to get items from
*/
protected randomiseArmorInsertsDurabilities(plateSlots: Slot[], armorItemAndMods: Item[]): void;
/**
* Get stack size of a singular item (no mods)
* @param itemDbDetails item being added to fence

View File

@ -148,11 +148,12 @@ export declare class RepeatableQuestController {
changeRepeatableQuest(pmcData: IPmcData, changeRequest: IRepeatableQuestChangeRequest, sessionID: string): IItemEventRouterResponse;
protected attemptToGenerateRepeatableQuest(pmcData: IPmcData, questTypePool: IQuestTypePool, repeatableConfig: IRepeatableQuestConfig): IRepeatableQuest;
/**
* Some accounts have access to repeatable quest refreshes for free
* Some accounts have access to free repeatable quest refreshes
* Track the usage of them inside players profile
* @param fullProfile Profile of player
* @param repeatableSubType Can be daily/weekly/scav repeatables
* @param repeatableTypeName Subtype of repeatables: daily / weekly / scav
* @param fullProfile Player profile
* @param repeatableSubType Can be daily / weekly / scav repeatable
* @param repeatableTypeName Subtype of repeatable quest: daily / weekly / scav
* @returns Is the repeatable being replaced for free
*/
protected handleFreeRefreshUses(fullProfile: ISptProfile, repeatableSubType: IPmcDataRepeatableQuest, repeatableTypeName: string): void;
protected useFreeRefreshIfAvailable(fullProfile: ISptProfile, repeatableSubType: IPmcDataRepeatableQuest, repeatableTypeName: string): boolean;
}

View File

@ -170,7 +170,7 @@ export declare class RagfairOfferGenerator {
* @param tpl Item to look for matching condition object
* @returns condition id
*/
protected getDynamicConditionIdForTpl(tpl: string): string;
protected getDynamicConditionIdForTpl(tpl: string): string | undefined;
/**
* Alter an items condition based on its item base type
* @param conditionSettingsId also the parentId of item being altered

View File

@ -22,12 +22,12 @@ export declare class HealthHelper {
*/
resetVitality(sessionID: string): ISptProfile;
/**
* Update player profile with changes from request object
* Update player profile vitality values with changes from client request object
* @param pmcData Player profile
* @param request Heal request
* @param sessionID Session id
* @param addEffects Should effects be added or removed (default - add)
* @param deleteExistingEffects Should all prior effects be removed before apply new ones
* @param addEffects Should effects be added to profile (default - true)
* @param deleteExistingEffects Should all prior effects be removed before apply new ones (default - true)
*/
saveVitality(pmcData: IPmcData, request: ISyncHealthRequestData, sessionID: string, addEffects?: boolean, deleteExistingEffects?: boolean): void;
/**

View File

@ -9,9 +9,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { Inventory } from "@spt/models/eft/common/tables/IBotBase";
import { Item, Upd } from "@spt/models/eft/common/tables/IItem";
import { IAddItemDirectRequest } from "@spt/models/eft/inventory/IAddItemDirectRequest";
import { AddItem } from "@spt/models/eft/inventory/IAddItemRequestData";
import { IAddItemsDirectRequest } from "@spt/models/eft/inventory/IAddItemsDirectRequest";
import { IAddItemTempObject } from "@spt/models/eft/inventory/IAddItemTempObject";
import { IInventoryMergeRequestData } from "@spt/models/eft/inventory/IInventoryMergeRequestData";
import { IInventoryMoveRequestData } from "@spt/models/eft/inventory/IInventoryMoveRequestData";
import { IInventoryRemoveRequestData } from "@spt/models/eft/inventory/IInventoryRemoveRequestData";
@ -106,19 +104,12 @@ export declare class InventoryHelper {
* Find a location to place an item into inventory and place it
* @param stashFS2D 2-dimensional representation of the container slots
* @param sortingTableFS2D 2-dimensional representation of the sorting table slots
* @param itemWithChildren Item to place
* @param playerInventory
* @param itemWithChildren Item to place with children
* @param playerInventory Players inventory
* @param useSortingTable Should sorting table to be used if main stash has no space
* @param output output to send back to client
*/
protected placeItemInInventory(stashFS2D: number[][], sortingTableFS2D: number[][], itemWithChildren: Item[], playerInventory: Inventory, useSortingTable: boolean, output: IItemEventRouterResponse): void;
/**
* Split an items stack size based on its StackMaxSize value
* @param assortItems Items to add to inventory
* @param requestItem Details of purchased item to add to inventory
* @param result Array split stacks are appended to
*/
protected splitStackIntoSmallerChildStacks(assortItems: Item[], requestItem: AddItem, result: IAddItemTempObject[]): void;
/**
* Handle Remove event
* Remove item from player inventory + insured items array
@ -154,6 +145,14 @@ export declare class InventoryHelper {
* @returns [width, height]
*/
getItemSize(itemTpl: string, itemID: string, inventoryItems: Item[]): number[];
/**
* Calculates the size of an item including attachements
* takes into account if item is folded
* @param itemTpl Items template id
* @param itemID Items id
* @param inventoryItemHash Hashmap of inventory items
* @returns An array representing the [width, height] of the item
*/
protected getSizeByInventoryItemHash(itemTpl: string, itemID: string, inventoryItemHash: InventoryHelper.InventoryItemHash): number[];
/**
* Get a blank two-dimentional representation of a container

View File

@ -27,7 +27,8 @@ export interface FenceConfig {
presetPriceMult: number;
armorMaxDurabilityPercentMinMax: IItemDurabilityCurrentMax;
weaponDurabilityPercentMinMax: IItemDurabilityCurrentMax;
chancePlateExistsInArmorPercent: number;
/** Keyed to plate protection level */
chancePlateExistsInArmorPercent: Record<string, number>;
/** Key: item tpl */
itemStackSizeOverrideMinMax: Record<string, MinMax>;
itemTypeLimits: Record<string, number>;

View File

@ -4,7 +4,7 @@ import { PresetHelper } from "@spt/helpers/PresetHelper";
import { IFenceLevel } from "@spt/models/eft/common/IGlobals";
import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { Item, Repairable } from "@spt/models/eft/common/tables/IItem";
import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
import { ITemplateItem, Slot } from "@spt/models/eft/common/tables/ITemplateItem";
import { IBarterScheme, ITraderAssort } from "@spt/models/eft/common/tables/ITrader";
import { IItemDurabilityCurrentMax, ITraderConfig } from "@spt/models/spt/config/ITraderConfig";
import { ICreateFenceAssortsResult } from "@spt/models/spt/fence/ICreateFenceAssortsResult";
@ -254,6 +254,19 @@ export declare class FenceService {
* @param itemDbDetails Armor items db template
*/
protected randomiseArmorModDurability(armor: Item[], itemDbDetails: ITemplateItem): void;
/**
* Randomise the durability values of items on armor with a passed in slot
* @param softInsertSlots Slots of items to randomise
* @param armorItemAndMods Array of armor + inserts to get items from
*/
protected randomiseArmorSoftInsertDurabilities(softInsertSlots: Slot[], armorItemAndMods: Item[]): void;
/**
* Randomise the durability values of plate items in armor
* Has chance to remove plate
* @param plateSlots Slots of items to randomise
* @param armorItemAndMods Array of armor + inserts to get items from
*/
protected randomiseArmorInsertsDurabilities(plateSlots: Slot[], armorItemAndMods: Item[]): void;
/**
* Get stack size of a singular item (no mods)
* @param itemDbDetails item being added to fence

View File

@ -148,11 +148,12 @@ export declare class RepeatableQuestController {
changeRepeatableQuest(pmcData: IPmcData, changeRequest: IRepeatableQuestChangeRequest, sessionID: string): IItemEventRouterResponse;
protected attemptToGenerateRepeatableQuest(pmcData: IPmcData, questTypePool: IQuestTypePool, repeatableConfig: IRepeatableQuestConfig): IRepeatableQuest;
/**
* Some accounts have access to repeatable quest refreshes for free
* Some accounts have access to free repeatable quest refreshes
* Track the usage of them inside players profile
* @param fullProfile Profile of player
* @param repeatableSubType Can be daily/weekly/scav repeatables
* @param repeatableTypeName Subtype of repeatables: daily / weekly / scav
* @param fullProfile Player profile
* @param repeatableSubType Can be daily / weekly / scav repeatable
* @param repeatableTypeName Subtype of repeatable quest: daily / weekly / scav
* @returns Is the repeatable being replaced for free
*/
protected handleFreeRefreshUses(fullProfile: ISptProfile, repeatableSubType: IPmcDataRepeatableQuest, repeatableTypeName: string): void;
protected useFreeRefreshIfAvailable(fullProfile: ISptProfile, repeatableSubType: IPmcDataRepeatableQuest, repeatableTypeName: string): boolean;
}

View File

@ -170,7 +170,7 @@ export declare class RagfairOfferGenerator {
* @param tpl Item to look for matching condition object
* @returns condition id
*/
protected getDynamicConditionIdForTpl(tpl: string): string;
protected getDynamicConditionIdForTpl(tpl: string): string | undefined;
/**
* Alter an items condition based on its item base type
* @param conditionSettingsId also the parentId of item being altered

View File

@ -22,12 +22,12 @@ export declare class HealthHelper {
*/
resetVitality(sessionID: string): ISptProfile;
/**
* Update player profile with changes from request object
* Update player profile vitality values with changes from client request object
* @param pmcData Player profile
* @param request Heal request
* @param sessionID Session id
* @param addEffects Should effects be added or removed (default - add)
* @param deleteExistingEffects Should all prior effects be removed before apply new ones
* @param addEffects Should effects be added to profile (default - true)
* @param deleteExistingEffects Should all prior effects be removed before apply new ones (default - true)
*/
saveVitality(pmcData: IPmcData, request: ISyncHealthRequestData, sessionID: string, addEffects?: boolean, deleteExistingEffects?: boolean): void;
/**

View File

@ -9,9 +9,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { Inventory } from "@spt/models/eft/common/tables/IBotBase";
import { Item, Upd } from "@spt/models/eft/common/tables/IItem";
import { IAddItemDirectRequest } from "@spt/models/eft/inventory/IAddItemDirectRequest";
import { AddItem } from "@spt/models/eft/inventory/IAddItemRequestData";
import { IAddItemsDirectRequest } from "@spt/models/eft/inventory/IAddItemsDirectRequest";
import { IAddItemTempObject } from "@spt/models/eft/inventory/IAddItemTempObject";
import { IInventoryMergeRequestData } from "@spt/models/eft/inventory/IInventoryMergeRequestData";
import { IInventoryMoveRequestData } from "@spt/models/eft/inventory/IInventoryMoveRequestData";
import { IInventoryRemoveRequestData } from "@spt/models/eft/inventory/IInventoryRemoveRequestData";
@ -106,19 +104,12 @@ export declare class InventoryHelper {
* Find a location to place an item into inventory and place it
* @param stashFS2D 2-dimensional representation of the container slots
* @param sortingTableFS2D 2-dimensional representation of the sorting table slots
* @param itemWithChildren Item to place
* @param playerInventory
* @param itemWithChildren Item to place with children
* @param playerInventory Players inventory
* @param useSortingTable Should sorting table to be used if main stash has no space
* @param output output to send back to client
*/
protected placeItemInInventory(stashFS2D: number[][], sortingTableFS2D: number[][], itemWithChildren: Item[], playerInventory: Inventory, useSortingTable: boolean, output: IItemEventRouterResponse): void;
/**
* Split an items stack size based on its StackMaxSize value
* @param assortItems Items to add to inventory
* @param requestItem Details of purchased item to add to inventory
* @param result Array split stacks are appended to
*/
protected splitStackIntoSmallerChildStacks(assortItems: Item[], requestItem: AddItem, result: IAddItemTempObject[]): void;
/**
* Handle Remove event
* Remove item from player inventory + insured items array
@ -154,6 +145,14 @@ export declare class InventoryHelper {
* @returns [width, height]
*/
getItemSize(itemTpl: string, itemID: string, inventoryItems: Item[]): number[];
/**
* Calculates the size of an item including attachements
* takes into account if item is folded
* @param itemTpl Items template id
* @param itemID Items id
* @param inventoryItemHash Hashmap of inventory items
* @returns An array representing the [width, height] of the item
*/
protected getSizeByInventoryItemHash(itemTpl: string, itemID: string, inventoryItemHash: InventoryHelper.InventoryItemHash): number[];
/**
* Get a blank two-dimentional representation of a container

View File

@ -27,7 +27,8 @@ export interface FenceConfig {
presetPriceMult: number;
armorMaxDurabilityPercentMinMax: IItemDurabilityCurrentMax;
weaponDurabilityPercentMinMax: IItemDurabilityCurrentMax;
chancePlateExistsInArmorPercent: number;
/** Keyed to plate protection level */
chancePlateExistsInArmorPercent: Record<string, number>;
/** Key: item tpl */
itemStackSizeOverrideMinMax: Record<string, MinMax>;
itemTypeLimits: Record<string, number>;

View File

@ -4,7 +4,7 @@ import { PresetHelper } from "@spt/helpers/PresetHelper";
import { IFenceLevel } from "@spt/models/eft/common/IGlobals";
import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { Item, Repairable } from "@spt/models/eft/common/tables/IItem";
import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
import { ITemplateItem, Slot } from "@spt/models/eft/common/tables/ITemplateItem";
import { IBarterScheme, ITraderAssort } from "@spt/models/eft/common/tables/ITrader";
import { IItemDurabilityCurrentMax, ITraderConfig } from "@spt/models/spt/config/ITraderConfig";
import { ICreateFenceAssortsResult } from "@spt/models/spt/fence/ICreateFenceAssortsResult";
@ -254,6 +254,19 @@ export declare class FenceService {
* @param itemDbDetails Armor items db template
*/
protected randomiseArmorModDurability(armor: Item[], itemDbDetails: ITemplateItem): void;
/**
* Randomise the durability values of items on armor with a passed in slot
* @param softInsertSlots Slots of items to randomise
* @param armorItemAndMods Array of armor + inserts to get items from
*/
protected randomiseArmorSoftInsertDurabilities(softInsertSlots: Slot[], armorItemAndMods: Item[]): void;
/**
* Randomise the durability values of plate items in armor
* Has chance to remove plate
* @param plateSlots Slots of items to randomise
* @param armorItemAndMods Array of armor + inserts to get items from
*/
protected randomiseArmorInsertsDurabilities(plateSlots: Slot[], armorItemAndMods: Item[]): void;
/**
* Get stack size of a singular item (no mods)
* @param itemDbDetails item being added to fence

View File

@ -148,11 +148,12 @@ export declare class RepeatableQuestController {
changeRepeatableQuest(pmcData: IPmcData, changeRequest: IRepeatableQuestChangeRequest, sessionID: string): IItemEventRouterResponse;
protected attemptToGenerateRepeatableQuest(pmcData: IPmcData, questTypePool: IQuestTypePool, repeatableConfig: IRepeatableQuestConfig): IRepeatableQuest;
/**
* Some accounts have access to repeatable quest refreshes for free
* Some accounts have access to free repeatable quest refreshes
* Track the usage of them inside players profile
* @param fullProfile Profile of player
* @param repeatableSubType Can be daily/weekly/scav repeatables
* @param repeatableTypeName Subtype of repeatables: daily / weekly / scav
* @param fullProfile Player profile
* @param repeatableSubType Can be daily / weekly / scav repeatable
* @param repeatableTypeName Subtype of repeatable quest: daily / weekly / scav
* @returns Is the repeatable being replaced for free
*/
protected handleFreeRefreshUses(fullProfile: ISptProfile, repeatableSubType: IPmcDataRepeatableQuest, repeatableTypeName: string): void;
protected useFreeRefreshIfAvailable(fullProfile: ISptProfile, repeatableSubType: IPmcDataRepeatableQuest, repeatableTypeName: string): boolean;
}

View File

@ -170,7 +170,7 @@ export declare class RagfairOfferGenerator {
* @param tpl Item to look for matching condition object
* @returns condition id
*/
protected getDynamicConditionIdForTpl(tpl: string): string;
protected getDynamicConditionIdForTpl(tpl: string): string | undefined;
/**
* Alter an items condition based on its item base type
* @param conditionSettingsId also the parentId of item being altered

View File

@ -22,12 +22,12 @@ export declare class HealthHelper {
*/
resetVitality(sessionID: string): ISptProfile;
/**
* Update player profile with changes from request object
* Update player profile vitality values with changes from client request object
* @param pmcData Player profile
* @param request Heal request
* @param sessionID Session id
* @param addEffects Should effects be added or removed (default - add)
* @param deleteExistingEffects Should all prior effects be removed before apply new ones
* @param addEffects Should effects be added to profile (default - true)
* @param deleteExistingEffects Should all prior effects be removed before apply new ones (default - true)
*/
saveVitality(pmcData: IPmcData, request: ISyncHealthRequestData, sessionID: string, addEffects?: boolean, deleteExistingEffects?: boolean): void;
/**

View File

@ -9,9 +9,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { Inventory } from "@spt/models/eft/common/tables/IBotBase";
import { Item, Upd } from "@spt/models/eft/common/tables/IItem";
import { IAddItemDirectRequest } from "@spt/models/eft/inventory/IAddItemDirectRequest";
import { AddItem } from "@spt/models/eft/inventory/IAddItemRequestData";
import { IAddItemsDirectRequest } from "@spt/models/eft/inventory/IAddItemsDirectRequest";
import { IAddItemTempObject } from "@spt/models/eft/inventory/IAddItemTempObject";
import { IInventoryMergeRequestData } from "@spt/models/eft/inventory/IInventoryMergeRequestData";
import { IInventoryMoveRequestData } from "@spt/models/eft/inventory/IInventoryMoveRequestData";
import { IInventoryRemoveRequestData } from "@spt/models/eft/inventory/IInventoryRemoveRequestData";
@ -106,19 +104,12 @@ export declare class InventoryHelper {
* Find a location to place an item into inventory and place it
* @param stashFS2D 2-dimensional representation of the container slots
* @param sortingTableFS2D 2-dimensional representation of the sorting table slots
* @param itemWithChildren Item to place
* @param playerInventory
* @param itemWithChildren Item to place with children
* @param playerInventory Players inventory
* @param useSortingTable Should sorting table to be used if main stash has no space
* @param output output to send back to client
*/
protected placeItemInInventory(stashFS2D: number[][], sortingTableFS2D: number[][], itemWithChildren: Item[], playerInventory: Inventory, useSortingTable: boolean, output: IItemEventRouterResponse): void;
/**
* Split an items stack size based on its StackMaxSize value
* @param assortItems Items to add to inventory
* @param requestItem Details of purchased item to add to inventory
* @param result Array split stacks are appended to
*/
protected splitStackIntoSmallerChildStacks(assortItems: Item[], requestItem: AddItem, result: IAddItemTempObject[]): void;
/**
* Handle Remove event
* Remove item from player inventory + insured items array
@ -154,6 +145,14 @@ export declare class InventoryHelper {
* @returns [width, height]
*/
getItemSize(itemTpl: string, itemID: string, inventoryItems: Item[]): number[];
/**
* Calculates the size of an item including attachements
* takes into account if item is folded
* @param itemTpl Items template id
* @param itemID Items id
* @param inventoryItemHash Hashmap of inventory items
* @returns An array representing the [width, height] of the item
*/
protected getSizeByInventoryItemHash(itemTpl: string, itemID: string, inventoryItemHash: InventoryHelper.InventoryItemHash): number[];
/**
* Get a blank two-dimentional representation of a container

View File

@ -27,7 +27,8 @@ export interface FenceConfig {
presetPriceMult: number;
armorMaxDurabilityPercentMinMax: IItemDurabilityCurrentMax;
weaponDurabilityPercentMinMax: IItemDurabilityCurrentMax;
chancePlateExistsInArmorPercent: number;
/** Keyed to plate protection level */
chancePlateExistsInArmorPercent: Record<string, number>;
/** Key: item tpl */
itemStackSizeOverrideMinMax: Record<string, MinMax>;
itemTypeLimits: Record<string, number>;

View File

@ -4,7 +4,7 @@ import { PresetHelper } from "@spt/helpers/PresetHelper";
import { IFenceLevel } from "@spt/models/eft/common/IGlobals";
import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { Item, Repairable } from "@spt/models/eft/common/tables/IItem";
import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
import { ITemplateItem, Slot } from "@spt/models/eft/common/tables/ITemplateItem";
import { IBarterScheme, ITraderAssort } from "@spt/models/eft/common/tables/ITrader";
import { IItemDurabilityCurrentMax, ITraderConfig } from "@spt/models/spt/config/ITraderConfig";
import { ICreateFenceAssortsResult } from "@spt/models/spt/fence/ICreateFenceAssortsResult";
@ -254,6 +254,19 @@ export declare class FenceService {
* @param itemDbDetails Armor items db template
*/
protected randomiseArmorModDurability(armor: Item[], itemDbDetails: ITemplateItem): void;
/**
* Randomise the durability values of items on armor with a passed in slot
* @param softInsertSlots Slots of items to randomise
* @param armorItemAndMods Array of armor + inserts to get items from
*/
protected randomiseArmorSoftInsertDurabilities(softInsertSlots: Slot[], armorItemAndMods: Item[]): void;
/**
* Randomise the durability values of plate items in armor
* Has chance to remove plate
* @param plateSlots Slots of items to randomise
* @param armorItemAndMods Array of armor + inserts to get items from
*/
protected randomiseArmorInsertsDurabilities(plateSlots: Slot[], armorItemAndMods: Item[]): void;
/**
* Get stack size of a singular item (no mods)
* @param itemDbDetails item being added to fence

View File

@ -148,11 +148,12 @@ export declare class RepeatableQuestController {
changeRepeatableQuest(pmcData: IPmcData, changeRequest: IRepeatableQuestChangeRequest, sessionID: string): IItemEventRouterResponse;
protected attemptToGenerateRepeatableQuest(pmcData: IPmcData, questTypePool: IQuestTypePool, repeatableConfig: IRepeatableQuestConfig): IRepeatableQuest;
/**
* Some accounts have access to repeatable quest refreshes for free
* Some accounts have access to free repeatable quest refreshes
* Track the usage of them inside players profile
* @param fullProfile Profile of player
* @param repeatableSubType Can be daily/weekly/scav repeatables
* @param repeatableTypeName Subtype of repeatables: daily / weekly / scav
* @param fullProfile Player profile
* @param repeatableSubType Can be daily / weekly / scav repeatable
* @param repeatableTypeName Subtype of repeatable quest: daily / weekly / scav
* @returns Is the repeatable being replaced for free
*/
protected handleFreeRefreshUses(fullProfile: ISptProfile, repeatableSubType: IPmcDataRepeatableQuest, repeatableTypeName: string): void;
protected useFreeRefreshIfAvailable(fullProfile: ISptProfile, repeatableSubType: IPmcDataRepeatableQuest, repeatableTypeName: string): boolean;
}

View File

@ -170,7 +170,7 @@ export declare class RagfairOfferGenerator {
* @param tpl Item to look for matching condition object
* @returns condition id
*/
protected getDynamicConditionIdForTpl(tpl: string): string;
protected getDynamicConditionIdForTpl(tpl: string): string | undefined;
/**
* Alter an items condition based on its item base type
* @param conditionSettingsId also the parentId of item being altered

View File

@ -22,12 +22,12 @@ export declare class HealthHelper {
*/
resetVitality(sessionID: string): ISptProfile;
/**
* Update player profile with changes from request object
* Update player profile vitality values with changes from client request object
* @param pmcData Player profile
* @param request Heal request
* @param sessionID Session id
* @param addEffects Should effects be added or removed (default - add)
* @param deleteExistingEffects Should all prior effects be removed before apply new ones
* @param addEffects Should effects be added to profile (default - true)
* @param deleteExistingEffects Should all prior effects be removed before apply new ones (default - true)
*/
saveVitality(pmcData: IPmcData, request: ISyncHealthRequestData, sessionID: string, addEffects?: boolean, deleteExistingEffects?: boolean): void;
/**

View File

@ -9,9 +9,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { Inventory } from "@spt/models/eft/common/tables/IBotBase";
import { Item, Upd } from "@spt/models/eft/common/tables/IItem";
import { IAddItemDirectRequest } from "@spt/models/eft/inventory/IAddItemDirectRequest";
import { AddItem } from "@spt/models/eft/inventory/IAddItemRequestData";
import { IAddItemsDirectRequest } from "@spt/models/eft/inventory/IAddItemsDirectRequest";
import { IAddItemTempObject } from "@spt/models/eft/inventory/IAddItemTempObject";
import { IInventoryMergeRequestData } from "@spt/models/eft/inventory/IInventoryMergeRequestData";
import { IInventoryMoveRequestData } from "@spt/models/eft/inventory/IInventoryMoveRequestData";
import { IInventoryRemoveRequestData } from "@spt/models/eft/inventory/IInventoryRemoveRequestData";
@ -106,19 +104,12 @@ export declare class InventoryHelper {
* Find a location to place an item into inventory and place it
* @param stashFS2D 2-dimensional representation of the container slots
* @param sortingTableFS2D 2-dimensional representation of the sorting table slots
* @param itemWithChildren Item to place
* @param playerInventory
* @param itemWithChildren Item to place with children
* @param playerInventory Players inventory
* @param useSortingTable Should sorting table to be used if main stash has no space
* @param output output to send back to client
*/
protected placeItemInInventory(stashFS2D: number[][], sortingTableFS2D: number[][], itemWithChildren: Item[], playerInventory: Inventory, useSortingTable: boolean, output: IItemEventRouterResponse): void;
/**
* Split an items stack size based on its StackMaxSize value
* @param assortItems Items to add to inventory
* @param requestItem Details of purchased item to add to inventory
* @param result Array split stacks are appended to
*/
protected splitStackIntoSmallerChildStacks(assortItems: Item[], requestItem: AddItem, result: IAddItemTempObject[]): void;
/**
* Handle Remove event
* Remove item from player inventory + insured items array
@ -154,6 +145,14 @@ export declare class InventoryHelper {
* @returns [width, height]
*/
getItemSize(itemTpl: string, itemID: string, inventoryItems: Item[]): number[];
/**
* Calculates the size of an item including attachements
* takes into account if item is folded
* @param itemTpl Items template id
* @param itemID Items id
* @param inventoryItemHash Hashmap of inventory items
* @returns An array representing the [width, height] of the item
*/
protected getSizeByInventoryItemHash(itemTpl: string, itemID: string, inventoryItemHash: InventoryHelper.InventoryItemHash): number[];
/**
* Get a blank two-dimentional representation of a container

View File

@ -27,7 +27,8 @@ export interface FenceConfig {
presetPriceMult: number;
armorMaxDurabilityPercentMinMax: IItemDurabilityCurrentMax;
weaponDurabilityPercentMinMax: IItemDurabilityCurrentMax;
chancePlateExistsInArmorPercent: number;
/** Keyed to plate protection level */
chancePlateExistsInArmorPercent: Record<string, number>;
/** Key: item tpl */
itemStackSizeOverrideMinMax: Record<string, MinMax>;
itemTypeLimits: Record<string, number>;

View File

@ -4,7 +4,7 @@ import { PresetHelper } from "@spt/helpers/PresetHelper";
import { IFenceLevel } from "@spt/models/eft/common/IGlobals";
import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { Item, Repairable } from "@spt/models/eft/common/tables/IItem";
import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
import { ITemplateItem, Slot } from "@spt/models/eft/common/tables/ITemplateItem";
import { IBarterScheme, ITraderAssort } from "@spt/models/eft/common/tables/ITrader";
import { IItemDurabilityCurrentMax, ITraderConfig } from "@spt/models/spt/config/ITraderConfig";
import { ICreateFenceAssortsResult } from "@spt/models/spt/fence/ICreateFenceAssortsResult";
@ -254,6 +254,19 @@ export declare class FenceService {
* @param itemDbDetails Armor items db template
*/
protected randomiseArmorModDurability(armor: Item[], itemDbDetails: ITemplateItem): void;
/**
* Randomise the durability values of items on armor with a passed in slot
* @param softInsertSlots Slots of items to randomise
* @param armorItemAndMods Array of armor + inserts to get items from
*/
protected randomiseArmorSoftInsertDurabilities(softInsertSlots: Slot[], armorItemAndMods: Item[]): void;
/**
* Randomise the durability values of plate items in armor
* Has chance to remove plate
* @param plateSlots Slots of items to randomise
* @param armorItemAndMods Array of armor + inserts to get items from
*/
protected randomiseArmorInsertsDurabilities(plateSlots: Slot[], armorItemAndMods: Item[]): void;
/**
* Get stack size of a singular item (no mods)
* @param itemDbDetails item being added to fence

View File

@ -148,11 +148,12 @@ export declare class RepeatableQuestController {
changeRepeatableQuest(pmcData: IPmcData, changeRequest: IRepeatableQuestChangeRequest, sessionID: string): IItemEventRouterResponse;
protected attemptToGenerateRepeatableQuest(pmcData: IPmcData, questTypePool: IQuestTypePool, repeatableConfig: IRepeatableQuestConfig): IRepeatableQuest;
/**
* Some accounts have access to repeatable quest refreshes for free
* Some accounts have access to free repeatable quest refreshes
* Track the usage of them inside players profile
* @param fullProfile Profile of player
* @param repeatableSubType Can be daily/weekly/scav repeatables
* @param repeatableTypeName Subtype of repeatables: daily / weekly / scav
* @param fullProfile Player profile
* @param repeatableSubType Can be daily / weekly / scav repeatable
* @param repeatableTypeName Subtype of repeatable quest: daily / weekly / scav
* @returns Is the repeatable being replaced for free
*/
protected handleFreeRefreshUses(fullProfile: ISptProfile, repeatableSubType: IPmcDataRepeatableQuest, repeatableTypeName: string): void;
protected useFreeRefreshIfAvailable(fullProfile: ISptProfile, repeatableSubType: IPmcDataRepeatableQuest, repeatableTypeName: string): boolean;
}

View File

@ -170,7 +170,7 @@ export declare class RagfairOfferGenerator {
* @param tpl Item to look for matching condition object
* @returns condition id
*/
protected getDynamicConditionIdForTpl(tpl: string): string;
protected getDynamicConditionIdForTpl(tpl: string): string | undefined;
/**
* Alter an items condition based on its item base type
* @param conditionSettingsId also the parentId of item being altered

View File

@ -22,12 +22,12 @@ export declare class HealthHelper {
*/
resetVitality(sessionID: string): ISptProfile;
/**
* Update player profile with changes from request object
* Update player profile vitality values with changes from client request object
* @param pmcData Player profile
* @param request Heal request
* @param sessionID Session id
* @param addEffects Should effects be added or removed (default - add)
* @param deleteExistingEffects Should all prior effects be removed before apply new ones
* @param addEffects Should effects be added to profile (default - true)
* @param deleteExistingEffects Should all prior effects be removed before apply new ones (default - true)
*/
saveVitality(pmcData: IPmcData, request: ISyncHealthRequestData, sessionID: string, addEffects?: boolean, deleteExistingEffects?: boolean): void;
/**

View File

@ -9,9 +9,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { Inventory } from "@spt/models/eft/common/tables/IBotBase";
import { Item, Upd } from "@spt/models/eft/common/tables/IItem";
import { IAddItemDirectRequest } from "@spt/models/eft/inventory/IAddItemDirectRequest";
import { AddItem } from "@spt/models/eft/inventory/IAddItemRequestData";
import { IAddItemsDirectRequest } from "@spt/models/eft/inventory/IAddItemsDirectRequest";
import { IAddItemTempObject } from "@spt/models/eft/inventory/IAddItemTempObject";
import { IInventoryMergeRequestData } from "@spt/models/eft/inventory/IInventoryMergeRequestData";
import { IInventoryMoveRequestData } from "@spt/models/eft/inventory/IInventoryMoveRequestData";
import { IInventoryRemoveRequestData } from "@spt/models/eft/inventory/IInventoryRemoveRequestData";
@ -106,19 +104,12 @@ export declare class InventoryHelper {
* Find a location to place an item into inventory and place it
* @param stashFS2D 2-dimensional representation of the container slots
* @param sortingTableFS2D 2-dimensional representation of the sorting table slots
* @param itemWithChildren Item to place
* @param playerInventory
* @param itemWithChildren Item to place with children
* @param playerInventory Players inventory
* @param useSortingTable Should sorting table to be used if main stash has no space
* @param output output to send back to client
*/
protected placeItemInInventory(stashFS2D: number[][], sortingTableFS2D: number[][], itemWithChildren: Item[], playerInventory: Inventory, useSortingTable: boolean, output: IItemEventRouterResponse): void;
/**
* Split an items stack size based on its StackMaxSize value
* @param assortItems Items to add to inventory
* @param requestItem Details of purchased item to add to inventory
* @param result Array split stacks are appended to
*/
protected splitStackIntoSmallerChildStacks(assortItems: Item[], requestItem: AddItem, result: IAddItemTempObject[]): void;
/**
* Handle Remove event
* Remove item from player inventory + insured items array
@ -154,6 +145,14 @@ export declare class InventoryHelper {
* @returns [width, height]
*/
getItemSize(itemTpl: string, itemID: string, inventoryItems: Item[]): number[];
/**
* Calculates the size of an item including attachements
* takes into account if item is folded
* @param itemTpl Items template id
* @param itemID Items id
* @param inventoryItemHash Hashmap of inventory items
* @returns An array representing the [width, height] of the item
*/
protected getSizeByInventoryItemHash(itemTpl: string, itemID: string, inventoryItemHash: InventoryHelper.InventoryItemHash): number[];
/**
* Get a blank two-dimentional representation of a container

View File

@ -27,7 +27,8 @@ export interface FenceConfig {
presetPriceMult: number;
armorMaxDurabilityPercentMinMax: IItemDurabilityCurrentMax;
weaponDurabilityPercentMinMax: IItemDurabilityCurrentMax;
chancePlateExistsInArmorPercent: number;
/** Keyed to plate protection level */
chancePlateExistsInArmorPercent: Record<string, number>;
/** Key: item tpl */
itemStackSizeOverrideMinMax: Record<string, MinMax>;
itemTypeLimits: Record<string, number>;

View File

@ -4,7 +4,7 @@ import { PresetHelper } from "@spt/helpers/PresetHelper";
import { IFenceLevel } from "@spt/models/eft/common/IGlobals";
import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { Item, Repairable } from "@spt/models/eft/common/tables/IItem";
import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
import { ITemplateItem, Slot } from "@spt/models/eft/common/tables/ITemplateItem";
import { IBarterScheme, ITraderAssort } from "@spt/models/eft/common/tables/ITrader";
import { IItemDurabilityCurrentMax, ITraderConfig } from "@spt/models/spt/config/ITraderConfig";
import { ICreateFenceAssortsResult } from "@spt/models/spt/fence/ICreateFenceAssortsResult";
@ -254,6 +254,19 @@ export declare class FenceService {
* @param itemDbDetails Armor items db template
*/
protected randomiseArmorModDurability(armor: Item[], itemDbDetails: ITemplateItem): void;
/**
* Randomise the durability values of items on armor with a passed in slot
* @param softInsertSlots Slots of items to randomise
* @param armorItemAndMods Array of armor + inserts to get items from
*/
protected randomiseArmorSoftInsertDurabilities(softInsertSlots: Slot[], armorItemAndMods: Item[]): void;
/**
* Randomise the durability values of plate items in armor
* Has chance to remove plate
* @param plateSlots Slots of items to randomise
* @param armorItemAndMods Array of armor + inserts to get items from
*/
protected randomiseArmorInsertsDurabilities(plateSlots: Slot[], armorItemAndMods: Item[]): void;
/**
* Get stack size of a singular item (no mods)
* @param itemDbDetails item being added to fence

View File

@ -148,11 +148,12 @@ export declare class RepeatableQuestController {
changeRepeatableQuest(pmcData: IPmcData, changeRequest: IRepeatableQuestChangeRequest, sessionID: string): IItemEventRouterResponse;
protected attemptToGenerateRepeatableQuest(pmcData: IPmcData, questTypePool: IQuestTypePool, repeatableConfig: IRepeatableQuestConfig): IRepeatableQuest;
/**
* Some accounts have access to repeatable quest refreshes for free
* Some accounts have access to free repeatable quest refreshes
* Track the usage of them inside players profile
* @param fullProfile Profile of player
* @param repeatableSubType Can be daily/weekly/scav repeatables
* @param repeatableTypeName Subtype of repeatables: daily / weekly / scav
* @param fullProfile Player profile
* @param repeatableSubType Can be daily / weekly / scav repeatable
* @param repeatableTypeName Subtype of repeatable quest: daily / weekly / scav
* @returns Is the repeatable being replaced for free
*/
protected handleFreeRefreshUses(fullProfile: ISptProfile, repeatableSubType: IPmcDataRepeatableQuest, repeatableTypeName: string): void;
protected useFreeRefreshIfAvailable(fullProfile: ISptProfile, repeatableSubType: IPmcDataRepeatableQuest, repeatableTypeName: string): boolean;
}

View File

@ -170,7 +170,7 @@ export declare class RagfairOfferGenerator {
* @param tpl Item to look for matching condition object
* @returns condition id
*/
protected getDynamicConditionIdForTpl(tpl: string): string;
protected getDynamicConditionIdForTpl(tpl: string): string | undefined;
/**
* Alter an items condition based on its item base type
* @param conditionSettingsId also the parentId of item being altered

View File

@ -22,12 +22,12 @@ export declare class HealthHelper {
*/
resetVitality(sessionID: string): ISptProfile;
/**
* Update player profile with changes from request object
* Update player profile vitality values with changes from client request object
* @param pmcData Player profile
* @param request Heal request
* @param sessionID Session id
* @param addEffects Should effects be added or removed (default - add)
* @param deleteExistingEffects Should all prior effects be removed before apply new ones
* @param addEffects Should effects be added to profile (default - true)
* @param deleteExistingEffects Should all prior effects be removed before apply new ones (default - true)
*/
saveVitality(pmcData: IPmcData, request: ISyncHealthRequestData, sessionID: string, addEffects?: boolean, deleteExistingEffects?: boolean): void;
/**

View File

@ -9,9 +9,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { Inventory } from "@spt/models/eft/common/tables/IBotBase";
import { Item, Upd } from "@spt/models/eft/common/tables/IItem";
import { IAddItemDirectRequest } from "@spt/models/eft/inventory/IAddItemDirectRequest";
import { AddItem } from "@spt/models/eft/inventory/IAddItemRequestData";
import { IAddItemsDirectRequest } from "@spt/models/eft/inventory/IAddItemsDirectRequest";
import { IAddItemTempObject } from "@spt/models/eft/inventory/IAddItemTempObject";
import { IInventoryMergeRequestData } from "@spt/models/eft/inventory/IInventoryMergeRequestData";
import { IInventoryMoveRequestData } from "@spt/models/eft/inventory/IInventoryMoveRequestData";
import { IInventoryRemoveRequestData } from "@spt/models/eft/inventory/IInventoryRemoveRequestData";
@ -106,19 +104,12 @@ export declare class InventoryHelper {
* Find a location to place an item into inventory and place it
* @param stashFS2D 2-dimensional representation of the container slots
* @param sortingTableFS2D 2-dimensional representation of the sorting table slots
* @param itemWithChildren Item to place
* @param playerInventory
* @param itemWithChildren Item to place with children
* @param playerInventory Players inventory
* @param useSortingTable Should sorting table to be used if main stash has no space
* @param output output to send back to client
*/
protected placeItemInInventory(stashFS2D: number[][], sortingTableFS2D: number[][], itemWithChildren: Item[], playerInventory: Inventory, useSortingTable: boolean, output: IItemEventRouterResponse): void;
/**
* Split an items stack size based on its StackMaxSize value
* @param assortItems Items to add to inventory
* @param requestItem Details of purchased item to add to inventory
* @param result Array split stacks are appended to
*/
protected splitStackIntoSmallerChildStacks(assortItems: Item[], requestItem: AddItem, result: IAddItemTempObject[]): void;
/**
* Handle Remove event
* Remove item from player inventory + insured items array
@ -154,6 +145,14 @@ export declare class InventoryHelper {
* @returns [width, height]
*/
getItemSize(itemTpl: string, itemID: string, inventoryItems: Item[]): number[];
/**
* Calculates the size of an item including attachements
* takes into account if item is folded
* @param itemTpl Items template id
* @param itemID Items id
* @param inventoryItemHash Hashmap of inventory items
* @returns An array representing the [width, height] of the item
*/
protected getSizeByInventoryItemHash(itemTpl: string, itemID: string, inventoryItemHash: InventoryHelper.InventoryItemHash): number[];
/**
* Get a blank two-dimentional representation of a container

View File

@ -27,7 +27,8 @@ export interface FenceConfig {
presetPriceMult: number;
armorMaxDurabilityPercentMinMax: IItemDurabilityCurrentMax;
weaponDurabilityPercentMinMax: IItemDurabilityCurrentMax;
chancePlateExistsInArmorPercent: number;
/** Keyed to plate protection level */
chancePlateExistsInArmorPercent: Record<string, number>;
/** Key: item tpl */
itemStackSizeOverrideMinMax: Record<string, MinMax>;
itemTypeLimits: Record<string, number>;

View File

@ -4,7 +4,7 @@ import { PresetHelper } from "@spt/helpers/PresetHelper";
import { IFenceLevel } from "@spt/models/eft/common/IGlobals";
import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { Item, Repairable } from "@spt/models/eft/common/tables/IItem";
import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
import { ITemplateItem, Slot } from "@spt/models/eft/common/tables/ITemplateItem";
import { IBarterScheme, ITraderAssort } from "@spt/models/eft/common/tables/ITrader";
import { IItemDurabilityCurrentMax, ITraderConfig } from "@spt/models/spt/config/ITraderConfig";
import { ICreateFenceAssortsResult } from "@spt/models/spt/fence/ICreateFenceAssortsResult";
@ -254,6 +254,19 @@ export declare class FenceService {
* @param itemDbDetails Armor items db template
*/
protected randomiseArmorModDurability(armor: Item[], itemDbDetails: ITemplateItem): void;
/**
* Randomise the durability values of items on armor with a passed in slot
* @param softInsertSlots Slots of items to randomise
* @param armorItemAndMods Array of armor + inserts to get items from
*/
protected randomiseArmorSoftInsertDurabilities(softInsertSlots: Slot[], armorItemAndMods: Item[]): void;
/**
* Randomise the durability values of plate items in armor
* Has chance to remove plate
* @param plateSlots Slots of items to randomise
* @param armorItemAndMods Array of armor + inserts to get items from
*/
protected randomiseArmorInsertsDurabilities(plateSlots: Slot[], armorItemAndMods: Item[]): void;
/**
* Get stack size of a singular item (no mods)
* @param itemDbDetails item being added to fence

View File

@ -148,11 +148,12 @@ export declare class RepeatableQuestController {
changeRepeatableQuest(pmcData: IPmcData, changeRequest: IRepeatableQuestChangeRequest, sessionID: string): IItemEventRouterResponse;
protected attemptToGenerateRepeatableQuest(pmcData: IPmcData, questTypePool: IQuestTypePool, repeatableConfig: IRepeatableQuestConfig): IRepeatableQuest;
/**
* Some accounts have access to repeatable quest refreshes for free
* Some accounts have access to free repeatable quest refreshes
* Track the usage of them inside players profile
* @param fullProfile Profile of player
* @param repeatableSubType Can be daily/weekly/scav repeatables
* @param repeatableTypeName Subtype of repeatables: daily / weekly / scav
* @param fullProfile Player profile
* @param repeatableSubType Can be daily / weekly / scav repeatable
* @param repeatableTypeName Subtype of repeatable quest: daily / weekly / scav
* @returns Is the repeatable being replaced for free
*/
protected handleFreeRefreshUses(fullProfile: ISptProfile, repeatableSubType: IPmcDataRepeatableQuest, repeatableTypeName: string): void;
protected useFreeRefreshIfAvailable(fullProfile: ISptProfile, repeatableSubType: IPmcDataRepeatableQuest, repeatableTypeName: string): boolean;
}

View File

@ -170,7 +170,7 @@ export declare class RagfairOfferGenerator {
* @param tpl Item to look for matching condition object
* @returns condition id
*/
protected getDynamicConditionIdForTpl(tpl: string): string;
protected getDynamicConditionIdForTpl(tpl: string): string | undefined;
/**
* Alter an items condition based on its item base type
* @param conditionSettingsId also the parentId of item being altered

View File

@ -22,12 +22,12 @@ export declare class HealthHelper {
*/
resetVitality(sessionID: string): ISptProfile;
/**
* Update player profile with changes from request object
* Update player profile vitality values with changes from client request object
* @param pmcData Player profile
* @param request Heal request
* @param sessionID Session id
* @param addEffects Should effects be added or removed (default - add)
* @param deleteExistingEffects Should all prior effects be removed before apply new ones
* @param addEffects Should effects be added to profile (default - true)
* @param deleteExistingEffects Should all prior effects be removed before apply new ones (default - true)
*/
saveVitality(pmcData: IPmcData, request: ISyncHealthRequestData, sessionID: string, addEffects?: boolean, deleteExistingEffects?: boolean): void;
/**

View File

@ -9,9 +9,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { Inventory } from "@spt/models/eft/common/tables/IBotBase";
import { Item, Upd } from "@spt/models/eft/common/tables/IItem";
import { IAddItemDirectRequest } from "@spt/models/eft/inventory/IAddItemDirectRequest";
import { AddItem } from "@spt/models/eft/inventory/IAddItemRequestData";
import { IAddItemsDirectRequest } from "@spt/models/eft/inventory/IAddItemsDirectRequest";
import { IAddItemTempObject } from "@spt/models/eft/inventory/IAddItemTempObject";
import { IInventoryMergeRequestData } from "@spt/models/eft/inventory/IInventoryMergeRequestData";
import { IInventoryMoveRequestData } from "@spt/models/eft/inventory/IInventoryMoveRequestData";
import { IInventoryRemoveRequestData } from "@spt/models/eft/inventory/IInventoryRemoveRequestData";
@ -106,19 +104,12 @@ export declare class InventoryHelper {
* Find a location to place an item into inventory and place it
* @param stashFS2D 2-dimensional representation of the container slots
* @param sortingTableFS2D 2-dimensional representation of the sorting table slots
* @param itemWithChildren Item to place
* @param playerInventory
* @param itemWithChildren Item to place with children
* @param playerInventory Players inventory
* @param useSortingTable Should sorting table to be used if main stash has no space
* @param output output to send back to client
*/
protected placeItemInInventory(stashFS2D: number[][], sortingTableFS2D: number[][], itemWithChildren: Item[], playerInventory: Inventory, useSortingTable: boolean, output: IItemEventRouterResponse): void;
/**
* Split an items stack size based on its StackMaxSize value
* @param assortItems Items to add to inventory
* @param requestItem Details of purchased item to add to inventory
* @param result Array split stacks are appended to
*/
protected splitStackIntoSmallerChildStacks(assortItems: Item[], requestItem: AddItem, result: IAddItemTempObject[]): void;
/**
* Handle Remove event
* Remove item from player inventory + insured items array
@ -154,6 +145,14 @@ export declare class InventoryHelper {
* @returns [width, height]
*/
getItemSize(itemTpl: string, itemID: string, inventoryItems: Item[]): number[];
/**
* Calculates the size of an item including attachements
* takes into account if item is folded
* @param itemTpl Items template id
* @param itemID Items id
* @param inventoryItemHash Hashmap of inventory items
* @returns An array representing the [width, height] of the item
*/
protected getSizeByInventoryItemHash(itemTpl: string, itemID: string, inventoryItemHash: InventoryHelper.InventoryItemHash): number[];
/**
* Get a blank two-dimentional representation of a container

View File

@ -27,7 +27,8 @@ export interface FenceConfig {
presetPriceMult: number;
armorMaxDurabilityPercentMinMax: IItemDurabilityCurrentMax;
weaponDurabilityPercentMinMax: IItemDurabilityCurrentMax;
chancePlateExistsInArmorPercent: number;
/** Keyed to plate protection level */
chancePlateExistsInArmorPercent: Record<string, number>;
/** Key: item tpl */
itemStackSizeOverrideMinMax: Record<string, MinMax>;
itemTypeLimits: Record<string, number>;

View File

@ -4,7 +4,7 @@ import { PresetHelper } from "@spt/helpers/PresetHelper";
import { IFenceLevel } from "@spt/models/eft/common/IGlobals";
import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { Item, Repairable } from "@spt/models/eft/common/tables/IItem";
import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
import { ITemplateItem, Slot } from "@spt/models/eft/common/tables/ITemplateItem";
import { IBarterScheme, ITraderAssort } from "@spt/models/eft/common/tables/ITrader";
import { IItemDurabilityCurrentMax, ITraderConfig } from "@spt/models/spt/config/ITraderConfig";
import { ICreateFenceAssortsResult } from "@spt/models/spt/fence/ICreateFenceAssortsResult";
@ -254,6 +254,19 @@ export declare class FenceService {
* @param itemDbDetails Armor items db template
*/
protected randomiseArmorModDurability(armor: Item[], itemDbDetails: ITemplateItem): void;
/**
* Randomise the durability values of items on armor with a passed in slot
* @param softInsertSlots Slots of items to randomise
* @param armorItemAndMods Array of armor + inserts to get items from
*/
protected randomiseArmorSoftInsertDurabilities(softInsertSlots: Slot[], armorItemAndMods: Item[]): void;
/**
* Randomise the durability values of plate items in armor
* Has chance to remove plate
* @param plateSlots Slots of items to randomise
* @param armorItemAndMods Array of armor + inserts to get items from
*/
protected randomiseArmorInsertsDurabilities(plateSlots: Slot[], armorItemAndMods: Item[]): void;
/**
* Get stack size of a singular item (no mods)
* @param itemDbDetails item being added to fence

View File

@ -148,11 +148,12 @@ export declare class RepeatableQuestController {
changeRepeatableQuest(pmcData: IPmcData, changeRequest: IRepeatableQuestChangeRequest, sessionID: string): IItemEventRouterResponse;
protected attemptToGenerateRepeatableQuest(pmcData: IPmcData, questTypePool: IQuestTypePool, repeatableConfig: IRepeatableQuestConfig): IRepeatableQuest;
/**
* Some accounts have access to repeatable quest refreshes for free
* Some accounts have access to free repeatable quest refreshes
* Track the usage of them inside players profile
* @param fullProfile Profile of player
* @param repeatableSubType Can be daily/weekly/scav repeatables
* @param repeatableTypeName Subtype of repeatables: daily / weekly / scav
* @param fullProfile Player profile
* @param repeatableSubType Can be daily / weekly / scav repeatable
* @param repeatableTypeName Subtype of repeatable quest: daily / weekly / scav
* @returns Is the repeatable being replaced for free
*/
protected handleFreeRefreshUses(fullProfile: ISptProfile, repeatableSubType: IPmcDataRepeatableQuest, repeatableTypeName: string): void;
protected useFreeRefreshIfAvailable(fullProfile: ISptProfile, repeatableSubType: IPmcDataRepeatableQuest, repeatableTypeName: string): boolean;
}

View File

@ -170,7 +170,7 @@ export declare class RagfairOfferGenerator {
* @param tpl Item to look for matching condition object
* @returns condition id
*/
protected getDynamicConditionIdForTpl(tpl: string): string;
protected getDynamicConditionIdForTpl(tpl: string): string | undefined;
/**
* Alter an items condition based on its item base type
* @param conditionSettingsId also the parentId of item being altered

View File

@ -22,12 +22,12 @@ export declare class HealthHelper {
*/
resetVitality(sessionID: string): ISptProfile;
/**
* Update player profile with changes from request object
* Update player profile vitality values with changes from client request object
* @param pmcData Player profile
* @param request Heal request
* @param sessionID Session id
* @param addEffects Should effects be added or removed (default - add)
* @param deleteExistingEffects Should all prior effects be removed before apply new ones
* @param addEffects Should effects be added to profile (default - true)
* @param deleteExistingEffects Should all prior effects be removed before apply new ones (default - true)
*/
saveVitality(pmcData: IPmcData, request: ISyncHealthRequestData, sessionID: string, addEffects?: boolean, deleteExistingEffects?: boolean): void;
/**

View File

@ -9,9 +9,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { Inventory } from "@spt/models/eft/common/tables/IBotBase";
import { Item, Upd } from "@spt/models/eft/common/tables/IItem";
import { IAddItemDirectRequest } from "@spt/models/eft/inventory/IAddItemDirectRequest";
import { AddItem } from "@spt/models/eft/inventory/IAddItemRequestData";
import { IAddItemsDirectRequest } from "@spt/models/eft/inventory/IAddItemsDirectRequest";
import { IAddItemTempObject } from "@spt/models/eft/inventory/IAddItemTempObject";
import { IInventoryMergeRequestData } from "@spt/models/eft/inventory/IInventoryMergeRequestData";
import { IInventoryMoveRequestData } from "@spt/models/eft/inventory/IInventoryMoveRequestData";
import { IInventoryRemoveRequestData } from "@spt/models/eft/inventory/IInventoryRemoveRequestData";
@ -106,19 +104,12 @@ export declare class InventoryHelper {
* Find a location to place an item into inventory and place it
* @param stashFS2D 2-dimensional representation of the container slots
* @param sortingTableFS2D 2-dimensional representation of the sorting table slots
* @param itemWithChildren Item to place
* @param playerInventory
* @param itemWithChildren Item to place with children
* @param playerInventory Players inventory
* @param useSortingTable Should sorting table to be used if main stash has no space
* @param output output to send back to client
*/
protected placeItemInInventory(stashFS2D: number[][], sortingTableFS2D: number[][], itemWithChildren: Item[], playerInventory: Inventory, useSortingTable: boolean, output: IItemEventRouterResponse): void;
/**
* Split an items stack size based on its StackMaxSize value
* @param assortItems Items to add to inventory
* @param requestItem Details of purchased item to add to inventory
* @param result Array split stacks are appended to
*/
protected splitStackIntoSmallerChildStacks(assortItems: Item[], requestItem: AddItem, result: IAddItemTempObject[]): void;
/**
* Handle Remove event
* Remove item from player inventory + insured items array
@ -154,6 +145,14 @@ export declare class InventoryHelper {
* @returns [width, height]
*/
getItemSize(itemTpl: string, itemID: string, inventoryItems: Item[]): number[];
/**
* Calculates the size of an item including attachements
* takes into account if item is folded
* @param itemTpl Items template id
* @param itemID Items id
* @param inventoryItemHash Hashmap of inventory items
* @returns An array representing the [width, height] of the item
*/
protected getSizeByInventoryItemHash(itemTpl: string, itemID: string, inventoryItemHash: InventoryHelper.InventoryItemHash): number[];
/**
* Get a blank two-dimentional representation of a container

View File

@ -27,7 +27,8 @@ export interface FenceConfig {
presetPriceMult: number;
armorMaxDurabilityPercentMinMax: IItemDurabilityCurrentMax;
weaponDurabilityPercentMinMax: IItemDurabilityCurrentMax;
chancePlateExistsInArmorPercent: number;
/** Keyed to plate protection level */
chancePlateExistsInArmorPercent: Record<string, number>;
/** Key: item tpl */
itemStackSizeOverrideMinMax: Record<string, MinMax>;
itemTypeLimits: Record<string, number>;

View File

@ -4,7 +4,7 @@ import { PresetHelper } from "@spt/helpers/PresetHelper";
import { IFenceLevel } from "@spt/models/eft/common/IGlobals";
import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { Item, Repairable } from "@spt/models/eft/common/tables/IItem";
import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
import { ITemplateItem, Slot } from "@spt/models/eft/common/tables/ITemplateItem";
import { IBarterScheme, ITraderAssort } from "@spt/models/eft/common/tables/ITrader";
import { IItemDurabilityCurrentMax, ITraderConfig } from "@spt/models/spt/config/ITraderConfig";
import { ICreateFenceAssortsResult } from "@spt/models/spt/fence/ICreateFenceAssortsResult";
@ -254,6 +254,19 @@ export declare class FenceService {
* @param itemDbDetails Armor items db template
*/
protected randomiseArmorModDurability(armor: Item[], itemDbDetails: ITemplateItem): void;
/**
* Randomise the durability values of items on armor with a passed in slot
* @param softInsertSlots Slots of items to randomise
* @param armorItemAndMods Array of armor + inserts to get items from
*/
protected randomiseArmorSoftInsertDurabilities(softInsertSlots: Slot[], armorItemAndMods: Item[]): void;
/**
* Randomise the durability values of plate items in armor
* Has chance to remove plate
* @param plateSlots Slots of items to randomise
* @param armorItemAndMods Array of armor + inserts to get items from
*/
protected randomiseArmorInsertsDurabilities(plateSlots: Slot[], armorItemAndMods: Item[]): void;
/**
* Get stack size of a singular item (no mods)
* @param itemDbDetails item being added to fence

View File

@ -148,11 +148,12 @@ export declare class RepeatableQuestController {
changeRepeatableQuest(pmcData: IPmcData, changeRequest: IRepeatableQuestChangeRequest, sessionID: string): IItemEventRouterResponse;
protected attemptToGenerateRepeatableQuest(pmcData: IPmcData, questTypePool: IQuestTypePool, repeatableConfig: IRepeatableQuestConfig): IRepeatableQuest;
/**
* Some accounts have access to repeatable quest refreshes for free
* Some accounts have access to free repeatable quest refreshes
* Track the usage of them inside players profile
* @param fullProfile Profile of player
* @param repeatableSubType Can be daily/weekly/scav repeatables
* @param repeatableTypeName Subtype of repeatables: daily / weekly / scav
* @param fullProfile Player profile
* @param repeatableSubType Can be daily / weekly / scav repeatable
* @param repeatableTypeName Subtype of repeatable quest: daily / weekly / scav
* @returns Is the repeatable being replaced for free
*/
protected handleFreeRefreshUses(fullProfile: ISptProfile, repeatableSubType: IPmcDataRepeatableQuest, repeatableTypeName: string): void;
protected useFreeRefreshIfAvailable(fullProfile: ISptProfile, repeatableSubType: IPmcDataRepeatableQuest, repeatableTypeName: string): boolean;
}

View File

@ -170,7 +170,7 @@ export declare class RagfairOfferGenerator {
* @param tpl Item to look for matching condition object
* @returns condition id
*/
protected getDynamicConditionIdForTpl(tpl: string): string;
protected getDynamicConditionIdForTpl(tpl: string): string | undefined;
/**
* Alter an items condition based on its item base type
* @param conditionSettingsId also the parentId of item being altered

View File

@ -22,12 +22,12 @@ export declare class HealthHelper {
*/
resetVitality(sessionID: string): ISptProfile;
/**
* Update player profile with changes from request object
* Update player profile vitality values with changes from client request object
* @param pmcData Player profile
* @param request Heal request
* @param sessionID Session id
* @param addEffects Should effects be added or removed (default - add)
* @param deleteExistingEffects Should all prior effects be removed before apply new ones
* @param addEffects Should effects be added to profile (default - true)
* @param deleteExistingEffects Should all prior effects be removed before apply new ones (default - true)
*/
saveVitality(pmcData: IPmcData, request: ISyncHealthRequestData, sessionID: string, addEffects?: boolean, deleteExistingEffects?: boolean): void;
/**

View File

@ -9,9 +9,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { Inventory } from "@spt/models/eft/common/tables/IBotBase";
import { Item, Upd } from "@spt/models/eft/common/tables/IItem";
import { IAddItemDirectRequest } from "@spt/models/eft/inventory/IAddItemDirectRequest";
import { AddItem } from "@spt/models/eft/inventory/IAddItemRequestData";
import { IAddItemsDirectRequest } from "@spt/models/eft/inventory/IAddItemsDirectRequest";
import { IAddItemTempObject } from "@spt/models/eft/inventory/IAddItemTempObject";
import { IInventoryMergeRequestData } from "@spt/models/eft/inventory/IInventoryMergeRequestData";
import { IInventoryMoveRequestData } from "@spt/models/eft/inventory/IInventoryMoveRequestData";
import { IInventoryRemoveRequestData } from "@spt/models/eft/inventory/IInventoryRemoveRequestData";
@ -106,19 +104,12 @@ export declare class InventoryHelper {
* Find a location to place an item into inventory and place it
* @param stashFS2D 2-dimensional representation of the container slots
* @param sortingTableFS2D 2-dimensional representation of the sorting table slots
* @param itemWithChildren Item to place
* @param playerInventory
* @param itemWithChildren Item to place with children
* @param playerInventory Players inventory
* @param useSortingTable Should sorting table to be used if main stash has no space
* @param output output to send back to client
*/
protected placeItemInInventory(stashFS2D: number[][], sortingTableFS2D: number[][], itemWithChildren: Item[], playerInventory: Inventory, useSortingTable: boolean, output: IItemEventRouterResponse): void;
/**
* Split an items stack size based on its StackMaxSize value
* @param assortItems Items to add to inventory
* @param requestItem Details of purchased item to add to inventory
* @param result Array split stacks are appended to
*/
protected splitStackIntoSmallerChildStacks(assortItems: Item[], requestItem: AddItem, result: IAddItemTempObject[]): void;
/**
* Handle Remove event
* Remove item from player inventory + insured items array
@ -154,6 +145,14 @@ export declare class InventoryHelper {
* @returns [width, height]
*/
getItemSize(itemTpl: string, itemID: string, inventoryItems: Item[]): number[];
/**
* Calculates the size of an item including attachements
* takes into account if item is folded
* @param itemTpl Items template id
* @param itemID Items id
* @param inventoryItemHash Hashmap of inventory items
* @returns An array representing the [width, height] of the item
*/
protected getSizeByInventoryItemHash(itemTpl: string, itemID: string, inventoryItemHash: InventoryHelper.InventoryItemHash): number[];
/**
* Get a blank two-dimentional representation of a container

View File

@ -27,7 +27,8 @@ export interface FenceConfig {
presetPriceMult: number;
armorMaxDurabilityPercentMinMax: IItemDurabilityCurrentMax;
weaponDurabilityPercentMinMax: IItemDurabilityCurrentMax;
chancePlateExistsInArmorPercent: number;
/** Keyed to plate protection level */
chancePlateExistsInArmorPercent: Record<string, number>;
/** Key: item tpl */
itemStackSizeOverrideMinMax: Record<string, MinMax>;
itemTypeLimits: Record<string, number>;

View File

@ -4,7 +4,7 @@ import { PresetHelper } from "@spt/helpers/PresetHelper";
import { IFenceLevel } from "@spt/models/eft/common/IGlobals";
import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { Item, Repairable } from "@spt/models/eft/common/tables/IItem";
import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
import { ITemplateItem, Slot } from "@spt/models/eft/common/tables/ITemplateItem";
import { IBarterScheme, ITraderAssort } from "@spt/models/eft/common/tables/ITrader";
import { IItemDurabilityCurrentMax, ITraderConfig } from "@spt/models/spt/config/ITraderConfig";
import { ICreateFenceAssortsResult } from "@spt/models/spt/fence/ICreateFenceAssortsResult";
@ -254,6 +254,19 @@ export declare class FenceService {
* @param itemDbDetails Armor items db template
*/
protected randomiseArmorModDurability(armor: Item[], itemDbDetails: ITemplateItem): void;
/**
* Randomise the durability values of items on armor with a passed in slot
* @param softInsertSlots Slots of items to randomise
* @param armorItemAndMods Array of armor + inserts to get items from
*/
protected randomiseArmorSoftInsertDurabilities(softInsertSlots: Slot[], armorItemAndMods: Item[]): void;
/**
* Randomise the durability values of plate items in armor
* Has chance to remove plate
* @param plateSlots Slots of items to randomise
* @param armorItemAndMods Array of armor + inserts to get items from
*/
protected randomiseArmorInsertsDurabilities(plateSlots: Slot[], armorItemAndMods: Item[]): void;
/**
* Get stack size of a singular item (no mods)
* @param itemDbDetails item being added to fence

View File

@ -148,11 +148,12 @@ export declare class RepeatableQuestController {
changeRepeatableQuest(pmcData: IPmcData, changeRequest: IRepeatableQuestChangeRequest, sessionID: string): IItemEventRouterResponse;
protected attemptToGenerateRepeatableQuest(pmcData: IPmcData, questTypePool: IQuestTypePool, repeatableConfig: IRepeatableQuestConfig): IRepeatableQuest;
/**
* Some accounts have access to repeatable quest refreshes for free
* Some accounts have access to free repeatable quest refreshes
* Track the usage of them inside players profile
* @param fullProfile Profile of player
* @param repeatableSubType Can be daily/weekly/scav repeatables
* @param repeatableTypeName Subtype of repeatables: daily / weekly / scav
* @param fullProfile Player profile
* @param repeatableSubType Can be daily / weekly / scav repeatable
* @param repeatableTypeName Subtype of repeatable quest: daily / weekly / scav
* @returns Is the repeatable being replaced for free
*/
protected handleFreeRefreshUses(fullProfile: ISptProfile, repeatableSubType: IPmcDataRepeatableQuest, repeatableTypeName: string): void;
protected useFreeRefreshIfAvailable(fullProfile: ISptProfile, repeatableSubType: IPmcDataRepeatableQuest, repeatableTypeName: string): boolean;
}

View File

@ -170,7 +170,7 @@ export declare class RagfairOfferGenerator {
* @param tpl Item to look for matching condition object
* @returns condition id
*/
protected getDynamicConditionIdForTpl(tpl: string): string;
protected getDynamicConditionIdForTpl(tpl: string): string | undefined;
/**
* Alter an items condition based on its item base type
* @param conditionSettingsId also the parentId of item being altered

View File

@ -22,12 +22,12 @@ export declare class HealthHelper {
*/
resetVitality(sessionID: string): ISptProfile;
/**
* Update player profile with changes from request object
* Update player profile vitality values with changes from client request object
* @param pmcData Player profile
* @param request Heal request
* @param sessionID Session id
* @param addEffects Should effects be added or removed (default - add)
* @param deleteExistingEffects Should all prior effects be removed before apply new ones
* @param addEffects Should effects be added to profile (default - true)
* @param deleteExistingEffects Should all prior effects be removed before apply new ones (default - true)
*/
saveVitality(pmcData: IPmcData, request: ISyncHealthRequestData, sessionID: string, addEffects?: boolean, deleteExistingEffects?: boolean): void;
/**

View File

@ -9,9 +9,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { Inventory } from "@spt/models/eft/common/tables/IBotBase";
import { Item, Upd } from "@spt/models/eft/common/tables/IItem";
import { IAddItemDirectRequest } from "@spt/models/eft/inventory/IAddItemDirectRequest";
import { AddItem } from "@spt/models/eft/inventory/IAddItemRequestData";
import { IAddItemsDirectRequest } from "@spt/models/eft/inventory/IAddItemsDirectRequest";
import { IAddItemTempObject } from "@spt/models/eft/inventory/IAddItemTempObject";
import { IInventoryMergeRequestData } from "@spt/models/eft/inventory/IInventoryMergeRequestData";
import { IInventoryMoveRequestData } from "@spt/models/eft/inventory/IInventoryMoveRequestData";
import { IInventoryRemoveRequestData } from "@spt/models/eft/inventory/IInventoryRemoveRequestData";
@ -106,19 +104,12 @@ export declare class InventoryHelper {
* Find a location to place an item into inventory and place it
* @param stashFS2D 2-dimensional representation of the container slots
* @param sortingTableFS2D 2-dimensional representation of the sorting table slots
* @param itemWithChildren Item to place
* @param playerInventory
* @param itemWithChildren Item to place with children
* @param playerInventory Players inventory
* @param useSortingTable Should sorting table to be used if main stash has no space
* @param output output to send back to client
*/
protected placeItemInInventory(stashFS2D: number[][], sortingTableFS2D: number[][], itemWithChildren: Item[], playerInventory: Inventory, useSortingTable: boolean, output: IItemEventRouterResponse): void;
/**
* Split an items stack size based on its StackMaxSize value
* @param assortItems Items to add to inventory
* @param requestItem Details of purchased item to add to inventory
* @param result Array split stacks are appended to
*/
protected splitStackIntoSmallerChildStacks(assortItems: Item[], requestItem: AddItem, result: IAddItemTempObject[]): void;
/**
* Handle Remove event
* Remove item from player inventory + insured items array
@ -154,6 +145,14 @@ export declare class InventoryHelper {
* @returns [width, height]
*/
getItemSize(itemTpl: string, itemID: string, inventoryItems: Item[]): number[];
/**
* Calculates the size of an item including attachements
* takes into account if item is folded
* @param itemTpl Items template id
* @param itemID Items id
* @param inventoryItemHash Hashmap of inventory items
* @returns An array representing the [width, height] of the item
*/
protected getSizeByInventoryItemHash(itemTpl: string, itemID: string, inventoryItemHash: InventoryHelper.InventoryItemHash): number[];
/**
* Get a blank two-dimentional representation of a container

View File

@ -27,7 +27,8 @@ export interface FenceConfig {
presetPriceMult: number;
armorMaxDurabilityPercentMinMax: IItemDurabilityCurrentMax;
weaponDurabilityPercentMinMax: IItemDurabilityCurrentMax;
chancePlateExistsInArmorPercent: number;
/** Keyed to plate protection level */
chancePlateExistsInArmorPercent: Record<string, number>;
/** Key: item tpl */
itemStackSizeOverrideMinMax: Record<string, MinMax>;
itemTypeLimits: Record<string, number>;

View File

@ -4,7 +4,7 @@ import { PresetHelper } from "@spt/helpers/PresetHelper";
import { IFenceLevel } from "@spt/models/eft/common/IGlobals";
import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { Item, Repairable } from "@spt/models/eft/common/tables/IItem";
import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
import { ITemplateItem, Slot } from "@spt/models/eft/common/tables/ITemplateItem";
import { IBarterScheme, ITraderAssort } from "@spt/models/eft/common/tables/ITrader";
import { IItemDurabilityCurrentMax, ITraderConfig } from "@spt/models/spt/config/ITraderConfig";
import { ICreateFenceAssortsResult } from "@spt/models/spt/fence/ICreateFenceAssortsResult";
@ -254,6 +254,19 @@ export declare class FenceService {
* @param itemDbDetails Armor items db template
*/
protected randomiseArmorModDurability(armor: Item[], itemDbDetails: ITemplateItem): void;
/**
* Randomise the durability values of items on armor with a passed in slot
* @param softInsertSlots Slots of items to randomise
* @param armorItemAndMods Array of armor + inserts to get items from
*/
protected randomiseArmorSoftInsertDurabilities(softInsertSlots: Slot[], armorItemAndMods: Item[]): void;
/**
* Randomise the durability values of plate items in armor
* Has chance to remove plate
* @param plateSlots Slots of items to randomise
* @param armorItemAndMods Array of armor + inserts to get items from
*/
protected randomiseArmorInsertsDurabilities(plateSlots: Slot[], armorItemAndMods: Item[]): void;
/**
* Get stack size of a singular item (no mods)
* @param itemDbDetails item being added to fence

View File

@ -148,11 +148,12 @@ export declare class RepeatableQuestController {
changeRepeatableQuest(pmcData: IPmcData, changeRequest: IRepeatableQuestChangeRequest, sessionID: string): IItemEventRouterResponse;
protected attemptToGenerateRepeatableQuest(pmcData: IPmcData, questTypePool: IQuestTypePool, repeatableConfig: IRepeatableQuestConfig): IRepeatableQuest;
/**
* Some accounts have access to repeatable quest refreshes for free
* Some accounts have access to free repeatable quest refreshes
* Track the usage of them inside players profile
* @param fullProfile Profile of player
* @param repeatableSubType Can be daily/weekly/scav repeatables
* @param repeatableTypeName Subtype of repeatables: daily / weekly / scav
* @param fullProfile Player profile
* @param repeatableSubType Can be daily / weekly / scav repeatable
* @param repeatableTypeName Subtype of repeatable quest: daily / weekly / scav
* @returns Is the repeatable being replaced for free
*/
protected handleFreeRefreshUses(fullProfile: ISptProfile, repeatableSubType: IPmcDataRepeatableQuest, repeatableTypeName: string): void;
protected useFreeRefreshIfAvailable(fullProfile: ISptProfile, repeatableSubType: IPmcDataRepeatableQuest, repeatableTypeName: string): boolean;
}

View File

@ -170,7 +170,7 @@ export declare class RagfairOfferGenerator {
* @param tpl Item to look for matching condition object
* @returns condition id
*/
protected getDynamicConditionIdForTpl(tpl: string): string;
protected getDynamicConditionIdForTpl(tpl: string): string | undefined;
/**
* Alter an items condition based on its item base type
* @param conditionSettingsId also the parentId of item being altered

View File

@ -22,12 +22,12 @@ export declare class HealthHelper {
*/
resetVitality(sessionID: string): ISptProfile;
/**
* Update player profile with changes from request object
* Update player profile vitality values with changes from client request object
* @param pmcData Player profile
* @param request Heal request
* @param sessionID Session id
* @param addEffects Should effects be added or removed (default - add)
* @param deleteExistingEffects Should all prior effects be removed before apply new ones
* @param addEffects Should effects be added to profile (default - true)
* @param deleteExistingEffects Should all prior effects be removed before apply new ones (default - true)
*/
saveVitality(pmcData: IPmcData, request: ISyncHealthRequestData, sessionID: string, addEffects?: boolean, deleteExistingEffects?: boolean): void;
/**

View File

@ -9,9 +9,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { Inventory } from "@spt/models/eft/common/tables/IBotBase";
import { Item, Upd } from "@spt/models/eft/common/tables/IItem";
import { IAddItemDirectRequest } from "@spt/models/eft/inventory/IAddItemDirectRequest";
import { AddItem } from "@spt/models/eft/inventory/IAddItemRequestData";
import { IAddItemsDirectRequest } from "@spt/models/eft/inventory/IAddItemsDirectRequest";
import { IAddItemTempObject } from "@spt/models/eft/inventory/IAddItemTempObject";
import { IInventoryMergeRequestData } from "@spt/models/eft/inventory/IInventoryMergeRequestData";
import { IInventoryMoveRequestData } from "@spt/models/eft/inventory/IInventoryMoveRequestData";
import { IInventoryRemoveRequestData } from "@spt/models/eft/inventory/IInventoryRemoveRequestData";
@ -106,19 +104,12 @@ export declare class InventoryHelper {
* Find a location to place an item into inventory and place it
* @param stashFS2D 2-dimensional representation of the container slots
* @param sortingTableFS2D 2-dimensional representation of the sorting table slots
* @param itemWithChildren Item to place
* @param playerInventory
* @param itemWithChildren Item to place with children
* @param playerInventory Players inventory
* @param useSortingTable Should sorting table to be used if main stash has no space
* @param output output to send back to client
*/
protected placeItemInInventory(stashFS2D: number[][], sortingTableFS2D: number[][], itemWithChildren: Item[], playerInventory: Inventory, useSortingTable: boolean, output: IItemEventRouterResponse): void;
/**
* Split an items stack size based on its StackMaxSize value
* @param assortItems Items to add to inventory
* @param requestItem Details of purchased item to add to inventory
* @param result Array split stacks are appended to
*/
protected splitStackIntoSmallerChildStacks(assortItems: Item[], requestItem: AddItem, result: IAddItemTempObject[]): void;
/**
* Handle Remove event
* Remove item from player inventory + insured items array
@ -154,6 +145,14 @@ export declare class InventoryHelper {
* @returns [width, height]
*/
getItemSize(itemTpl: string, itemID: string, inventoryItems: Item[]): number[];
/**
* Calculates the size of an item including attachements
* takes into account if item is folded
* @param itemTpl Items template id
* @param itemID Items id
* @param inventoryItemHash Hashmap of inventory items
* @returns An array representing the [width, height] of the item
*/
protected getSizeByInventoryItemHash(itemTpl: string, itemID: string, inventoryItemHash: InventoryHelper.InventoryItemHash): number[];
/**
* Get a blank two-dimentional representation of a container

View File

@ -27,7 +27,8 @@ export interface FenceConfig {
presetPriceMult: number;
armorMaxDurabilityPercentMinMax: IItemDurabilityCurrentMax;
weaponDurabilityPercentMinMax: IItemDurabilityCurrentMax;
chancePlateExistsInArmorPercent: number;
/** Keyed to plate protection level */
chancePlateExistsInArmorPercent: Record<string, number>;
/** Key: item tpl */
itemStackSizeOverrideMinMax: Record<string, MinMax>;
itemTypeLimits: Record<string, number>;

View File

@ -4,7 +4,7 @@ import { PresetHelper } from "@spt/helpers/PresetHelper";
import { IFenceLevel } from "@spt/models/eft/common/IGlobals";
import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { Item, Repairable } from "@spt/models/eft/common/tables/IItem";
import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
import { ITemplateItem, Slot } from "@spt/models/eft/common/tables/ITemplateItem";
import { IBarterScheme, ITraderAssort } from "@spt/models/eft/common/tables/ITrader";
import { IItemDurabilityCurrentMax, ITraderConfig } from "@spt/models/spt/config/ITraderConfig";
import { ICreateFenceAssortsResult } from "@spt/models/spt/fence/ICreateFenceAssortsResult";
@ -254,6 +254,19 @@ export declare class FenceService {
* @param itemDbDetails Armor items db template
*/
protected randomiseArmorModDurability(armor: Item[], itemDbDetails: ITemplateItem): void;
/**
* Randomise the durability values of items on armor with a passed in slot
* @param softInsertSlots Slots of items to randomise
* @param armorItemAndMods Array of armor + inserts to get items from
*/
protected randomiseArmorSoftInsertDurabilities(softInsertSlots: Slot[], armorItemAndMods: Item[]): void;
/**
* Randomise the durability values of plate items in armor
* Has chance to remove plate
* @param plateSlots Slots of items to randomise
* @param armorItemAndMods Array of armor + inserts to get items from
*/
protected randomiseArmorInsertsDurabilities(plateSlots: Slot[], armorItemAndMods: Item[]): void;
/**
* Get stack size of a singular item (no mods)
* @param itemDbDetails item being added to fence

View File

@ -148,11 +148,12 @@ export declare class RepeatableQuestController {
changeRepeatableQuest(pmcData: IPmcData, changeRequest: IRepeatableQuestChangeRequest, sessionID: string): IItemEventRouterResponse;
protected attemptToGenerateRepeatableQuest(pmcData: IPmcData, questTypePool: IQuestTypePool, repeatableConfig: IRepeatableQuestConfig): IRepeatableQuest;
/**
* Some accounts have access to repeatable quest refreshes for free
* Some accounts have access to free repeatable quest refreshes
* Track the usage of them inside players profile
* @param fullProfile Profile of player
* @param repeatableSubType Can be daily/weekly/scav repeatables
* @param repeatableTypeName Subtype of repeatables: daily / weekly / scav
* @param fullProfile Player profile
* @param repeatableSubType Can be daily / weekly / scav repeatable
* @param repeatableTypeName Subtype of repeatable quest: daily / weekly / scav
* @returns Is the repeatable being replaced for free
*/
protected handleFreeRefreshUses(fullProfile: ISptProfile, repeatableSubType: IPmcDataRepeatableQuest, repeatableTypeName: string): void;
protected useFreeRefreshIfAvailable(fullProfile: ISptProfile, repeatableSubType: IPmcDataRepeatableQuest, repeatableTypeName: string): boolean;
}

View File

@ -170,7 +170,7 @@ export declare class RagfairOfferGenerator {
* @param tpl Item to look for matching condition object
* @returns condition id
*/
protected getDynamicConditionIdForTpl(tpl: string): string;
protected getDynamicConditionIdForTpl(tpl: string): string | undefined;
/**
* Alter an items condition based on its item base type
* @param conditionSettingsId also the parentId of item being altered

View File

@ -22,12 +22,12 @@ export declare class HealthHelper {
*/
resetVitality(sessionID: string): ISptProfile;
/**
* Update player profile with changes from request object
* Update player profile vitality values with changes from client request object
* @param pmcData Player profile
* @param request Heal request
* @param sessionID Session id
* @param addEffects Should effects be added or removed (default - add)
* @param deleteExistingEffects Should all prior effects be removed before apply new ones
* @param addEffects Should effects be added to profile (default - true)
* @param deleteExistingEffects Should all prior effects be removed before apply new ones (default - true)
*/
saveVitality(pmcData: IPmcData, request: ISyncHealthRequestData, sessionID: string, addEffects?: boolean, deleteExistingEffects?: boolean): void;
/**

View File

@ -9,9 +9,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { Inventory } from "@spt/models/eft/common/tables/IBotBase";
import { Item, Upd } from "@spt/models/eft/common/tables/IItem";
import { IAddItemDirectRequest } from "@spt/models/eft/inventory/IAddItemDirectRequest";
import { AddItem } from "@spt/models/eft/inventory/IAddItemRequestData";
import { IAddItemsDirectRequest } from "@spt/models/eft/inventory/IAddItemsDirectRequest";
import { IAddItemTempObject } from "@spt/models/eft/inventory/IAddItemTempObject";
import { IInventoryMergeRequestData } from "@spt/models/eft/inventory/IInventoryMergeRequestData";
import { IInventoryMoveRequestData } from "@spt/models/eft/inventory/IInventoryMoveRequestData";
import { IInventoryRemoveRequestData } from "@spt/models/eft/inventory/IInventoryRemoveRequestData";
@ -106,19 +104,12 @@ export declare class InventoryHelper {
* Find a location to place an item into inventory and place it
* @param stashFS2D 2-dimensional representation of the container slots
* @param sortingTableFS2D 2-dimensional representation of the sorting table slots
* @param itemWithChildren Item to place
* @param playerInventory
* @param itemWithChildren Item to place with children
* @param playerInventory Players inventory
* @param useSortingTable Should sorting table to be used if main stash has no space
* @param output output to send back to client
*/
protected placeItemInInventory(stashFS2D: number[][], sortingTableFS2D: number[][], itemWithChildren: Item[], playerInventory: Inventory, useSortingTable: boolean, output: IItemEventRouterResponse): void;
/**
* Split an items stack size based on its StackMaxSize value
* @param assortItems Items to add to inventory
* @param requestItem Details of purchased item to add to inventory
* @param result Array split stacks are appended to
*/
protected splitStackIntoSmallerChildStacks(assortItems: Item[], requestItem: AddItem, result: IAddItemTempObject[]): void;
/**
* Handle Remove event
* Remove item from player inventory + insured items array
@ -154,6 +145,14 @@ export declare class InventoryHelper {
* @returns [width, height]
*/
getItemSize(itemTpl: string, itemID: string, inventoryItems: Item[]): number[];
/**
* Calculates the size of an item including attachements
* takes into account if item is folded
* @param itemTpl Items template id
* @param itemID Items id
* @param inventoryItemHash Hashmap of inventory items
* @returns An array representing the [width, height] of the item
*/
protected getSizeByInventoryItemHash(itemTpl: string, itemID: string, inventoryItemHash: InventoryHelper.InventoryItemHash): number[];
/**
* Get a blank two-dimentional representation of a container

View File

@ -27,7 +27,8 @@ export interface FenceConfig {
presetPriceMult: number;
armorMaxDurabilityPercentMinMax: IItemDurabilityCurrentMax;
weaponDurabilityPercentMinMax: IItemDurabilityCurrentMax;
chancePlateExistsInArmorPercent: number;
/** Keyed to plate protection level */
chancePlateExistsInArmorPercent: Record<string, number>;
/** Key: item tpl */
itemStackSizeOverrideMinMax: Record<string, MinMax>;
itemTypeLimits: Record<string, number>;

View File

@ -4,7 +4,7 @@ import { PresetHelper } from "@spt/helpers/PresetHelper";
import { IFenceLevel } from "@spt/models/eft/common/IGlobals";
import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { Item, Repairable } from "@spt/models/eft/common/tables/IItem";
import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
import { ITemplateItem, Slot } from "@spt/models/eft/common/tables/ITemplateItem";
import { IBarterScheme, ITraderAssort } from "@spt/models/eft/common/tables/ITrader";
import { IItemDurabilityCurrentMax, ITraderConfig } from "@spt/models/spt/config/ITraderConfig";
import { ICreateFenceAssortsResult } from "@spt/models/spt/fence/ICreateFenceAssortsResult";
@ -254,6 +254,19 @@ export declare class FenceService {
* @param itemDbDetails Armor items db template
*/
protected randomiseArmorModDurability(armor: Item[], itemDbDetails: ITemplateItem): void;
/**
* Randomise the durability values of items on armor with a passed in slot
* @param softInsertSlots Slots of items to randomise
* @param armorItemAndMods Array of armor + inserts to get items from
*/
protected randomiseArmorSoftInsertDurabilities(softInsertSlots: Slot[], armorItemAndMods: Item[]): void;
/**
* Randomise the durability values of plate items in armor
* Has chance to remove plate
* @param plateSlots Slots of items to randomise
* @param armorItemAndMods Array of armor + inserts to get items from
*/
protected randomiseArmorInsertsDurabilities(plateSlots: Slot[], armorItemAndMods: Item[]): void;
/**
* Get stack size of a singular item (no mods)
* @param itemDbDetails item being added to fence

View File

@ -148,11 +148,12 @@ export declare class RepeatableQuestController {
changeRepeatableQuest(pmcData: IPmcData, changeRequest: IRepeatableQuestChangeRequest, sessionID: string): IItemEventRouterResponse;
protected attemptToGenerateRepeatableQuest(pmcData: IPmcData, questTypePool: IQuestTypePool, repeatableConfig: IRepeatableQuestConfig): IRepeatableQuest;
/**
* Some accounts have access to repeatable quest refreshes for free
* Some accounts have access to free repeatable quest refreshes
* Track the usage of them inside players profile
* @param fullProfile Profile of player
* @param repeatableSubType Can be daily/weekly/scav repeatables
* @param repeatableTypeName Subtype of repeatables: daily / weekly / scav
* @param fullProfile Player profile
* @param repeatableSubType Can be daily / weekly / scav repeatable
* @param repeatableTypeName Subtype of repeatable quest: daily / weekly / scav
* @returns Is the repeatable being replaced for free
*/
protected handleFreeRefreshUses(fullProfile: ISptProfile, repeatableSubType: IPmcDataRepeatableQuest, repeatableTypeName: string): void;
protected useFreeRefreshIfAvailable(fullProfile: ISptProfile, repeatableSubType: IPmcDataRepeatableQuest, repeatableTypeName: string): boolean;
}

View File

@ -170,7 +170,7 @@ export declare class RagfairOfferGenerator {
* @param tpl Item to look for matching condition object
* @returns condition id
*/
protected getDynamicConditionIdForTpl(tpl: string): string;
protected getDynamicConditionIdForTpl(tpl: string): string | undefined;
/**
* Alter an items condition based on its item base type
* @param conditionSettingsId also the parentId of item being altered

View File

@ -22,12 +22,12 @@ export declare class HealthHelper {
*/
resetVitality(sessionID: string): ISptProfile;
/**
* Update player profile with changes from request object
* Update player profile vitality values with changes from client request object
* @param pmcData Player profile
* @param request Heal request
* @param sessionID Session id
* @param addEffects Should effects be added or removed (default - add)
* @param deleteExistingEffects Should all prior effects be removed before apply new ones
* @param addEffects Should effects be added to profile (default - true)
* @param deleteExistingEffects Should all prior effects be removed before apply new ones (default - true)
*/
saveVitality(pmcData: IPmcData, request: ISyncHealthRequestData, sessionID: string, addEffects?: boolean, deleteExistingEffects?: boolean): void;
/**

View File

@ -9,9 +9,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { Inventory } from "@spt/models/eft/common/tables/IBotBase";
import { Item, Upd } from "@spt/models/eft/common/tables/IItem";
import { IAddItemDirectRequest } from "@spt/models/eft/inventory/IAddItemDirectRequest";
import { AddItem } from "@spt/models/eft/inventory/IAddItemRequestData";
import { IAddItemsDirectRequest } from "@spt/models/eft/inventory/IAddItemsDirectRequest";
import { IAddItemTempObject } from "@spt/models/eft/inventory/IAddItemTempObject";
import { IInventoryMergeRequestData } from "@spt/models/eft/inventory/IInventoryMergeRequestData";
import { IInventoryMoveRequestData } from "@spt/models/eft/inventory/IInventoryMoveRequestData";
import { IInventoryRemoveRequestData } from "@spt/models/eft/inventory/IInventoryRemoveRequestData";
@ -106,19 +104,12 @@ export declare class InventoryHelper {
* Find a location to place an item into inventory and place it
* @param stashFS2D 2-dimensional representation of the container slots
* @param sortingTableFS2D 2-dimensional representation of the sorting table slots
* @param itemWithChildren Item to place
* @param playerInventory
* @param itemWithChildren Item to place with children
* @param playerInventory Players inventory
* @param useSortingTable Should sorting table to be used if main stash has no space
* @param output output to send back to client
*/
protected placeItemInInventory(stashFS2D: number[][], sortingTableFS2D: number[][], itemWithChildren: Item[], playerInventory: Inventory, useSortingTable: boolean, output: IItemEventRouterResponse): void;
/**
* Split an items stack size based on its StackMaxSize value
* @param assortItems Items to add to inventory
* @param requestItem Details of purchased item to add to inventory
* @param result Array split stacks are appended to
*/
protected splitStackIntoSmallerChildStacks(assortItems: Item[], requestItem: AddItem, result: IAddItemTempObject[]): void;
/**
* Handle Remove event
* Remove item from player inventory + insured items array
@ -154,6 +145,14 @@ export declare class InventoryHelper {
* @returns [width, height]
*/
getItemSize(itemTpl: string, itemID: string, inventoryItems: Item[]): number[];
/**
* Calculates the size of an item including attachements
* takes into account if item is folded
* @param itemTpl Items template id
* @param itemID Items id
* @param inventoryItemHash Hashmap of inventory items
* @returns An array representing the [width, height] of the item
*/
protected getSizeByInventoryItemHash(itemTpl: string, itemID: string, inventoryItemHash: InventoryHelper.InventoryItemHash): number[];
/**
* Get a blank two-dimentional representation of a container

View File

@ -27,7 +27,8 @@ export interface FenceConfig {
presetPriceMult: number;
armorMaxDurabilityPercentMinMax: IItemDurabilityCurrentMax;
weaponDurabilityPercentMinMax: IItemDurabilityCurrentMax;
chancePlateExistsInArmorPercent: number;
/** Keyed to plate protection level */
chancePlateExistsInArmorPercent: Record<string, number>;
/** Key: item tpl */
itemStackSizeOverrideMinMax: Record<string, MinMax>;
itemTypeLimits: Record<string, number>;

View File

@ -4,7 +4,7 @@ import { PresetHelper } from "@spt/helpers/PresetHelper";
import { IFenceLevel } from "@spt/models/eft/common/IGlobals";
import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { Item, Repairable } from "@spt/models/eft/common/tables/IItem";
import { ITemplateItem } from "@spt/models/eft/common/tables/ITemplateItem";
import { ITemplateItem, Slot } from "@spt/models/eft/common/tables/ITemplateItem";
import { IBarterScheme, ITraderAssort } from "@spt/models/eft/common/tables/ITrader";
import { IItemDurabilityCurrentMax, ITraderConfig } from "@spt/models/spt/config/ITraderConfig";
import { ICreateFenceAssortsResult } from "@spt/models/spt/fence/ICreateFenceAssortsResult";
@ -254,6 +254,19 @@ export declare class FenceService {
* @param itemDbDetails Armor items db template
*/
protected randomiseArmorModDurability(armor: Item[], itemDbDetails: ITemplateItem): void;
/**
* Randomise the durability values of items on armor with a passed in slot
* @param softInsertSlots Slots of items to randomise
* @param armorItemAndMods Array of armor + inserts to get items from
*/
protected randomiseArmorSoftInsertDurabilities(softInsertSlots: Slot[], armorItemAndMods: Item[]): void;
/**
* Randomise the durability values of plate items in armor
* Has chance to remove plate
* @param plateSlots Slots of items to randomise
* @param armorItemAndMods Array of armor + inserts to get items from
*/
protected randomiseArmorInsertsDurabilities(plateSlots: Slot[], armorItemAndMods: Item[]): void;
/**
* Get stack size of a singular item (no mods)
* @param itemDbDetails item being added to fence

View File

@ -148,11 +148,12 @@ export declare class RepeatableQuestController {
changeRepeatableQuest(pmcData: IPmcData, changeRequest: IRepeatableQuestChangeRequest, sessionID: string): IItemEventRouterResponse;
protected attemptToGenerateRepeatableQuest(pmcData: IPmcData, questTypePool: IQuestTypePool, repeatableConfig: IRepeatableQuestConfig): IRepeatableQuest;
/**
* Some accounts have access to repeatable quest refreshes for free
* Some accounts have access to free repeatable quest refreshes
* Track the usage of them inside players profile
* @param fullProfile Profile of player
* @param repeatableSubType Can be daily/weekly/scav repeatables
* @param repeatableTypeName Subtype of repeatables: daily / weekly / scav
* @param fullProfile Player profile
* @param repeatableSubType Can be daily / weekly / scav repeatable
* @param repeatableTypeName Subtype of repeatable quest: daily / weekly / scav
* @returns Is the repeatable being replaced for free
*/
protected handleFreeRefreshUses(fullProfile: ISptProfile, repeatableSubType: IPmcDataRepeatableQuest, repeatableTypeName: string): void;
protected useFreeRefreshIfAvailable(fullProfile: ISptProfile, repeatableSubType: IPmcDataRepeatableQuest, repeatableTypeName: string): boolean;
}

View File

@ -170,7 +170,7 @@ export declare class RagfairOfferGenerator {
* @param tpl Item to look for matching condition object
* @returns condition id
*/
protected getDynamicConditionIdForTpl(tpl: string): string;
protected getDynamicConditionIdForTpl(tpl: string): string | undefined;
/**
* Alter an items condition based on its item base type
* @param conditionSettingsId also the parentId of item being altered

View File

@ -22,12 +22,12 @@ export declare class HealthHelper {
*/
resetVitality(sessionID: string): ISptProfile;
/**
* Update player profile with changes from request object
* Update player profile vitality values with changes from client request object
* @param pmcData Player profile
* @param request Heal request
* @param sessionID Session id
* @param addEffects Should effects be added or removed (default - add)
* @param deleteExistingEffects Should all prior effects be removed before apply new ones
* @param addEffects Should effects be added to profile (default - true)
* @param deleteExistingEffects Should all prior effects be removed before apply new ones (default - true)
*/
saveVitality(pmcData: IPmcData, request: ISyncHealthRequestData, sessionID: string, addEffects?: boolean, deleteExistingEffects?: boolean): void;
/**

View File

@ -9,9 +9,7 @@ import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { Inventory } from "@spt/models/eft/common/tables/IBotBase";
import { Item, Upd } from "@spt/models/eft/common/tables/IItem";
import { IAddItemDirectRequest } from "@spt/models/eft/inventory/IAddItemDirectRequest";
import { AddItem } from "@spt/models/eft/inventory/IAddItemRequestData";
import { IAddItemsDirectRequest } from "@spt/models/eft/inventory/IAddItemsDirectRequest";
import { IAddItemTempObject } from "@spt/models/eft/inventory/IAddItemTempObject";
import { IInventoryMergeRequestData } from "@spt/models/eft/inventory/IInventoryMergeRequestData";
import { IInventoryMoveRequestData } from "@spt/models/eft/inventory/IInventoryMoveRequestData";
import { IInventoryRemoveRequestData } from "@spt/models/eft/inventory/IInventoryRemoveRequestData";
@ -106,19 +104,12 @@ export declare class InventoryHelper {
* Find a location to place an item into inventory and place it
* @param stashFS2D 2-dimensional representation of the container slots
* @param sortingTableFS2D 2-dimensional representation of the sorting table slots
* @param itemWithChildren Item to place
* @param playerInventory
* @param itemWithChildren Item to place with children
* @param playerInventory Players inventory
* @param useSortingTable Should sorting table to be used if main stash has no space
* @param output output to send back to client
*/
protected placeItemInInventory(stashFS2D: number[][], sortingTableFS2D: number[][], itemWithChildren: Item[], playerInventory: Inventory, useSortingTable: boolean, output: IItemEventRouterResponse): void;
/**
* Split an items stack size based on its StackMaxSize value
* @param assortItems Items to add to inventory
* @param requestItem Details of purchased item to add to inventory
* @param result Array split stacks are appended to
*/
protected splitStackIntoSmallerChildStacks(assortItems: Item[], requestItem: AddItem, result: IAddItemTempObject[]): void;
/**
* Handle Remove event
* Remove item from player inventory + insured items array
@ -154,6 +145,14 @@ export declare class InventoryHelper {
* @returns [width, height]
*/
getItemSize(itemTpl: string, itemID: string, inventoryItems: Item[]): number[];
/**
* Calculates the size of an item including attachements
* takes into account if item is folded
* @param itemTpl Items template id
* @param itemID Items id
* @param inventoryItemHash Hashmap of inventory items
* @returns An array representing the [width, height] of the item
*/
protected getSizeByInventoryItemHash(itemTpl: string, itemID: string, inventoryItemHash: InventoryHelper.InventoryItemHash): number[];
/**
* Get a blank two-dimentional representation of a container

Some files were not shown because too many files have changed in this diff Show More