From a95e485cb7825427861345da5acca3506b8cfef3 Mon Sep 17 00:00:00 2001 From: biglyderv Date: Thu, 6 Mar 2025 17:14:22 -0500 Subject: [PATCH] better api for items --- docs/js/idle.js | 10 ++++----- docs/js/upgrade.js | 52 +++++++++++++++++++++++++++++++--------------- docs/main.css | 10 +++++++++ 3 files changed, 50 insertions(+), 22 deletions(-) diff --git a/docs/js/idle.js b/docs/js/idle.js index ba5c6f2..08b9721 100644 --- a/docs/js/idle.js +++ b/docs/js/idle.js @@ -4,9 +4,10 @@ var getBonus = 0; var mx = 0, my = 0; let clicking = false; -var cubePos = [ -]; +let counts = JSON.parse(window.localStorage.getItem('counts')) || {}; + +var cubePos = []; window.addEventListener('mousemove', (e) => { mx = e.pageX; @@ -26,7 +27,7 @@ document.querySelector('canvas').addEventListener('click', (e) => { p2[1] += (my - height / 2) / height * 2; let b = 1 / (Math.sqrt(p2[0] ** 2 + p2[1] ** 2) + .03); - b = (b * b) * 0.001; + b = (b * b) * 0.0001; getBonus += b; } @@ -74,6 +75,5 @@ document.querySelector('canvas').addEventListener('click', async (e) => { setInterval(function () { window.localStorage.setItem('nothings', nothingness); - window.localStorage.setItem('cubes', cubePos.length); - window.localStorage.setItem('upgrades', JSON.stringify(upgrades)); + window.localStorage.setItem('counts', JSON.stringify(counts)); }, 1000) \ No newline at end of file diff --git a/docs/js/upgrade.js b/docs/js/upgrade.js index 1cbb709..8b81757 100644 --- a/docs/js/upgrade.js +++ b/docs/js/upgrade.js @@ -5,39 +5,57 @@ exec.addCube = function () { Math.random() * 2 - 1, Math.random() * 2 - 1, Math.random() * 2 - 1 ]) } - -let upgrades = window.localStorage.getItem('upgrades') - -if (!upgrades) { - upgrades = [ - { - 'name': 'Set', - 'price': 10, - 'exec': 'addCube' - } - ] -} else { - upgrades = JSON.parse(upgrades); -} +upgrades = [ + { + 'name': 'Set', + 'price': 100, + 'exec': 'addCube', + 'desc': 'Clicks and waiting generate more nil' + } +]; 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) { let button = document.createElement("div"); 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); button.addEventListener('click', () => { if (nothingness < upgrade.price) return; + counts[upgrade.exec]++; + + cc = counts[upgrade.exec]; + + price = upgrade.price * (1.02 ** counts[upgrade.exec]); + nothingness -= upgrade.price; upgrade.price *= 1.02; - button.textContent = `Buy ${upgrade.name} for ${upgrade.price} nil` + 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 = window.localStorage.getItem('cubes') * 1; +let cubesI = (counts.addCube || 0) * 1; for (let i = 0; i < cubesI; i++) { exec.addCube(); diff --git a/docs/main.css b/docs/main.css index b7c6356..625116f 100644 --- a/docs/main.css +++ b/docs/main.css @@ -42,4 +42,14 @@ html { width: 300px; font-weight: bold; margin-top: 5px; +} + +.desc { + white-space: pre-wrap; + font-size: 0.5em; + + background: rgb(204, 191, 209); + padding: 5px; + width: 300px; + font-style: italic; } \ No newline at end of file