23 lines
764 B
TypeScript
23 lines
764 B
TypeScript
|
import {NS} from "NetscriptDefinitions";
|
||
|
export function recursiveScan(ns: NS) {
|
||
|
// Starting case
|
||
|
let servers = ns.scan(ns.getHostname());
|
||
|
// Add all servers to the list
|
||
|
let allServers: string[] = [];
|
||
|
while (servers.length > 0) {
|
||
|
let server = servers.shift();
|
||
|
if(server) {
|
||
|
let newServers = ns.scan(server);
|
||
|
for (let newServer of newServers) {
|
||
|
if (!allServers.includes(newServer)) {
|
||
|
allServers.push(newServer);
|
||
|
servers.push(newServer);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
// Remove the current server
|
||
|
allServers.splice(allServers.indexOf(ns.getHostname()), 1);
|
||
|
// Print all servers
|
||
|
return allServers;
|
||
|
}
|