Distributed HGW

This commit is contained in:
2024-10-15 21:51:05 +02:00
parent 988b2ffb23
commit 3bf0443571

View File

@@ -1,5 +1,6 @@
/** @param {NS} ns */ /** @param {NS} ns */
export async function main(ns) { export async function main(ns) {
ns.tail();
let aCitites = ["Sector-12", "Aevum", "Volhaven", "Chongqing", "New Tokyo", "Ishima"]; let aCitites = ["Sector-12", "Aevum", "Volhaven", "Chongqing", "New Tokyo", "Ishima"];
let sCorpName = "RM Enterprises"; let sCorpName = "RM Enterprises";
let sDivisionName = "Agri-Ram"; let sDivisionName = "Agri-Ram";
@@ -15,12 +16,15 @@ export async function main(ns) {
let oOfficeData = {}; let oOfficeData = {};
let oWarehouseData = {}; let oWarehouseData = {};
let bUnlockStatus = false; let bUnlockStatus = false;
let nTargetSize = 0;
nListenPID = ns.run("/corp/HasCorp.js"); nListenPID = ns.run("/corp/HasCorp.js");
await ns.nextPortWrite(nListenPID); await ns.nextPortWrite(nListenPID);
await ns.sleep(1)
let bCorpExists = ns.readPort(nListenPID); let bCorpExists = ns.readPort(nListenPID);
if (!bCorpExists) { if (!bCorpExists) {
nListenPID = ns.run("/corp/CreateCorp.js", 1, sCorpName); nListenPID = ns.run("/corp/CreateCorp.js", 1, sCorpName);
await ns.nextPortWrite(nListenPID); await ns.nextPortWrite(nListenPID);
await ns.sleep(1)
} }
if (!ns.readPort(nListenPID)) { ns.tprint("Error! Couldn't start Corporation!"); return }; if (!ns.readPort(nListenPID)) { ns.tprint("Error! Couldn't start Corporation!"); return };
ns.tprint(oCorpStatus); ns.tprint(oCorpStatus);
@@ -29,12 +33,14 @@ export async function main(ns) {
ns.tprint(nStep); ns.tprint(nStep);
nListenPID = ns.run("/corp/GetCorpData.js"); nListenPID = ns.run("/corp/GetCorpData.js");
await ns.nextPortWrite(nListenPID); await ns.nextPortWrite(nListenPID);
await ns.sleep(1)
oCorpData = ns.readPort(nListenPID); oCorpData = ns.readPort(nListenPID);
switch (nStep) { switch (nStep) {
case 0: case 0:
if (!oCorpData.divisions.length > 0) { if (!oCorpData.divisions.length > 0) {
nListenPID = ns.run("/corp/CorpStart.js", 1, sDivisionName, "Agriculture"); nListenPID = ns.run("/corp/CorpStart.js", 1, sDivisionName, "Agriculture");
await ns.nextPortWrite(nListenPID); await ns.nextPortWrite(nListenPID);
await ns.sleep(1)
}; };
oCorpStatus.nStep = 10; oCorpStatus.nStep = 10;
break; break;
@@ -42,10 +48,12 @@ export async function main(ns) {
for (let sCity of aCitites) { for (let sCity of aCitites) {
nListenPID = ns.run("/corp/GetDivisionsData.js", 1, sDivisionName); nListenPID = ns.run("/corp/GetDivisionsData.js", 1, sDivisionName);
await ns.nextPortWrite(nListenPID); await ns.nextPortWrite(nListenPID);
await ns.sleep(1)
oDivisionData = ns.readPort(nListenPID); oDivisionData = ns.readPort(nListenPID);
if (sCity !== "Sector-12" && !oDivisionData.cities.includes(sCity)) { if (sCity !== "Sector-12" && !oDivisionData.cities.includes(sCity)) {
nListenPID = ns.run("/corp/CorpExpandCity.js", 1, sDivisionName, sCity); nListenPID = ns.run("/corp/CorpExpandCity.js", 1, sDivisionName, sCity);
await ns.nextPortWrite(nListenPID); await ns.nextPortWrite(nListenPID);
await ns.sleep(1)
} }
} }
oCorpStatus.nStep = 20; oCorpStatus.nStep = 20;
@@ -53,29 +61,36 @@ export async function main(ns) {
case 20: case 20:
nListenPID = ns.run("/corp/HasUnlock.js", 1, "Smart Supply"); nListenPID = ns.run("/corp/HasUnlock.js", 1, "Smart Supply");
await ns.nextPortWrite(nListenPID); await ns.nextPortWrite(nListenPID);
await ns.sleep(1)
bUnlockStatus = ns.readPort(nListenPID); bUnlockStatus = ns.readPort(nListenPID);
if (!bUnlockStatus) { if (!bUnlockStatus) {
await ns.nextPortWrite(ns.run("/corp/BuyUnlock.js", 1, "Smart Supply")); await ns.nextPortWrite(ns.run("/corp/BuyUnlock.js", 1, "Smart Supply"));
await ns.sleep(1)
} }
for (let sCity of aCitites) { for (let sCity of aCitites) {
nListenPID = ns.run("/corp/GetWarehouseData.js", 1, sDivisionName, sCity); nListenPID = ns.run("/corp/GetWarehouseData.js", 1, sDivisionName, sCity);
await ns.nextPortWrite(nListenPID); await ns.nextPortWrite(nListenPID);
await ns.sleep(1)
oWarehouseData = ns.readPort(nListenPID); oWarehouseData = ns.readPort(nListenPID);
if (!oWarehouseData) { if (!oWarehouseData) {
await ns.nextPortWrite(ns.run("/corp/PurchaseWarehouses.js", 1, sDivisionName, sCity)); await ns.nextPortWrite(ns.run("/corp/PurchaseWarehouses.js", 1, sDivisionName, sCity));
await ns.sleep(1)
} }
await ns.nextPortWrite(ns.run("/corp/SetSmartSupply.js", 1, sDivisionName, sCity)); await ns.nextPortWrite(ns.run("/corp/SetSmartSupply.js", 1, sDivisionName, sCity));
await ns.sleep(1)
}; };
oCorpStatus.nStep = 30; oCorpStatus.nStep = 30;
break; break;
case 30: case 30:
let nTargetSize = 4; nTargetSize = 4;
for (let sCity of aCitites) { for (let sCity of aCitites) {
nListenPID = ns.run("/corp/GetOfficeData.js", 1, sDivisionName, sCity); nListenPID = ns.run("/corp/GetOfficeData.js", 1, sDivisionName, sCity);
await ns.nextPortWrite(nListenPID); await ns.nextPortWrite(nListenPID);
await ns.sleep(1)
oOfficeData = ns.readPort(nListenPID); oOfficeData = ns.readPort(nListenPID);
await ns.nextPortWrite(ns.run("/corp/UpgradeOffice.js", 1, sDivisionName, sCity, nTargetSize, oOfficeData.size)) await ns.nextPortWrite(ns.run("/corp/UpgradeOffice.js", 1, sDivisionName, sCity, nTargetSize, oOfficeData.size))
await ns.sleep(1)
} }
oCorpStatus.nStep = 40; oCorpStatus.nStep = 40;
break; break;
@@ -83,9 +98,11 @@ export async function main(ns) {
for (let sCity of aCitites) { for (let sCity of aCitites) {
nListenPID = ns.run("/corp/GetOfficeData.js", 1, sDivisionName, sCity); nListenPID = ns.run("/corp/GetOfficeData.js", 1, sDivisionName, sCity);
await ns.nextPortWrite(nListenPID); await ns.nextPortWrite(nListenPID);
await ns.sleep(1)
oOfficeData = ns.readPort(nListenPID); oOfficeData = ns.readPort(nListenPID);
nListenPID = ns.run("/corp/HireWorkers.js", 1, sDivisionName, sCity, JSON.stringify(oOfficeData)); nListenPID = ns.run("/corp/HireWorkers.js", 1, sDivisionName, sCity, JSON.stringify(oOfficeData), JSON.stringify({nWorkerNumbers: [1, 1, 1, 1, 0, 0]}));
await ns.nextPortWrite(nListenPID); await ns.nextPortWrite(nListenPID);
await ns.sleep(1)
} }
oCorpStatus.nStep = 50; oCorpStatus.nStep = 50;
break; break;
@@ -96,18 +113,38 @@ export async function main(ns) {
] ]
for (let sCity of aCitites) { for (let sCity of aCitites) {
aCurrentGoods.forEach(async (entry) => { aCurrentGoods.forEach(async (entry) => {
nListenPID = ns.run("/corp/SetSalePrices.js", 1, sDivisionName, sCity, JSON.stringify(entry)); nListenPID = ns.run("/corp/SetSalePrices.js", 1, sDivisionName, sCity, JSON.stringify(entry));
nListenPID = ns.run("/corp/SetMaterialLimit.js", 1, sDivisionName, sCity, JSON.stringify(entry)); nListenPID = ns.run("/corp/SetMaterialLimit.js", 1, sDivisionName, sCity, JSON.stringify(entry));
ns.tprint(sCity, entry) ns.tprint(sCity, entry)
}) })
} }
oCorpStatus.nStep = 200; oCorpStatus.nStep = 60;
break; break;
case 60: case 60:
nTargetSize = 12;
for (let sCity of aCitites) {
nListenPID = ns.run("/corp/GetOfficeData.js", 1, sDivisionName, sCity);
await ns.nextPortWrite(nListenPID);
await ns.sleep(1)
oOfficeData = ns.readPort(nListenPID);
await ns.nextPortWrite(ns.run("/corp/UpgradeOffice.js", 1, sDivisionName, sCity, nTargetSize, oOfficeData.size))
await ns.sleep(1)
}
oCorpStatus.nStep = 70;
break; break;
case 70: case 70:
for (let sCity of aCitites) {
nListenPID = ns.run("/corp/GetOfficeData.js", 1, sDivisionName, sCity);
await ns.nextPortWrite(nListenPID);
await ns.sleep(1)
oOfficeData = ns.readPort(nListenPID);
nListenPID = ns.run("/corp/HireWorkers.js", 1, sDivisionName, sCity, JSON.stringify(oOfficeData), JSON.stringify({nWorkerNumbers: [2, 2, 2, 2, 2, 2]}));
await ns.nextPortWrite(nListenPID);
await ns.sleep(1)
}
oCorpStatus.nStep = 200;
break; break;
case 80: case 80:
break; break;