From 372f8283571dc6eeddbf3f5f8e625859c89fce0e Mon Sep 17 00:00:00 2001 From: slweeb <91897291+slweeb@users.noreply.github.com> Date: Sat, 1 Apr 2023 13:45:47 -0400 Subject: [PATCH] fools --- index.html | 20 +++++++++++ mods/fools.js | 98 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 118 insertions(+) create mode 100644 mods/fools.js diff --git a/index.html b/index.html index bc949ffa..5b2068c1 100644 --- a/index.html +++ b/index.html @@ -106,6 +106,12 @@ console.log(e); } } + // if the URL contains fools=true, load the fools.js mod + if (window.location.href.includes("fools=true")) { + var script = document.createElement('script'); + script.src = "mods/fools.js" + document.head.appendChild(script); + }
diff --git a/mods/fools.js b/mods/fools.js new file mode 100644 index 00000000..f4bc6c34 --- /dev/null +++ b/mods/fools.js @@ -0,0 +1,98 @@ +allproperties = {} + +skipproperties = ["color", "colorOn", "forceAutoGen", "name", "category", "colorObject", "hidden", "tempHigh", "tempLow", "stateHigh", "stateLow"] +goodproperties = ["behavior","tick"] + +for (element in elements) { + var elementdata = elements[element] + if (elementdata.category === "tools") { continue } + for (property in elementdata) { + //if (skipproperties.indexOf(property) !== -1) { continue } + // only use properties that are in goodproperties + if (goodproperties.indexOf(property) === -1) { continue } + if (!allproperties[property]) { + allproperties[property] = [] + } + allproperties[property].push(elementdata[property]) + } +} + +// delete all properties from elements except skipproperties +for (element in elements) { + var elementdata = elements[element] + if (elementdata.category === "tools") { continue } + for (property in elementdata) { + //if (skipproperties.indexOf(property) === -1) { + // only delete properties that are in goodproperties + if (goodproperties.indexOf(property) !== -1) { + delete elementdata[property] + } + } +} + +// make a randomized shuffled list of all elements +var elementlist = Object.keys(elements) +elementlist.sort(function() { return 0.5 - Math.random() }) + +// randomly assign properties to elements +for (property in allproperties) { + // list of values for this property + var propertyvalues = allproperties[property] + // loop through elements, assigning values until we run out + for (var i = 0; i < elementlist.length; i++) { + if (i >= propertyvalues.length) { break } + var element = elementlist[i] + var elementdata = elements[element] + elementdata[property] = propertyvalues[i] + } + // reshuffle the list of elements + elementlist.sort(function() { return 0.5 - Math.random() }) +} + +// choose random values for properties +for (element in elements) { + elementdata = elements[element] + if (elementdata.category === "tools") { continue } + // set tempHigh to a random value between 0 and 10000 + elementdata.tempHigh = Math.floor(Math.random() * 10000) + // set tempLow to a random value between -273 and 0 + elementdata.tempLow = Math.floor(Math.random() * 273) - 273 + if (elementdata.stateHigh) { + elementdata.stateHigh = elementlist[Math.floor(Math.random() * elementlist.length)] + } + if (elementdata.stateLow) { + elementdata.stateLow = elementlist[Math.floor(Math.random() * elementlist.length)] + } + if (elementdata.reactions) { + for (reactant in elementdata.reactions) { + elementdata.reactions[reactant].elem1 = elementlist[Math.floor(Math.random() * elementlist.length)] + elementdata.reactions[reactant].elem2 = elementlist[Math.floor(Math.random() * elementlist.length)] + elementdata.reactions[elementlist[Math.floor(Math.random() * elementlist.length)]] = elementdata.reactions[reactant] + delete elementdata.reactions[reactant] + } + } + +} + + + +runAfterLoad(function() { + pixelTempCheckTemp = pixelTempCheck + pixelTempCheck = function(pixel) { + try { + pixelTempCheckTemp(pixel) + } + catch (e) {} + } +}) + +runAfterLoad(function() { + // change every font to Comic Sans + var css = document.createElement("style") + css.innerHTML = "* { font-family: Comic Sans MS !important; }" + document.body.appendChild(css) + // randomize background color + document.body.style.backgroundColor = "rgb(" + Math.floor(Math.random() * 256) + "," + Math.floor(Math.random() * 256) + "," + Math.floor(Math.random() * 256) + ")" + + +}) \ No newline at end of file