something like this would be nice:
License: https://opensource.org/licenses/MIT
var portalConduitCount = [2,2,2,3,3,4,4,4,6,6,6,8,8,8,10,10,10,15,15,15,18,18,18,24,24,24];
var portalConduitMinIndexTable = [2,3,4,6,8,10,15,18,24];
var portalConduitMaxIndexTable = [8,10,15,18,24,36,48,56,100]; // <--- new array!
var portalOpeningCost = [50,100,150,200,250,300,350,400,450];
var portalRunningCost = [1,2,3,4,5,6,7,8,9];
function GetPortalCost(blinksecs, conduits)
{
if (blinksecs >= portalConduitCount.length)
{
return `[${blinksecs} blinksecs - ${conduits} conduits] INVALID1`;
}
var minConduits = portalConduitCount[blinksecs];
if (conduits < minConduits)
{
return `[${blinksecs} blinksecs - ${conduits} conduits] INVALID2`;
}
var curIndex = portalConduitMinIndexTable.indexOf(minConduits);
var maxConduits = portalConduitMaxIndexTable[curIndex];
while (conduits > maxConduits)
{
++curIndex;
if (curIndex >= portalConduitMinIndexTable.length)
{
return `[${blinksecs} blinksecs - ${conduits} conduits] INVALID3`;
}
minConduits = portalConduitMinIndexTable[curIndex];
maxConduits = portalConduitMaxIndexTable[curIndex];
}
return `[${blinksecs} blinksecs - ${conduits} conduits] Portal opening cost: ${portalOpeningCost[curIndex]} shards - Portal running cost: ${portalRunningCost[curIndex]} shards/hour`;
}
console.log(GetPortalCost(0, 2));
console.log(GetPortalCost(0, 3));
console.log(GetPortalCost(0, 4));
console.log(GetPortalCost(0, 6));
console.log(GetPortalCost(0, 8));
console.log(GetPortalCost(0, 10));
console.log(GetPortalCost(0, 15));
console.log(GetPortalCost(0, 18));
console.log(GetPortalCost(0, 24));
console.log(GetPortalCost(3, 2));
console.log(GetPortalCost(3, 3));
console.log(GetPortalCost(3, 4));
console.log(GetPortalCost(3, 6));
console.log(GetPortalCost(3, 8));
console.log(GetPortalCost(3, 10));
console.log(GetPortalCost(3, 15));
console.log(GetPortalCost(3, 18));
console.log(GetPortalCost(3, 24));
console.log(GetPortalCost(6, 2));
console.log(GetPortalCost(6, 3));
console.log(GetPortalCost(6, 4));
console.log(GetPortalCost(6, 6));
console.log(GetPortalCost(6, 8));
console.log(GetPortalCost(6, 10));
console.log(GetPortalCost(6, 15));
console.log(GetPortalCost(6, 18));
console.log(GetPortalCost(6, 24));
console.log(GetPortalCost(12, 2));
console.log(GetPortalCost(12, 3));
console.log(GetPortalCost(12, 4));
console.log(GetPortalCost(12, 6));
console.log(GetPortalCost(12, 8));
console.log(GetPortalCost(12, 10));
console.log(GetPortalCost(12, 15));
console.log(GetPortalCost(12, 18));
console.log(GetPortalCost(12, 24));
which outputs:
"[0 blinksecs - 2 conduits] Portal opening cost: 50 shards - Portal running cost: 1 shards/hour"
"[0 blinksecs - 3 conduits] Portal opening cost: 50 shards - Portal running cost: 1 shards/hour"
"[0 blinksecs - 4 conduits] Portal opening cost: 50 shards - Portal running cost: 1 shards/hour"
"[0 blinksecs - 6 conduits] Portal opening cost: 50 shards - Portal running cost: 1 shards/hour"
"[0 blinksecs - 8 conduits] Portal opening cost: 50 shards - Portal running cost: 1 shards/hour"
"[0 blinksecs - 10 conduits] Portal opening cost: 100 shards - Portal running cost: 2 shards/hour"
"[0 blinksecs - 15 conduits] Portal opening cost: 150 shards - Portal running cost: 3 shards/hour"
"[0 blinksecs - 18 conduits] Portal opening cost: 200 shards - Portal running cost: 4 shards/hour"
"[0 blinksecs - 24 conduits] Portal opening cost: 250 shards - Portal running cost: 5 shards/hour"
"[3 blinksecs - 2 conduits] INVALID2"
"[3 blinksecs - 3 conduits] Portal opening cost: 100 shards - Portal running cost: 2 shards/hour"
"[3 blinksecs - 4 conduits] Portal opening cost: 100 shards - Portal running cost: 2 shards/hour"
"[3 blinksecs - 6 conduits] Portal opening cost: 100 shards - Portal running cost: 2 shards/hour"
"[3 blinksecs - 8 conduits] Portal opening cost: 100 shards - Portal running cost: 2 shards/hour"
"[3 blinksecs - 10 conduits] Portal opening cost: 100 shards - Portal running cost: 2 shards/hour"
"[3 blinksecs - 15 conduits] Portal opening cost: 150 shards - Portal running cost: 3 shards/hour"
"[3 blinksecs - 18 conduits] Portal opening cost: 200 shards - Portal running cost: 4 shards/hour"
"[3 blinksecs - 24 conduits] Portal opening cost: 250 shards - Portal running cost: 5 shards/hour"
"[6 blinksecs - 2 conduits] INVALID2"
"[6 blinksecs - 3 conduits] INVALID2"
"[6 blinksecs - 4 conduits] Portal opening cost: 150 shards - Portal running cost: 3 shards/hour"
"[6 blinksecs - 6 conduits] Portal opening cost: 150 shards - Portal running cost: 3 shards/hour"
"[6 blinksecs - 8 conduits] Portal opening cost: 150 shards - Portal running cost: 3 shards/hour"
"[6 blinksecs - 10 conduits] Portal opening cost: 150 shards - Portal running cost: 3 shards/hour"
"[6 blinksecs - 15 conduits] Portal opening cost: 150 shards - Portal running cost: 3 shards/hour"
"[6 blinksecs - 18 conduits] Portal opening cost: 200 shards - Portal running cost: 4 shards/hour"
"[6 blinksecs - 24 conduits] Portal opening cost: 250 shards - Portal running cost: 5 shards/hour"
"[12 blinksecs - 2 conduits] INVALID2"
"[12 blinksecs - 3 conduits] INVALID2"
"[12 blinksecs - 4 conduits] INVALID2"
"[12 blinksecs - 6 conduits] INVALID2"
"[12 blinksecs - 8 conduits] Portal opening cost: 250 shards - Portal running cost: 5 shards/hour"
"[12 blinksecs - 10 conduits] Portal opening cost: 250 shards - Portal running cost: 5 shards/hour"
"[12 blinksecs - 15 conduits] Portal opening cost: 250 shards - Portal running cost: 5 shards/hour"
"[12 blinksecs - 18 conduits] Portal opening cost: 250 shards - Portal running cost: 5 shards/hour"
"[12 blinksecs - 24 conduits] Portal opening cost: 250 shards - Portal running cost: 5 shards/hour"
this way super large portals still cost more, but we can have slightly bigger portals than we NEED to have, at the same cost as a small portal.