better api for items

This commit is contained in:
biglyderv 2025-03-06 17:14:22 -05:00
parent 999040dc24
commit a95e485cb7
Signed by: biglyderv
GPG key ID: 0E2EB0B4CD7397B5
3 changed files with 50 additions and 22 deletions

View file

@ -4,9 +4,10 @@ var getBonus = 0;
var mx = 0, my = 0; var mx = 0, my = 0;
let clicking = false; let clicking = false;
var cubePos = [
]; let counts = JSON.parse(window.localStorage.getItem('counts')) || {};
var cubePos = [];
window.addEventListener('mousemove', (e) => { window.addEventListener('mousemove', (e) => {
mx = e.pageX; mx = e.pageX;
@ -26,7 +27,7 @@ document.querySelector('canvas').addEventListener('click', (e) => {
p2[1] += (my - height / 2) / height * 2; p2[1] += (my - height / 2) / height * 2;
let b = 1 / (Math.sqrt(p2[0] ** 2 + p2[1] ** 2) + .03); let b = 1 / (Math.sqrt(p2[0] ** 2 + p2[1] ** 2) + .03);
b = (b * b) * 0.001; b = (b * b) * 0.0001;
getBonus += b; getBonus += b;
} }
@ -74,6 +75,5 @@ document.querySelector('canvas').addEventListener('click', async (e) => {
setInterval(function () { setInterval(function () {
window.localStorage.setItem('nothings', nothingness); window.localStorage.setItem('nothings', nothingness);
window.localStorage.setItem('cubes', cubePos.length); window.localStorage.setItem('counts', JSON.stringify(counts));
window.localStorage.setItem('upgrades', JSON.stringify(upgrades));
}, 1000) }, 1000)

View file

@ -5,39 +5,57 @@ exec.addCube = function () {
Math.random() * 2 - 1, Math.random() * 2 - 1, Math.random() * 2 - 1 Math.random() * 2 - 1, Math.random() * 2 - 1, Math.random() * 2 - 1
]) ])
} }
upgrades = [
let upgrades = window.localStorage.getItem('upgrades') {
'name': 'Set',
if (!upgrades) { 'price': 100,
upgrades = [ 'exec': 'addCube',
{ 'desc': 'Clicks and waiting generate more nil'
'name': 'Set', }
'price': 10, ];
'exec': 'addCube'
}
]
} else {
upgrades = JSON.parse(upgrades);
}
let hud2 = document.querySelector('.hud'); let hud2 = document.querySelector('.hud');
function updateText(button, price, name, cc) {
button.textContent = `Buy ${name} (${cc}x) for ${price} nil`
}
for (let upgrade of upgrades) { for (let upgrade of upgrades) {
let button = document.createElement("div"); let button = document.createElement("div");
button.classList.add('item'); button.classList.add('item');
button.textContent = `Buy ${upgrade.name} for ${upgrade.price} nil`
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); hud2.appendChild(button);
button.addEventListener('click', () => { button.addEventListener('click', () => {
if (nothingness < upgrade.price) return; if (nothingness < upgrade.price) return;
counts[upgrade.exec]++;
cc = counts[upgrade.exec];
price = upgrade.price * (1.02 ** counts[upgrade.exec]);
nothingness -= upgrade.price; nothingness -= upgrade.price;
upgrade.price *= 1.02; upgrade.price *= 1.02;
button.textContent = `Buy ${upgrade.name} for ${upgrade.price} nil` updateText(button, price, upgrade.name, cc);
exec[upgrade.exec](); exec[upgrade.exec]();
}) })
let desc = document.createElement('div');
desc.classList.add('desc');
desc.textContent = upgrade.desc;
hud2.appendChild(desc);
} }
let cubesI = window.localStorage.getItem('cubes') * 1; let cubesI = (counts.addCube || 0) * 1;
for (let i = 0; i < cubesI; i++) { for (let i = 0; i < cubesI; i++) {
exec.addCube(); exec.addCube();

View file

@ -42,4 +42,14 @@ html {
width: 300px; width: 300px;
font-weight: bold; font-weight: bold;
margin-top: 5px; margin-top: 5px;
}
.desc {
white-space: pre-wrap;
font-size: 0.5em;
background: rgb(204, 191, 209);
padding: 5px;
width: 300px;
font-style: italic;
} }