DNET: Remove bonus time effect on authentication and heartbleed speed; fix ram rounding (#2627)

This commit is contained in:
Michael Ficocelli
2026-04-10 16:04:05 -07:00
committed by GitHub
parent be6fcd206f
commit 00a1bc2f6e
5 changed files with 18 additions and 17 deletions
+7 -6
View File
@@ -1,6 +1,6 @@
import { Player } from "@player";
import { addClue } from "./effects";
import { formatNumber } from "../../ui/formatNumber";
import { formatNumber, formatRam } from "../../ui/formatNumber";
import { logger } from "./offlineServerHandling";
import type { NetscriptContext } from "../../Netscript/APIWrapper";
import type { DarknetServer } from "../../Server/DarknetServer";
@@ -12,6 +12,7 @@ import type { DarknetServerData, Person as IPerson } from "@nsdefs";
import { clampNumber } from "../../utils/helpers/clampNumber";
import { ResponseCodeEnum } from "../Enums";
import { isLabyrinthServer } from "./labyrinth";
import { roundToTwo } from "../../utils/helpers/roundToTwo";
/*
* Handles the effects of removing some blocked RAM from a Darknet server.
@@ -21,7 +22,7 @@ export const handleRamBlockRemoved = (ctx: NetscriptContext, server: DarknetServ
const difficulty = server.difficulty + 1;
const ramBlockRemoved = getRamBlockRemoved(server, threads);
server.blockedRam -= ramBlockRemoved;
server.blockedRam = roundToTwo(server.blockedRam - ramBlockRemoved);
server.updateRamUsed(server.ramUsed - ramBlockRemoved);
if (server.blockedRam <= 0) {
@@ -30,10 +31,10 @@ export const handleRamBlockRemoved = (ctx: NetscriptContext, server: DarknetServ
const xpGained = Player.mults.charisma_exp * threads * 10 * 1.1 ** difficulty;
Player.gainCharismaExp(xpGained);
const result = `Liberated ${formatNumber(
const result = `Liberated ${formatRam(
ramBlockRemoved,
4,
)}gb of RAM from the server owner's processes. (Gained ${formatNumber(xpGained, 1)} cha xp.)`;
)} of RAM from the server owner's processes. (Gained ${formatNumber(xpGained, 1)} cha xp.)`;
logger(ctx)(result);
return {
success: true,
@@ -72,7 +73,7 @@ export const getRamBlockRemoved = (darknetServerData: DarknetServerData, threads
const charismaFactor = 1 + player.skills.charisma / 100;
const difficultyFactor = 2 * 0.92 ** (difficulty + 1);
const baseAmount = 0.02;
return clampNumber(baseAmount * difficultyFactor * threads * charismaFactor, 0, remainingRamBlock);
return roundToTwo(clampNumber(baseAmount * difficultyFactor * threads * charismaFactor, 0, remainingRamBlock));
};
/*
@@ -100,5 +101,5 @@ export const getRamBlock = (maxRam: number): number => {
return [16, 32, maxRam - 8][Math.floor(Math.random() * 3)];
}
return [maxRam, maxRam - 8, maxRam - 64, maxRam / 2][Math.floor(Math.random() * 4)];
return roundToTwo([maxRam, maxRam - 8, maxRam - 64, maxRam / 2][Math.floor(Math.random() * 4)]);
};