nothing-simulator/docs/js/upgrade.js

81 lines
1.8 KiB
JavaScript
Raw Normal View History

2025-03-05 20:20:18 -05:00
let exec = {};
2025-03-07 03:46:03 -05:00
exec.doNothing = function() {
}
2025-03-10 05:14:15 -04:00
exec.intersectThings = function() {
}
2025-03-05 20:20:18 -05:00
exec.addCube = function () {
2025-03-05 01:10:20 -05:00
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
])
2025-03-05 13:24:24 -05:00
}
2025-03-06 17:14:22 -05:00
upgrades = [
{
2025-03-11 06:29:48 -04:00
'name': 'Void Set',
2025-03-06 19:15:23 -05:00
'price': 30,
2025-03-06 17:14:22 -05:00
'exec': 'addCube',
'desc': 'Clicks and waiting generate more nil'
2025-03-07 03:46:03 -05:00
},
{
2025-03-11 06:29:48 -04:00
'name': 'Void-Void Union',
2025-03-07 03:46:03 -05:00
'price': 1000,
'exec': 'doNothing',
2025-03-11 06:29:48 -04:00
'desc': 'Earlier-bought Sets pool together'
2025-03-10 05:14:15 -04:00
},
{
2025-03-11 06:29:48 -04:00
'name': 'Void-Input Intersection',
2025-03-10 05:14:15 -04:00
'price': 1000,
'exec': 'intersectThings',
'desc': 'Sets become easier to click'
2025-03-06 17:14:22 -05:00
}
];
2025-03-05 13:24:24 -05:00
let hud2 = document.querySelector('.hud');
2025-03-06 17:14:22 -05:00
function updateText(button, price, name, cc) {
2025-03-11 06:29:48 -04:00
button.textContent = `${name}\n${cc}x inventory\n${numify(price)} nil to construct`
2025-03-06 17:14:22 -05:00
}
2025-03-05 13:24:24 -05:00
for (let upgrade of upgrades) {
let button = document.createElement("div");
button.classList.add('item');
2025-03-06 17:14:22 -05:00
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);
2025-03-05 13:24:24 -05:00
hud2.appendChild(button);
button.addEventListener('click', () => {
2025-03-06 19:31:40 -05:00
if (nothingness < price) return;
2025-03-06 17:14:22 -05:00
counts[upgrade.exec]++;
cc = counts[upgrade.exec];
price = upgrade.price * (1.02 ** counts[upgrade.exec]);
2025-03-06 19:22:58 -05:00
nothingness -= price / 1.02;
2025-03-06 17:14:22 -05:00
updateText(button, price, upgrade.name, cc);
2025-03-05 20:20:18 -05:00
exec[upgrade.exec]();
2025-03-05 13:24:24 -05:00
})
2025-03-06 17:14:22 -05:00
let desc = document.createElement('div');
desc.classList.add('desc');
desc.textContent = upgrade.desc;
hud2.appendChild(desc);
2025-03-05 20:16:34 -05:00
}
2025-03-06 17:14:22 -05:00
let cubesI = (counts.addCube || 0) * 1;
2025-03-05 20:16:34 -05:00
for (let i = 0; i < cubesI; i++) {
2025-03-05 20:21:10 -05:00
exec.addCube();
2025-03-05 13:24:24 -05:00
}