CorpControl updated to step 2, next up:

- splitting the hireWorkers script into two parts
This commit is contained in:
Philipp
2024-10-07 11:26:10 +02:00
parent 880860b5de
commit f3bc36794c
8 changed files with 79 additions and 63 deletions

View File

@@ -1,33 +1,56 @@
/** @param {NS} ns */ /** @param {NS} ns */
export async function main(ns, reset) { export async function main(ns) {
let cities = ["Sector-12", "Aevum", "Volhaven", "Chongqing", "New Tokyo", "Ishima"]; let aCitites = ["Sector-12", "Aevum", "Volhaven", "Chongqing", "New Tokyo", "Ishima"];
let corpName = "Agri-Ram"; let sDivisionName = "Agri-Ram";
let reset = ns.args[0];
if (reset === true || !ns.fileExists("CorpStatus.txt")) { if (reset === true || !ns.fileExists("CorpStatus.txt")) {
ns.write("CorpStatus.txt",JSON.stringify({step: 0}),"w"); ns.write("CorpStatus.txt", JSON.stringify({ nStep: 0 }), "w");
}; };
let corpStatus = JSON.parse(ns.read("CorpStatus.txt")) || {step: 0}; let oCorpStatus = JSON.parse(ns.read("CorpStatus.txt")) || { nStep: 0 };
let step = corpStatus.step; let nStep = oCorpStatus.nStep;
while (step < 99) { ns.tprint(oCorpStatus);
step = corpStatus.step; while (nStep < 200) {
switch (step) {
case 0:
case 10:
case 20:
case 30:
case 40:
case 50:
case 60:
case 70:
case 80:
case 90:
case 100:
default:
nStep = oCorpStatus.nStep;
ns.tprint(nStep);
switch (nStep) {
case 0:
await ns.nextPortWrite(ns.run("/corp/CorpStart.js", 1, sDivisionName, "Agriculture"))
oCorpStatus.nStep = 10;
break;
case 10:
for (let sCity of aCitites) {
if (sCity !== "Sector-12") await ns.nextPortWrite(ns.run("/corp/CorpExpandCity.js", 1, sDivisionName, sCity))
} }
for (let city of cities) { oCorpStatus.nStep = 20;
await ns.run("/corp/Smart.js",1,corpName,city); break;
await ns.tprint(ns.run("/corp/UpgradeOffice.js",1,corpName,city)); case 20:
let nTargetSize = 4;
for (let sCity of aCitites) {
await ns.nextPortWrite(ns.run("/corp/UpgradeOffice.js", 1, sDivisionName, sCity, nTargetSize))
}
oCorpStatus.nStep = 200;
break;
case 30:
break;
case 40:
break;
case 50:
break;
case 60:
break;
case 70:
break;
case 80:
break;
case 90:
break;
case 100:
break;
default:
break;
}
ns.write("CorpStatus.txt", JSON.stringify(oCorpStatus), "w")
await ns.sleep(1000) await ns.sleep(1000)
} }
} }
}

View File

@@ -1,7 +0,0 @@
/** @param {NS} ns */
export async function main(ns, divName) {
let cities = ["Sector-12", "Aevum", "Volhaven", "Chongqing", "New Tokyo", "Ishima"];
for (let city of cities) {
ns.corporation.expandCity(divName,city)
}
}

View File

@@ -1,6 +0,0 @@
/** @param {NS} ns */
export async function main(ns) {
let newDivName = ns.args[0]
ns.corporation.expandIndustry("Agriculture",newDivName);
ns.run("CorpExpandCity.js",1,newDivName)
}

View File

@@ -0,0 +1 @@
{"nStep":200}

View File

@@ -0,0 +1,6 @@
/** @param {NS} ns */
export async function main(ns) {
let [sDivName, sCity] = ns.args;
ns.corporation.expandCity(sDivName, sCity)
ns.writePort(ns.pid, true);
}

View File

@@ -0,0 +1,6 @@
/** @param {NS} ns */
export async function main(ns) {
let [newDivName,industry] = ns.args;
ns.corporation.expandIndustry(industry, newDivName);
ns.writePort(ns.pid,true);
}

View File

@@ -1,16 +1,12 @@
/** @param {NS} ns */ /** @param {NS} ns */
export async function main(ns) { export async function main(ns) {
let cities = ["Sector-12", "Aevum", "Volhaven", "Chongqing", "New Tokyo", "Ishima"]; let [sDivName, sCity, nTargetSize] = ns.args;
let corpName = "ChemNeo"; let oCurrentOffice = ns.corporation.getOffice(sDivName, sCity);
let currentSize = 0; if (oCurrentOffice.numEmployees < oCurrentOffice.size) {
for (let city of cities) { (oCurrentOffice.employeeJobs.Operations < 1) ? ns.corporation.hireEmployee(sDivName, sCity,"Operations") : "";
(oCurrentOffice.employeeJobs.Engineer < 1) ? ns.corporation.hireEmployee(sDivName, sCity,"Engineer") : "";
let currentOffice=(ns.corporation.getOffice(corpName, city)); (oCurrentOffice.employeeJobs.Business < 1) ? ns.corporation.hireEmployee(sDivName, sCity,"Business") : "";
if (currentOffice.numEmployees < currentOffice.size) { (oCurrentOffice.employeeJobs.Management < 1) ? ns.corporation.hireEmployee(sDivName, sCity,"Management") : "";
(currentOffice.employeeJobs.Operations < 1) ? ns.corporation.hireEmployee(corpName, city,"Operations") : "";
(currentOffice.employeeJobs.Engineer < 1) ? ns.corporation.hireEmployee(corpName, city,"Engineer") : "";
(currentOffice.employeeJobs.Business < 1) ? ns.corporation.hireEmployee(corpName, city,"Business") : "";
(currentOffice.employeeJobs.Management < 1) ? ns.corporation.hireEmployee(corpName, city,"Management") : "";
}; };
} ns.writePort(ns.pid, true);
} }

View File

@@ -1,12 +1,9 @@
/** @param {NS} ns */ /** @param {NS} ns */
export async function main(ns) { export async function main(ns) {
let cities = ["Sector-12", "Aevum", "Volhaven", "Chongqing", "New Tokyo", "Ishima"]; let [sDivName, sCity, nTargetSize] = ns.args;
let corpName = "ChemNeo"; let nCurrentSize = ns.corporation.getOffice(sDivName, sCity).size;
let currentSize = 0; if (nCurrentSize < nTargetSize) {
for (let city of cities) { ns.corporation.upgradeOfficeSize(sDivName, sCity, nTargetSize - nCurrentSize);
currentSize = ns.corporation.getOffice(corpName, city).size;
if (currentSize < 4) {
ns.corporation.upgradeOfficeSize(corpName, city, 4 - currentSize);
}; };
} ns.writePort(ns.pid, true);
} }