mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2025-01-01 19:07:36 +01:00
fix buying programs and writing them at the same time.
This commit is contained in:
parent
c7702d8511
commit
f1a3fb7d3e
@ -72,17 +72,12 @@ export function buyDarkwebItem(itemName: string): void {
|
|||||||
// buy and push
|
// buy and push
|
||||||
Player.loseMoney(item.price, "other");
|
Player.loseMoney(item.price, "other");
|
||||||
|
|
||||||
const programsRef = Player.getHomeComputer().programs;
|
Player.getHomeComputer().pushProgram(item.program);
|
||||||
// Remove partially created program if there is one
|
// Cancel if the program is in progress of writing
|
||||||
const existingPartialExeIndex = programsRef.findIndex(
|
if (Player.createProgramName === item.program) {
|
||||||
(program) => item?.program && program.startsWith(item?.program),
|
Player.isWorking = false;
|
||||||
);
|
Player.resetWorkStatus();
|
||||||
// findIndex returns -1 if there is no match, we only want to splice on a match
|
|
||||||
if (existingPartialExeIndex > -1) {
|
|
||||||
programsRef.splice(existingPartialExeIndex, 1);
|
|
||||||
}
|
}
|
||||||
// Add the newly bought, full .exe
|
|
||||||
Player.getHomeComputer().programs.push(item.program);
|
|
||||||
|
|
||||||
Terminal.print(
|
Terminal.print(
|
||||||
"You have purchased the " + item.program + " program. The new program can be found on your home computer.",
|
"You have purchased the " + item.program + " program. The new program can be found on your home computer.",
|
||||||
|
@ -547,8 +547,14 @@ export function NetscriptSingularity(player: IPlayer, workerScript: WorkerScript
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
player.getHomeComputer().pushProgram(item.program);
|
||||||
|
// Cancel if the program is in progress of writing
|
||||||
|
if (player.createProgramName === item.program) {
|
||||||
|
player.isWorking = false;
|
||||||
|
player.resetWorkStatus();
|
||||||
|
}
|
||||||
|
|
||||||
player.loseMoney(item.price, "other");
|
player.loseMoney(item.price, "other");
|
||||||
player.getHomeComputer().programs.push(item.program);
|
|
||||||
workerScript.log(
|
workerScript.log(
|
||||||
"purchaseProgram",
|
"purchaseProgram",
|
||||||
() => `You have purchased the '${item.program}' program. The new program can be found on your home computer.`,
|
() => `You have purchased the '${item.program}' program. The new program can be found on your home computer.`,
|
||||||
|
@ -248,6 +248,19 @@ export class BaseServer {
|
|||||||
this.ramUsed = ram;
|
this.ramUsed = ram;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pushProgram(program: string): void {
|
||||||
|
if (this.programs.includes(program)) return;
|
||||||
|
|
||||||
|
// Remove partially created program if there is one
|
||||||
|
const existingPartialExeIndex = this.programs.findIndex((p) => p.startsWith(program));
|
||||||
|
// findIndex returns -1 if there is no match, we only want to splice on a match
|
||||||
|
if (existingPartialExeIndex > -1) {
|
||||||
|
this.programs.splice(existingPartialExeIndex, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.programs.push(program);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Write to a script file
|
* Write to a script file
|
||||||
* Overwrites existing files. Creates new files if the script does not eixst
|
* Overwrites existing files. Creates new files if the script does not eixst
|
||||||
|
Loading…
Reference in New Issue
Block a user