optimise for gain rate increase per cost to simplify computation by decreasing iterations done.

[?]
Sep 9, 2020, 9:48 AM
R7OI6M4UHTBQQ6VJTJJFYQGEOR3FRQRXH5P2YTREE6TNKYIHALEQC

Dependencies

  • [2] CTUEOIV2 hacknet.js: take into account the gain rate increases of upgrades.
  • [3] 2BKHJI2S init

Change contents

  • replacement in sbin/hacknet.js at line 11
    [2.222][2.222:270]()
    const float_get_gain_rate_increase = function (
    [2.222]
    [2.270]
    const float_get_gain_rate_increase_cost_ratio = function (
  • replacement in sbin/hacknet.js at line 19
    [2.387][2.387:636]()
    return float_get_gain_rate(
    object_node_stats.level + level,
    object_node_stats.ram + ram,
    object_node_stats.cores + cores
    ) -
    float_get_gain_rate(
    object_node_stats.level,
    object_node_stats.ram,
    object_node_stats.cores
    [2.387]
    [2.636]
    return (
    float_get_gain_rate(
    object_node_stats.level + level,
    object_node_stats.ram + ram,
    object_node_stats.cores + cores
    ) -
    float_get_gain_rate(
    object_node_stats.level,
    object_node_stats.ram,
    object_node_stats.cores
    )
    ) /
    (
    ns.hacknet.getLevelUpgradeCost(
    integer_node,
    level
    ) +
    ns.hacknet.getRamUpgradeCost(
    integer_node,
    ram
    ) +
    ns.hacknet.getCoreUpgradeCost(
    integer_node,
    cores
    )
  • edit in sbin/hacknet.js at line 46
    [2.644][3.12105:12106](),[3.12105][3.12105:12106]()
  • replacement in sbin/hacknet.js at line 69
    [3.12738][3.12738:12807]()
    integer_level = 100,
    integer_ram = 8,
    integer_cores = 4;
    [3.12738]
    [2.645]
    integer_netburners_level = 100,
    integer_netburners_ram = 8,
    integer_netburner_cores = 4;
  • replacement in sbin/hacknet.js at line 83
    [3.13073][3.13073:13217]()
    !(integer_level <= object_nodes_stats.level &&
    integer_ram <= object_nodes_stats.ram &&
    integer_cores <= object_nodes_stats.cores);
    [3.13073]
    [3.13217]
    !(integer_netburners_level <= object_nodes_stats.level &&
    integer_netburners_ram <= object_nodes_stats.ram &&
    integer_netburner_cores <= object_nodes_stats.cores);
  • replacement in sbin/hacknet.js at line 91
    [2.785][2.785:1083]()
    array_upgrades = [
    {
    float_gain_rate_increase: float_get_gain_rate(
    1,
    1,
    1
    ),
    integer_cost: ns.hacknet.getPurchaseNodeCost(),
    upgrade: function () {
    return ns.hacknet.purchaseNode();
    }
    [2.785]
    [2.1083]
    object_upgrade = {
    float_gain_rate_increase_cost_ratio: float_get_gain_rate(
    1,
    1,
    1
    ) /
    ns.hacknet.getPurchaseNodeCost(),
    void_upgrade: function () {
    return ns.hacknet.purchaseNode();
  • replacement in sbin/hacknet.js at line 101
    [2.1093][2.1093:1131]()
    ];
    // iterate through nodes
    [2.1093]
    [3.13468]
    };
  • replacement in sbin/hacknet.js at line 107
    [3.13592][2.1132:1626]()
    if (object_nodes_stats.level < integer_level) {
    array_upgrades.push(
    {
    float_gain_rate_increase: float_get_gain_rate_increase(
    ns,
    integer_index_nodes,
    1,
    0,
    0
    ),
    integer_cost: ns.hacknet.getLevelUpgradeCost(integer_index_nodes, 1),
    upgrade: function () {
    return ns.hacknet.upgradeLevel(integer_index_nodes, 1);
    }
    }
    [3.13592]
    [2.1626]
    const
    float_ratio_level = float_get_gain_rate_increase_cost_ratio(
    ns,
    integer_index_nodes,
    1,
    0,
    0
    ),
    float_ratio_ram = float_get_gain_rate_increase_cost_ratio(
    ns,
    integer_index_nodes,
    0,
    1,
    0
    ),
    float_ratio_cores = float_get_gain_rate_increase_cost_ratio(
    ns,
    integer_index_nodes,
    0,
    1,
    0
  • edit in sbin/hacknet.js at line 129
    [2.1637]
    [2.1637]
    if (
    object_nodes_stats.level < integer_netburners_level &&
    float_ratio_level > object_upgrade.float_gain_rate_increase_cost_ratio
    ) {
    object_upgrade.float_gain_rate_increase_cost_ratio = float_ratio_level;
    object_upgrade.void_upgrade = function () {
    ns.hacknet.upgradeLevel(integer_index_nodes, 1);
    };
  • replacement in sbin/hacknet.js at line 138
    [2.1645][2.1645:2142]()
    if (object_nodes_stats.ram < integer_ram) {
    array_upgrades.push(
    {
    float_gain_rate_increase: float_get_gain_rate_increase(
    ns,
    integer_index_nodes,
    0,
    1,
    0
    ),
    integer_cost: ns.hacknet.getRamUpgradeCost(integer_index_nodes, 1),
    upgrade: function () {
    return ns.hacknet.upgradeRam(integer_index_nodes, 1);
    }
    }
    );
    [2.1645]
    [3.14118]
    if (
    object_nodes_stats.ram < integer_netburners_ram &&
    float_ratio_ram > object_upgrade.float_gain_rate_increase_cost_ratio
    ) {
    object_upgrade.float_gain_rate_increase_cost_ratio = float_ratio_ram;
    object_upgrade.void_upgrade = function () {
    ns.hacknet.upgradeRam(integer_index_nodes, 1);
    };
  • edit in sbin/hacknet.js at line 147
    [3.14126][2.2143:2646](),[2.2646][3.14381:14389](),[3.14381][3.14381:14389](),[3.14389][2.2647:2950]()
    if (object_nodes_stats.cores < integer_cores) {
    array_upgrades.push(
    {
    float_gain_rate_increase: float_get_gain_rate_increase(
    ns,
    integer_index_nodes,
    0,
    0,
    1
    ),
    integer_cost: ns.hacknet.getCoreUpgradeCost(integer_index_nodes, 1),
    upgrade: function () {
    return ns.hacknet.upgradeCore(integer_index_nodes, 1);
    }
    }
    );
    }
    }
    array_upgrades.sort(
    (a, b) =>
    b.float_gain_rate_increase - a.float_gain_rate_increase
    );
    const object_upgrade = array_upgrades[0];
    for (
    let integer_index_upgrades = 1;
    integer_index_upgrades < array_upgrades.length;
    ++integer_index_upgrades
    ) {
  • replacement in sbin/hacknet.js at line 148
    [3.14400][2.2951:3074]()
    object_upgrade.float_gain_rate_increase >=
    array_upgrades[integer_index_upgrades].float_gain_rate_increase
    [3.14400]
    [3.14493]
    object_nodes_stats.cores < integer_netburner_cores &&
    float_ratio_cores > object_upgrade.float_gain_rate_increase_cost_ratio
  • replacement in sbin/hacknet.js at line 151
    [3.14503][2.3075:3418]()
    if (
    array_upgrades[integer_index_upgrades].integer_cost <
    object_upgrade.integer_cost
    ) {
    object_upgrade.integer_cost = array_upgrades[integer_index_upgrades].integer_cost;
    object_upgrade.upgrade = array_upgrades[integer_index_upgrades].upgrade;
    }
    } else {
    break;
    [3.14503]
    [3.14651]
    object_upgrade.float_gain_rate_increase_cost_ratio = float_ratio_cores;
    object_upgrade.void_upgrade = function () {
    ns.hacknet.upgradeCore(integer_index_nodes, 1);
    };
  • replacement in sbin/hacknet.js at line 157
    [3.14767][2.3419:3449]()
    object_upgrade.upgrade();
    [3.14767]
    [3.14767]
    object_upgrade.void_upgrade();