35 lines
1.1 KiB
JavaScript
35 lines
1.1 KiB
JavaScript
/** @param {import(".").NS } ns */
|
|
|
|
export async function main(ns) {
|
|
// ns.disableLog('ALL');
|
|
|
|
let server = ns.args[0];
|
|
let maxMoney = ns.getServerMaxMoney(server);
|
|
let minSecurity = ns.getServerMinSecurityLevel(server);
|
|
let loop = 0;
|
|
|
|
while (true) {
|
|
let currentMoney = ns.getServerMoneyAvailable(server);
|
|
let currentSecurity = ns.getServerSecurityLevel(server);
|
|
ns.print(`Money: ${currentMoney} / ${maxMoney}`);
|
|
ns.print(`Security: ${currentSecurity} / ${minSecurity}`);
|
|
|
|
let newMoney = 'N/A';
|
|
if (currentMoney < 0.95 * maxMoney) {
|
|
newMoney = await ns.grow(server);
|
|
}
|
|
|
|
let newSecurity = 'N/A';
|
|
if (currentSecurity > 2 * minSecurity) {
|
|
newSecurity = await ns.weaken(server);
|
|
}
|
|
|
|
let hackedMoney = 0;
|
|
if (currentMoney > 0.4 * maxMoney) {
|
|
hackedMoney = await ns.hack(server);
|
|
}
|
|
|
|
ns.tprint(`{${server}: {loop: ${++loop}, hack: ${Math.floor(hackedMoney)}, money: ${Math.floor(currentMoney)} / ${Math.floor(maxMoney)} = ${((currentMoney / maxMoney) * 100).toFixed(2)}, security: ${currentSecurity.toFixed(2)} / ${Math.floor(minSecurity) } = ${((currentSecurity / minSecurity) * 100).toFixed(4)}}}`);
|
|
await ns.sleep(10);
|
|
}
|
|
} |