let exec = {};

exec.doNothing = function() {

}

exec.intersectThings = function() {

}

exec.addCube = function () {
    cubePos.push([Math.random() * 1000 - 500, Math.random() * 1000 - 500, Math.random() * 30 - 200,
    Math.random() * 2 - 1, Math.random() * 2 - 1, Math.random() * 2 - 1
    ])
}
upgrades = [
    {
        'name': 'Set',
        'price': 30,
        'exec': 'addCube',
        'desc': 'Clicks and waiting generate more nil'
    },
    {
        'name': 'Union',
        'price': 1000,
        'exec': 'doNothing',
        'desc': 'Earlier-bought Sets are more powerful'
    },
    {
        'name': 'Intersection',
        'price': 1000,
        'exec': 'intersectThings',
        'desc': 'Sets become easier to click'
    }
];

let hud2 = document.querySelector('.hud');

function updateText(button, price, name, cc) {
    button.textContent = `Buy ${name} (${cc}x) for ${numify(price)} nil`
}

for (let upgrade of upgrades) {
    let button = document.createElement("div");
    button.classList.add('item');

    let cc = counts[upgrade.exec];

    if (!counts[upgrade.exec]) cc = counts[upgrade.exec] = 0;

    let price = upgrade.price * (1.02 ** cc);

    updateText(button, price, upgrade.name, cc);

    hud2.appendChild(button);

    button.addEventListener('click', () => {
        if (nothingness < price) return;
        counts[upgrade.exec]++;

        cc = counts[upgrade.exec];

        price = upgrade.price * (1.02 ** counts[upgrade.exec]);

        nothingness -= price / 1.02;
        updateText(button, price, upgrade.name, cc);

        exec[upgrade.exec]();
    })

    let desc = document.createElement('div');
    desc.classList.add('desc');
    desc.textContent = upgrade.desc;
    hud2.appendChild(desc);
}

let cubesI = (counts.addCube || 0) * 1;

for (let i = 0; i < cubesI; i++) {
    exec.addCube();
}