Skip to main content
The Deno 2 Release Candidate is here
Learn more
class RepairService
import { RepairService } from "https://deno.land/x/sptaki@1.2.0/services/RepairService.d.ts";

Constructors

new
RepairService(
logger: ILogger,
databaseServer: DatabaseServer,
profileHelper: ProfileHelper,
randomUtil: RandomUtil,
itemHelper: ItemHelper,
traderHelper: TraderHelper,
weightedRandomHelper: WeightedRandomHelper,
paymentService: PaymentService,
repairHelper: RepairHelper,
localisationService: LocalisationService,
configServer: ConfigServer,
)

Properties

protected
configServer: ConfigServer
protected
databaseServer: DatabaseServer
protected
itemHelper: ItemHelper
protected
localisationService: LocalisationService
protected
logger: ILogger
protected
paymentService: PaymentService
protected
profileHelper: ProfileHelper
protected
randomUtil: RandomUtil
protected
repairConfig: IRepairConfig
protected
repairHelper: RepairHelper
protected
traderHelper: TraderHelper
protected
weightedRandomHelper: WeightedRandomHelper

Methods

protected
addMaxResourceToKitIfMissing(repairKitDetails: ITemplateItem, repairKitInInventory: Item): void

Update repair kits Resource object if it doesn't exist

protected
getBonusMultiplierValue(skillBonus: BonusType, pmcData: IPmcData): number

Get the bonus multiplier for a skill from a player profile

protected
getDurabilityMultiplier(receiveDurabilityMaxPercent: number, receiveDurabilityPercent: number): number

Ensure multiplier is between 1 and 0.01

protected
getIntellectGainedFromRepair(repairDetails: RepairDetails): number
protected
getItemSkillType(itemTemplate: ITemplateItem): SkillTypes | undefined

Based on item, what underlying skill does this item use for buff settings

protected
getKitDivisor(
itemToRepairDetails: ITemplateItem,
isArmor: boolean,
pmcData: IPmcData,
): number

Calculate value repairkit points need to be divided by to get the durability points to be added to an item

protected
getWeaponRepairSkillPoints(repairDetails: RepairDetails): number

Return an appromixation of the amount of skill points live would return for the given repairDetails

protected
shouldBuffItem(repairDetails: RepairDetails, pmcData: IPmcData): boolean

Check if item should be buffed by checking the item type and relevant player skill level

protected
shouldRepairKitApplyDurabilityLoss(pmcData: IPmcData, applyRandomizeDurabilityLoss: boolean): boolean

Should a repair kit apply total durability loss on repair

addBuff(itemConfig: BonusSettings, item: Item): void

Add random buff to item

addBuffToItem(repairDetails: RepairDetails, pmcData: IPmcData): void

Chance to apply buff to an item (Armor/weapon) if repaired by armor kit

addRepairSkillPoints(
sessionId: string,
repairDetails: RepairDetails,
pmcData: IPmcData,
): void

Add skill points to profile after repairing an item

payForRepair(
sessionID: string,
pmcData: IPmcData,
repairedItemId: string,
repairCost: number,
traderId: string,
): void
repairItemByKit(
sessionId: string,
pmcData: IPmcData,
repairKits: RepairKitsInfo[],
itemToRepairId: string,
): RepairDetails
repairItemByTrader(
sessionID: string,
pmcData: IPmcData,
repairItemDetails: RepairItem,
traderId: string,
): RepairDetails

Use trader to repair an items durability