mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-11-26 09:33:49 +01:00
Merge pull request #2460 from MartinFournier/feature/convert-extra-hashes-to-cash
Use wasted hashes on "Sell for Money"
This commit is contained in:
commit
bff3c51a68
@ -421,7 +421,21 @@ function processAllHacknetServerEarnings(player: IPlayer, numCycles: number): nu
|
||||
hashes += h;
|
||||
}
|
||||
|
||||
player.hashManager.storeHashes(hashes);
|
||||
const wastedHashes = player.hashManager.storeHashes(hashes);
|
||||
if (wastedHashes > 0) {
|
||||
// Currently set to cap in at 1% of the capacity so it's probably still more efficient to run a script to use the hashes
|
||||
const maxHashesToConvert = player.hashManager.capacity * 0.01;
|
||||
const hashesToConvertToCash = Math.min(wastedHashes, maxHashesToConvert);
|
||||
|
||||
const upgrade = HashUpgrades["Sell for Money"];
|
||||
if (upgrade === null) throw new Error("Could not get the hash upgrade");
|
||||
if (!upgrade.cost) throw new Error("Upgrade is not properly configured");
|
||||
|
||||
const multiplier = Math.floor(hashesToConvertToCash / upgrade.cost);
|
||||
if (multiplier > 0) {
|
||||
player.gainMoney(upgrade.value * multiplier, "hacknet");
|
||||
}
|
||||
}
|
||||
|
||||
return hashes;
|
||||
}
|
||||
|
@ -113,9 +113,17 @@ export class HashManager {
|
||||
this.hashes += cost;
|
||||
}
|
||||
|
||||
storeHashes(numHashes: number): void {
|
||||
/**
|
||||
* Stores the given hashes, capping at capacity
|
||||
* @param numHashes The number of hashes to increment
|
||||
* @returns The number of wasted hashes (over capacity)
|
||||
*/
|
||||
storeHashes(numHashes: number): number {
|
||||
this.hashes += numHashes;
|
||||
let wastedHashes = this.hashes;
|
||||
this.hashes = Math.min(this.hashes, this.capacity);
|
||||
wastedHashes -= this.hashes;
|
||||
return wastedHashes;
|
||||
}
|
||||
|
||||
updateCapacity(newCap: number): void {
|
||||
|
Loading…
Reference in New Issue
Block a user