Why is portal cost releated with portal size, not distance?

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.

9 Likes