From e832b8f630303458d1a62987f413807b7fd68697 Mon Sep 17 00:00:00 2001
From: biglyderv <eggseggsarecool+git@gmail.com>
Date: Fri, 7 Mar 2025 03:46:03 -0500
Subject: [PATCH] add unions

---
 docs/js/idle.js    | 22 +++++++++++++++-------
 docs/js/index.js   | 11 ++++++++---
 docs/js/upgrade.js | 10 ++++++++++
 3 files changed, 33 insertions(+), 10 deletions(-)

diff --git a/docs/js/idle.js b/docs/js/idle.js
index ba6b384..f146971 100644
--- a/docs/js/idle.js
+++ b/docs/js/idle.js
@@ -15,8 +15,11 @@ window.addEventListener('mousemove', (e) => {
 });
 
 document.querySelector('canvas').addEventListener('click', (e) => {
-    let p1 = MDN.perspectiveMatrix(Math.PI * 100 / 180, ratio, 0.01, 1000);
+    let p1 = MDN.perspectiveMatrix(Math.PI * 100 / 180, ratio, 0.01, 1000)
+
     for (let cubieI in cubePos) {
+        let bonus = 1 + counts.doNothing / (cubieI + 2);
+
         let cubie = cubePos[cubieI];
         let p2 = MDN.multiplyPoint(p1, [cubie[0], cubie[1], cubie[2], 0]);
 
@@ -27,7 +30,8 @@ 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.0001;
+        b = (b * b) * 0.0001
+        b *= bonus;
 
         getBonus += b;
     }
@@ -38,11 +42,15 @@ setInterval(function () {
     nGain = 0.003 + 0.003 * cubePos.length;
     getBonus *= 0.93;
 
-    for (let a of cubePos) {
-        let f = (nGain + getBonus * 10000 + 10) / (nothingness + 10);
+    for (let ab in cubePos) {
+        let a = cubePos[ab];
+        let bonus = 1 + counts.doNothing / (ab + 2);
+        bonus = (bonus) ** 0.05;
+
+        let f = (nGain + getBonus * bonus * 10000 + 10) / (nothingness + 10);
 
         let dist = Math.sqrt(a[0] ** 2 + a[1] ** 2)
-        dist = (f*90 / dist) ** 0.1;
+        dist = (f * 90 / dist) ** 0.1;
 
         a[3] = a[3] * 0.9 + a[0] * (dist - 1);
         a[4] = a[4] * 0.9 + a[1] * (dist - 1);
@@ -50,9 +58,9 @@ setInterval(function () {
         a[0] += a[3] * 0.01;
         a[1] += a[4] * 0.01;
 
-        a[3] += Math.sin(f*0.1) * a[1];
+        a[3] += Math.sin(f * 0.1) * a[1];
 
-        a[4] += -Math.sin(f*0.1) * a[0];
+        a[4] += -Math.sin(f * 0.1) * a[0];
     }
 }, 1000 / 60)
 
diff --git a/docs/js/index.js b/docs/js/index.js
index 4774bb7..6140b77 100644
--- a/docs/js/index.js
+++ b/docs/js/index.js
@@ -132,12 +132,17 @@ function renderThing() {
     if (sizes > 10) sizes = 10;
     if (sizes < 3) sizes = 3;
 
-    positions = MDN.createCubeData(1,1,1);
+    positions = MDN.createCubeData(1, 1, 1);
     gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(positions), gl.STATIC_DRAW);
 
-    for (let cubie of cubePos) {
+    for (let ii in cubePos) {
+        let cubie = cubePos[ii];
         let vp = MDN.rotateYMatrix(Math.log(nothingness + 1) * cubie[2] / 10);
-        vp = MDN.multiplyMatrices(MDN.scaleMatrix(sizes,sizes,sizes), vp)
+
+        let bonus = 1 + counts.doNothing / (ii + 2);
+        bonus = bonus ** (1 / 2);
+
+        vp = MDN.multiplyMatrices(MDN.scaleMatrix(sizes * bonus, sizes * bonus, sizes * bonus), vp)
         vp = MDN.multiplyMatrices(MDN.translateMatrix(cubie[0], cubie[1], cubie[2]), vp)
 
         gl.uniformMatrix4fv(vpBuffer, false, new Float32Array(vp));
diff --git a/docs/js/upgrade.js b/docs/js/upgrade.js
index f1eb859..c2e47bc 100644
--- a/docs/js/upgrade.js
+++ b/docs/js/upgrade.js
@@ -1,5 +1,9 @@
 let exec = {};
 
+exec.doNothing = 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
@@ -11,6 +15,12 @@ upgrades = [
         'price': 30,
         'exec': 'addCube',
         'desc': 'Clicks and waiting generate more nil'
+    },
+    {
+        'name': 'Union',
+        'price': 1000,
+        'exec': 'doNothing',
+        'desc': 'Earlier-bought Sets are more powerful'
     }
 ];