import {
array_get_servers_rooted,
}
from "nicoty.lib.root.js";
export const float_get_server_ram_total = ({
object_netscript: n,
string_server: s,
}) => n.getServerRam(s)[0];
export const float_get_server_ram_used = ({
object_netscript: n,
string_server: s,
}) => n.getServerRam(s)[1];
export const float_get_server_ram_free = ({
object_netscript: n,
string_server: s,
float_server_ram_used: u = float_get_server_ram_used({ object_netscript: n, string_server: s }),
}) =>
float_get_server_ram_total({ object_netscript: n, string_server: s }) - u;
const object_get_server_and_ram_free = ({
object_netscript: n,
object_server: s,
}) => ({
object_server: s,
float_ram_free: float_get_server_ram_free({
object_netscript: n,
string_server: s.string_server,
float_server_ram_used: s.float_ram_used,
})
});
export const object_get_server_ram_free_biggest = ({
object_netscript: n,
array_servers_used: a,
}) =>
a
.reduce(
(object_server_and_ram_free_biggest, object_server) => {
const object_server_and_ram_free = object_get_server_and_ram_free({
object_netscript: n,
object_server: object_server,
});
return object_server_and_ram_free.float_ram_free > object_server_and_ram_free_biggest.float_ram_free
? object_server_and_ram_free
: object_server_and_ram_free_biggest
},
{
object_server: null,
float_ram_free: -Infinity,
}
)
.object_server;
export const float_get_network_ram_trait = ({
object_netscript: n,
float_get_ram_trait: f,
}) =>
array_get_servers_rooted(n).reduce(
(float_accumulator, string_current) =>
float_accumulator +
f({
object_netscript: n,
string_server: string_current,
}),
0
);
export const float_get_network_ram_utilisation = (object_netscript) =>
float_get_network_ram_trait({
object_netscript: object_netscript,
float_get_ram_trait: float_get_server_ram_used,
}) /
float_get_network_ram_trait({
object_netscript: object_netscript,
float_get_ram_trait: float_get_server_ram_total,
});
export const array_get_servers_useable = (object_netscript) =>
array_get_servers_rooted(object_netscript).filter(
(string_server) =>
float_get_server_ram_total({
object_netscript: object_netscript,
string_server: string_server
}) > 0
);