optimise for gain rate increase per cost to simplify computation by decreasing iterations done.
[?]
Sep 9, 2020, 9:48 AM
R7OI6M4UHTBQQ6VJTJJFYQGEOR3FRQRXH5P2YTREE6TNKYIHALEQCDependencies
Change contents
- replacement in sbin/hacknet.js at line 11
const float_get_gain_rate_increase = function (const float_get_gain_rate_increase_cost_ratio = function ( - replacement in sbin/hacknet.js at line 19
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.coresreturn (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
- replacement in sbin/hacknet.js at line 69
integer_level = 100,integer_ram = 8,integer_cores = 4;integer_netburners_level = 100,integer_netburners_ram = 8,integer_netburner_cores = 4; - replacement in sbin/hacknet.js at line 83
!(integer_level <= object_nodes_stats.level &&integer_ram <= object_nodes_stats.ram &&integer_cores <= object_nodes_stats.cores);!(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
array_upgrades = [{float_gain_rate_increase: float_get_gain_rate(1,1,1),integer_cost: ns.hacknet.getPurchaseNodeCost(),upgrade: function () {return ns.hacknet.purchaseNode();}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
];// iterate through nodes}; - replacement in sbin/hacknet.js at line 107
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);}}constfloat_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
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
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);}});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
object_upgrade.float_gain_rate_increase >=array_upgrades[integer_index_upgrades].float_gain_rate_increaseobject_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
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;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
object_upgrade.upgrade();object_upgrade.void_upgrade();