diff --git a/Ramses/home/CorpControl.js b/Ramses/home/CorpControl.js index 1dd9ecf..91c7ee1 100644 --- a/Ramses/home/CorpControl.js +++ b/Ramses/home/CorpControl.js @@ -11,7 +11,9 @@ export async function main(ns) { let nListenPID = 0; let oCorpData = {}; let oDivisionData = {}; - let oOfficeData = {} + let oOfficeData = {}; + let oWarehouseData = {}; + let bUnlockStatus = false; ns.tprint(oCorpStatus); while (nStep < 199) { nStep = oCorpStatus.nStep; @@ -40,6 +42,25 @@ export async function main(ns) { oCorpStatus.nStep = 20; break; case 20: + nListenPID = ns.run("/corp/HasUnlock.js", 1, "Smart Supply"); + await ns.nextPortWrite(nListenPID); + bUnlockStatus = ns.readPort(nListenPID); + if (!bUnlockStatus) { + await ns.nextPortWrite(ns.run("/corp/BuyUnlock.js", 1, "Smart Supply")); + } + for (let sCity of aCitites) { + nListenPID = ns.run("/corp/GetWarehouseData.js", 1, sDivisionName, sCity); + await ns.nextPortWrite(nListenPID); + oWarehouseData = ns.readPort(nListenPID); + if (!oWarehouseData) { + await ns.nextPortWrite(ns.run("/corp/PurchaseWarehouses.js", 1, sDivisionName, sCity)); + } + await ns.nextPortWrite(ns.run("/corp/SetSmartSupply.js", 1, sDivisionName, sCity)); + }; + + oCorpStatus.nStep = 30; + break; + case 30: let nTargetSize = 4; for (let sCity of aCitites) { nListenPID = ns.run("/corp/GetOfficeData.js", 1, sDivisionName, sCity); @@ -47,21 +68,19 @@ export async function main(ns) { oOfficeData = ns.readPort(nListenPID); await ns.nextPortWrite(ns.run("/corp/UpgradeOffice.js", 1, sDivisionName, sCity, nTargetSize, oOfficeData.size)) } - oCorpStatus.nStep = 30; + oCorpStatus.nStep = 40; break; - case 30: + case 40: for (let sCity of aCitites) { nListenPID = ns.run("/corp/GetOfficeData.js", 1, sDivisionName, sCity); await ns.nextPortWrite(nListenPID); oOfficeData = ns.readPort(nListenPID); ns.tprint(oOfficeData); - nListenPID = ns.run("/corp/HireWorkers.js", 1, sDivisionName, sCity, oOfficeData); + nListenPID = ns.run("/corp/HireWorkers.js", 1, sDivisionName, sCity, JSON.stringify(oOfficeData)); await ns.nextPortWrite(nListenPID); } oCorpStatus.nStep = 200; break; - case 40: - break; case 50: break; case 60: diff --git a/Ramses/home/CorpStatus.txt b/Ramses/home/CorpStatus.txt index 4d87a63..1835133 100644 --- a/Ramses/home/CorpStatus.txt +++ b/Ramses/home/CorpStatus.txt @@ -1 +1 @@ -{"nStep":30} \ No newline at end of file +{"nStep":200} \ No newline at end of file diff --git a/Ramses/home/corp/BuyUnlock.js b/Ramses/home/corp/BuyUnlock.js new file mode 100644 index 0000000..192294c --- /dev/null +++ b/Ramses/home/corp/BuyUnlock.js @@ -0,0 +1,5 @@ +/** @param {NS} ns */ +export async function main(ns) { + ns.corporation.purchaseUnlock("Smart Supply") + ns.writePort(ns.pid, true); +} \ No newline at end of file diff --git a/Ramses/home/corp/GetWarehouseData.js b/Ramses/home/corp/GetWarehouseData.js new file mode 100644 index 0000000..5ba492d --- /dev/null +++ b/Ramses/home/corp/GetWarehouseData.js @@ -0,0 +1,9 @@ +/** @param {NS} ns */ +export async function main(ns) { + let [sDivName, sCity] = ns.args; + if (ns.corporation.hasWarehouse(sDivName, sCity)) { + ns.writePort(ns.pid, ns.corporation.getWarehouse(sDivName, sCity)) + } else { + ns.writePort(ns.pid, false) + }; +} \ No newline at end of file diff --git a/Ramses/home/corp/HasUnlock.js b/Ramses/home/corp/HasUnlock.js new file mode 100644 index 0000000..8c8c3bd --- /dev/null +++ b/Ramses/home/corp/HasUnlock.js @@ -0,0 +1,4 @@ +/** @param {NS} ns */ +export async function main(ns) { + ns.writePort(ns.pid, ns.corporation.hasUnlock("Smart Supply")); +} \ No newline at end of file diff --git a/Ramses/home/corp/HireWorkers.js b/Ramses/home/corp/HireWorkers.js index e9989fc..69195e6 100644 --- a/Ramses/home/corp/HireWorkers.js +++ b/Ramses/home/corp/HireWorkers.js @@ -1,11 +1,12 @@ /** @param {NS} ns */ export async function main(ns) { let [sDivName, sCity, oCurrentOffice] = ns.args; - if (oCurrentOffice.numEmployees < oCurrentOffice.size) { - (oCurrentOffice.employeeJobs.Operations < 1) ? ns.corporation.hireEmployee(sDivName, sCity,"Operations") : ""; - (oCurrentOffice.employeeJobs.Engineer < 1) ? ns.corporation.hireEmployee(sDivName, sCity,"Engineer") : ""; - (oCurrentOffice.employeeJobs.Business < 1) ? ns.corporation.hireEmployee(sDivName, sCity,"Business") : ""; - (oCurrentOffice.employeeJobs.Management < 1) ? ns.corporation.hireEmployee(sDivName, sCity,"Management") : ""; - }; + oCurrentOffice = JSON.parse(oCurrentOffice) + if (oCurrentOffice.numEmployees < oCurrentOffice.size) { + (oCurrentOffice.employeeJobs.Operations < 1) ? ns.corporation.hireEmployee(sDivName, sCity, "Operations") : ""; + (oCurrentOffice.employeeJobs.Engineer < 1) ? ns.corporation.hireEmployee(sDivName, sCity, "Engineer") : ""; + (oCurrentOffice.employeeJobs.Business < 1) ? ns.corporation.hireEmployee(sDivName, sCity, "Business") : ""; + (oCurrentOffice.employeeJobs.Management < 1) ? ns.corporation.hireEmployee(sDivName, sCity, "Management") : ""; + }; ns.writePort(ns.pid, true); } \ No newline at end of file diff --git a/Ramses/home/corp/PurchaseWarehouses.js b/Ramses/home/corp/PurchaseWarehouses.js new file mode 100644 index 0000000..313aca3 --- /dev/null +++ b/Ramses/home/corp/PurchaseWarehouses.js @@ -0,0 +1,6 @@ +/** @param {NS} ns */ +export async function main(ns) { + let [sDivName, sCity] = ns.args; + ns.corporation.purchaseWarehouse(sDivName, sCity); + ns.writePort(ns.pid, true); +} diff --git a/Ramses/home/corp/SetSmartSupply.js b/Ramses/home/corp/SetSmartSupply.js new file mode 100644 index 0000000..ba1008b --- /dev/null +++ b/Ramses/home/corp/SetSmartSupply.js @@ -0,0 +1,6 @@ +/** @param {NS} ns */ +export async function main(ns) { + let [sDivName, sCity] = ns.args; + ns.corporation.setSmartSupply(sDivName, sCity, true); + ns.writePort(ns.pid, true); +} \ No newline at end of file diff --git a/Ramses/home/corp/Smart.js b/Ramses/home/corp/Smart.js deleted file mode 100644 index e733958..0000000 --- a/Ramses/home/corp/Smart.js +++ /dev/null @@ -1,6 +0,0 @@ -/** @param {NS} ns */ -export async function main(ns) { - let [corpName, city] = ns.args; - //ns.corporation.setSmartSupply(corpName, city, true); - return true; -} \ No newline at end of file diff --git a/Ramses/home/corpTest.js b/Ramses/home/corpTest.js new file mode 100644 index 0000000..5ba492d --- /dev/null +++ b/Ramses/home/corpTest.js @@ -0,0 +1,9 @@ +/** @param {NS} ns */ +export async function main(ns) { + let [sDivName, sCity] = ns.args; + if (ns.corporation.hasWarehouse(sDivName, sCity)) { + ns.writePort(ns.pid, ns.corporation.getWarehouse(sDivName, sCity)) + } else { + ns.writePort(ns.pid, false) + }; +} \ No newline at end of file