From 2dfc2126df89958b4aa751569dc4848bc187883f Mon Sep 17 00:00:00 2001 From: catloversg <152669316+catloversg@users.noreply.github.com> Date: Mon, 13 Oct 2025 03:26:03 +0700 Subject: [PATCH] CODEBASE: Follow-up of #2344 (#2345) --- src/Netscript/NetscriptHelpers.tsx | 8 ++++++-- src/Terminal/Terminal.ts | 12 ++++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/Netscript/NetscriptHelpers.tsx b/src/Netscript/NetscriptHelpers.tsx index 698efd388..bfcb12f04 100644 --- a/src/Netscript/NetscriptHelpers.tsx +++ b/src/Netscript/NetscriptHelpers.tsx @@ -548,13 +548,17 @@ function hack(ctx: NetscriptContext, hostname: string, manual: boolean, opts: un let moneyDrained = server.moneyAvailable * percentHacked * threads; // Over-the-top safety checks - if (moneyDrained <= 0) { + if (moneyDrained < 0) { moneyDrained = 0; - expGainedOnSuccess = expGainedOnFailure; } if (moneyDrained > server.moneyAvailable) { moneyDrained = server.moneyAvailable; } + + if (moneyDrained === 0) { + expGainedOnSuccess = expGainedOnFailure; + } + server.moneyAvailable -= moneyDrained; if (server.moneyAvailable < 0) { server.moneyAvailable = 0; diff --git a/src/Terminal/Terminal.ts b/src/Terminal/Terminal.ts index 0ac746c53..74aa2c91c 100644 --- a/src/Terminal/Terminal.ts +++ b/src/Terminal/Terminal.ts @@ -253,7 +253,7 @@ export class Terminal { // Calculate whether hack was successful const hackChance = calculateHackingChance(server, Player); const rand = Math.random(); - const expGainedOnSuccess = calculateHackingExpGain(server, Player); + let expGainedOnSuccess = calculateHackingExpGain(server, Player); const expGainedOnFailure = expGainedOnSuccess / 4; if (rand < hackChance) { // Success! @@ -268,9 +268,17 @@ export class Terminal { let moneyDrained = server.moneyAvailable * calculatePercentMoneyHacked(server, Player); + // Over-the-top safety checks if (moneyDrained < 0) { moneyDrained = 0; - } // Safety check + } + if (moneyDrained > server.moneyAvailable) { + moneyDrained = server.moneyAvailable; + } + + if (moneyDrained === 0) { + expGainedOnSuccess = expGainedOnFailure; + } server.moneyAvailable -= moneyDrained; if (server.moneyAvailable < 0) {