Merge pull request #356 from hydroflame/limit-hack-security

limit fortifying to the amount of hck thread you needed to drain the …
This commit is contained in:
danielyxie 2018-07-14 19:29:21 -05:00 committed by GitHub
commit 30740dbf23
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -239,8 +239,9 @@ function NetscriptFunctions(workerScript) {
var expGainedOnSuccess = scriptCalculateExpGain(server) * threads;
var expGainedOnFailure = (expGainedOnSuccess / 4);
if (rand < hackChance) { //Success!
var moneyGained = scriptCalculatePercentMoneyHacked(server);
moneyGained = Math.floor(server.moneyAvailable * moneyGained) * threads;
const percentHacked = scriptCalculatePercentMoneyHacked(server);
const maxThreadNeeded = Math.ceil(1/percentHacked*(server.moneyAvailable/server.moneyMax))
let moneyGained = Math.floor(server.moneyAvailable * percentHacked) * threads;
//Over-the-top safety checks
if (moneyGained <= 0) {
@ -260,7 +261,7 @@ function NetscriptFunctions(workerScript) {
if (workerScript.disableLogs.ALL == null && workerScript.disableLogs.hack == null) {
workerScript.scriptRef.log("Script SUCCESSFULLY hacked " + server.hostname + " for $" + formatNumber(moneyGained, 2) + " and " + formatNumber(expGainedOnSuccess, 4) + " exp (t=" + threads + ")");
}
server.fortify(CONSTANTS.ServerFortifyAmount * threads);
server.fortify(CONSTANTS.ServerFortifyAmount * Math.min(threads, maxThreadNeeded));
return Promise.resolve(moneyGained);
} else {
//Player only gains 25% exp for failure?