From c42d4143c911d8667c57f11beb4c96b3ec87c04f Mon Sep 17 00:00:00 2001 From: Caldwell <115591472+Caldwell-74@users.noreply.github.com> Date: Wed, 5 Jun 2024 03:19:41 +0200 Subject: [PATCH] BUGFIX: clamp Hackchance to prevent infinity / infinity (#1349) --- src/Hacking.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Hacking.ts b/src/Hacking.ts index 54cdca136..2d6c7d25c 100644 --- a/src/Hacking.ts +++ b/src/Hacking.ts @@ -2,6 +2,7 @@ import { currentNodeMults } from "./BitNode/BitNodeMultipliers"; import { Person as IPerson } from "@nsdefs"; import { calculateIntelligenceBonus } from "./PersonObjects/formulas/intelligence"; import { Server as IServer } from "@nsdefs"; +import { clampNumber } from "./utils/helpers/clampNumber"; /** Returns the chance the person has to successfully hack a server */ export function calculateHackingChance(server: IServer, person: IPerson): number { @@ -11,14 +12,14 @@ export function calculateHackingChance(server: IServer, person: IPerson): number if (!server.hasAdminRights || hackDifficulty >= 100) return 0; const hackFactor = 1.75; const difficultyMult = (100 - hackDifficulty) / 100; - const skillMult = hackFactor * person.skills.hacking; + const skillMult = clampNumber(hackFactor * person.skills.hacking, 1); const skillChance = (skillMult - requiredHackingSkill) / skillMult; const chance = skillChance * difficultyMult * person.mults.hacking_chance * calculateIntelligenceBonus(person.skills.intelligence, 1); - return Math.min(1, Math.max(chance, 0)); + return clampNumber(chance, 0, 1); } /**