From 2ae704839c37ff2387b3560363c553cea511c6a8 Mon Sep 17 00:00:00 2001 From: Baptiste Boulongne Date: Mon, 15 Jul 2024 21:51:43 +0200 Subject: [PATCH] added returnChancePercent tweak --- config/config.json5 | 4 +++- icon.png | Bin 0 -> 5146 bytes src/mod.ts | 37 +++++++++++++++++++++++++------------ 3 files changed, 28 insertions(+), 13 deletions(-) create mode 100644 icon.png diff --git a/config/config.json5 b/config/config.json5 index 1db30b5..48c7031 100644 --- a/config/config.json5 +++ b/config/config.json5 @@ -3,9 +3,11 @@ "PraporMinReturn": 2, "PraporMaxReturn": 4, "PraporMaxStorageTime": 72, + "PraporReturnChancePercent": 50, //Therapist "TherapistMinReturn": 1, "TherapistMaxReturn": 2, - "TherapistMaxStorageTime": 72 + "TherapistMaxStorageTime": 72, + "TherapistReturnChancePercent": 75 } \ No newline at end of file diff --git a/icon.png b/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..6d831c2d0419fda90a245b50b8fbb1e93ef222b2 GIT binary patch literal 5146 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 EA6y~Z*#H0l literal 0 HcmV?d00001 diff --git a/src/mod.ts b/src/mod.ts index 170827d..49b5591 100644 --- a/src/mod.ts +++ b/src/mod.ts @@ -10,14 +10,20 @@ import { IPostDBLoadMod } from "@spt/models/external/IPostDBLoadMod"; import { VFS } from "@spt/utils/VFS"; import * as path from "node:path"; +import { ConfigServer } from "@spt/servers/ConfigServer"; +import { ConfigTypes } from "@spt/models/enums/ConfigTypes"; +import { IInsuranceConfig } from "@spt/models/spt/config/IInsuranceConfig"; type ModConfig = { - PraporMinReturn: number, - PraporMaxReturn: number, - PraporMaxStorageTime: number, - TherapistMinReturn: number, - TherapistMaxReturn: number, - TherapistMaxStorageTime: number + PraporMinReturn: number; + PraporMaxReturn: number; + PraporMaxStorageTime: number; + PraporReturnChancePercent: number; + + TherapistMinReturn: number; + TherapistMaxReturn: number; + TherapistMaxStorageTime: number; + TherapistReturnChancePercent: number; } class InsuranceTweaks implements IPreSptLoadMod, IPostDBLoadMod @@ -25,6 +31,7 @@ class InsuranceTweaks implements IPreSptLoadMod, IPostDBLoadMod public logger: ILogger; public tables: IDatabaseTables; public modConfig: ModConfig; + public configServer: ConfigServer; public preSptLoad(container: DependencyContainer): void { @@ -36,21 +43,27 @@ class InsuranceTweaks implements IPreSptLoadMod, IPostDBLoadMod public postDBLoad(container: DependencyContainer): void { this.tables = container.resolve("DatabaseServer").getTables(); + this.configServer = container.resolve("ConfigServer"); this.traderTweaks(this.modConfig); } private traderTweaks(modConfig: ModConfig): void { const traders = this.tables.traders; + const PRAPOR = "54cb50c76803fa8b248b4571"; + const THERAPIST = "54cb57776803fa99248b456e"; + const insuranceConfig = this.configServer.getConfig(ConfigTypes.INSURANCE); // Prapor - traders["54cb50c76803fa8b248b4571"].base.insurance.min_return_hour = modConfig.PraporMinReturn - traders["54cb50c76803fa8b248b4571"].base.insurance.max_return_hour = modConfig.PraporMaxReturn - traders["54cb50c76803fa8b248b4571"].base.insurance.max_storage_time = modConfig.PraporMaxStorageTime + traders[PRAPOR].base.insurance.min_return_hour = modConfig.PraporMinReturn; + traders[PRAPOR].base.insurance.max_return_hour = modConfig.PraporMaxReturn; + traders[PRAPOR].base.insurance.max_storage_time = modConfig.PraporMaxStorageTime; + insuranceConfig.returnChancePercent[PRAPOR] = modConfig.PraporReturnChancePercent; // Therapist - traders["54cb57776803fa99248b456e"].base.insurance.min_return_hour = modConfig.TherapistMinReturn - traders["54cb57776803fa99248b456e"].base.insurance.max_return_hour = modConfig.TherapistMaxReturn - traders["54cb57776803fa99248b456e"].base.insurance.max_storage_time = modConfig.TherapistMaxStorageTime + traders[THERAPIST].base.insurance.min_return_hour = modConfig.TherapistMinReturn; + traders[THERAPIST].base.insurance.max_return_hour = modConfig.TherapistMaxReturn; + traders[THERAPIST].base.insurance.max_storage_time = modConfig.TherapistMaxStorageTime; + insuranceConfig.returnChancePercent[THERAPIST] = modConfig.TherapistReturnChancePercent; this.logger.logWithColor("[InsuranceTweaks] Applied insurance settings", LogTextColor.GREEN); }