diff --git a/project/src/helpers/HideoutHelper.ts b/project/src/helpers/HideoutHelper.ts index 0576da77..4c8edb67 100644 --- a/project/src/helpers/HideoutHelper.ts +++ b/project/src/helpers/HideoutHelper.ts @@ -425,13 +425,19 @@ export class HideoutHelper { BonusType.FUEL_CONSUMPTION, ); - // 0 to 1 - const fuelConsumptionBonusMultipler = (profileFuelConsomptionBonusSum + 100) / 100; + // An increase in "bonus" consumption is actually an increase in consumption, so invert this for later use + const fuelConsumptionBonusRate = -(profileFuelConsomptionBonusSum / 100); - // 0 to 1 - const hideoutManagementConsumptionBonusMultipler = this.getHideoutManagementConsumptionBonus(pmcData); + // An increase in hideout management bonus is a decrease in consumption + const hideoutManagementConsumptionBonusRate = this.getHideoutManagementConsumptionBonus(pmcData); + + let combinedBonus = 1.0 - (fuelConsumptionBonusRate + hideoutManagementConsumptionBonusRate); + + // Sanity check, never let fuel consumption go negative, otherwise it returns fuel to the player + if (combinedBonus < 0) { + combinedBonus = 0; + } - const combinedBonus = 1.0 - (fuelConsumptionBonusMultipler + hideoutManagementConsumptionBonusMultipler); fuelUsedSinceLastTick *= combinedBonus; let hasFuelRemaining = false; diff --git a/project/src/services/InsuranceService.ts b/project/src/services/InsuranceService.ts index 6d1202bd..0c36b646 100644 --- a/project/src/services/InsuranceService.ts +++ b/project/src/services/InsuranceService.ts @@ -1,6 +1,7 @@ import { DialogueHelper } from "@spt/helpers/DialogueHelper"; import { HandbookHelper } from "@spt/helpers/HandbookHelper"; import { ItemHelper } from "@spt/helpers/ItemHelper"; +import { ProfileHelper } from "@spt/helpers/ProfileHelper"; import { SecureContainerHelper } from "@spt/helpers/SecureContainerHelper"; import { TraderHelper } from "@spt/helpers/TraderHelper"; import { IPmcData } from "@spt/models/eft/common/IPmcData"; @@ -27,7 +28,6 @@ import { RandomUtil } from "@spt/utils/RandomUtil"; import { TimeUtil } from "@spt/utils/TimeUtil"; import { ICloner } from "@spt/utils/cloners/ICloner"; import { inject, injectable } from "tsyringe"; -import { ProfileHelper } from "@spt/helpers/ProfileHelper"; @injectable() export class InsuranceService { @@ -181,8 +181,12 @@ export class InsuranceService { return this.timeUtil.getTimestamp() + this.insuranceConfig.returnTimeOverrideSeconds; } - const insuranceReturnTimeBonusSum = this.profileHelper.getBonusValueFromProfile(pmcData,BonusType.INSURANCE_RETURN_TIME); - const insuranceReturnTimeBonusPercent = 1.0 - ((insuranceReturnTimeBonusSum + 100) / 100); + const insuranceReturnTimeBonusSum = this.profileHelper.getBonusValueFromProfile( + pmcData, + BonusType.INSURANCE_RETURN_TIME, + ); + // A negative bonus implies a faster return, since we subtract later, invert the value here + const insuranceReturnTimeBonusPercent = -(insuranceReturnTimeBonusSum / 100); const traderMinReturnAsSeconds = trader.insurance.min_return_hour * TimeUtil.ONE_HOUR_AS_SECONDS; const traderMaxReturnAsSeconds = trader.insurance.max_return_hour * TimeUtil.ONE_HOUR_AS_SECONDS; @@ -206,8 +210,9 @@ export class InsuranceService { randomisedReturnTimeSeconds *= editionModifier.multiplier; } - // Current time + randomised time calculated above - return this.timeUtil.getTimestamp() + randomisedReturnTimeSeconds * insuranceReturnTimeBonusPercent; + // Calculate the final return time based on our bonus percent + const finalReturnTimeSeconds = randomisedReturnTimeSeconds * (1.0 - insuranceReturnTimeBonusPercent); + return this.timeUtil.getTimestamp() + finalReturnTimeSeconds; } /** diff --git a/project/src/services/RagfairTaxService.ts b/project/src/services/RagfairTaxService.ts index 896ae2e5..c2322c77 100644 --- a/project/src/services/RagfairTaxService.ts +++ b/project/src/services/RagfairTaxService.ts @@ -86,7 +86,8 @@ export class RagfairTaxService { pmcData, BonusType.RAGFAIR_COMMISSION, ); - const taxDiscountPercent = (hideoutFleaTaxDiscountBonusSum + 100) / 100.0; + // A negative bonus implies a lower discount, since we subtract later, invert the value here + const taxDiscountPercent = -(hideoutFleaTaxDiscountBonusSum / 100.0); const tax = itemWorth * itemTaxMult * itemPriceMult + requirementsPrice * requirementTaxMult * requirementPriceMult;