diff --git a/mod-list.html b/mod-list.html index 2edc2e39..d0c8854f 100644 --- a/mod-list.html +++ b/mod-list.html @@ -199,9 +199,9 @@ rays.jsAdds more Ray typesAlice Food & Cooking +aChefsDream.jsAdds more food and animalsSquareScreamYT and RealerRaddler bananas.jsAdds bananas and banana plantsAlice greenitemsandmore.jsAdds various green things, including apples and more foodzonneschijn7 -food&animals.jsAdds more food and animalsSquareScreamYT and RealerRaddler ketchup_mod.jsAdds a bunch of ketchup related stuff, plus a few other condimentsNubo318 (main dev), Devi, Alice (contributors) lemonade.jsAdds lemons and lemonadepersonman / baconthemyth morefoodsmod.jsAdds more foodsClide4 @@ -209,6 +209,7 @@ sbstuff.jsAdds many foodsStefan Blox Life & Nature +aChefsDream.jsAdds more food and animalsSquareScreamYT and RealerRaddler apioforms_pre.jsAn incomplete implementation of elements from the Apioform GameAlice bacteria_mod.jsAdds content from the Bacterium Mod: (Bacteria, Replacer B., Jammer Block)Alice bananas.jsAdds bananas and banana plantsAlice @@ -219,7 +220,6 @@ fantastic_creatures.jsAdds various animalsMelecie fantasy_elements.jsFantasy creatures and substancespixelegend4 fey_and_more.jsAdds fairies, magic, and a lot of other thingsMelecie -food&animals.jsAdds more food and animalsSquareScreamYT and RealerRaddler fwibblen.jsAdds a flying creature that turns nickel into itself, and a second creature that does the same to the first oneAlice human_edit.jsImprovements to humansAlice miscible_psoup_and_birthpool.jsMakes Primordial Soup and Birthpool mix instead of the birthpool settling to the bottom. Will be deprecated upon the release of Magical MenagerieAlice diff --git a/mods/Ultra_Steel.js b/mods/Ultra_Steel.js index 33ced423..2765012a 100644 --- a/mods/Ultra_Steel.js +++ b/mods/Ultra_Steel.js @@ -18,3 +18,44 @@ elements.Molten_Ultra_Steel = { "molten_gold": { elem1: "salt", elem2: "salt" }, } }; + +elements.Chocolate_Muffin = { + color: ["#7e4d32","#492500","#5e3400","#360101"], + behavior: behavior.WALL, + category: "food", + state: "solid", +}; + +elements.Cacao_Beans = { + color: "#48291C", + behavior: behaviors.POWDER, + breakInto: "Crushed_Cacao_Beans" +}; + +elements.Crushed_Cacao_Beans = { + color: ["#48291C","#543324","#3d251a"], + behavior: behaviors.POWDER, + reactions: { + "sugar": {elem1: "Chocolate_Mixture"} +}; + +elements.Chocolate_Mixture = { + color: ["#7B3F00","#572e03","#824a10"], + behavior: behaviors.POWDER, + reactions: { + "Milk": {elem1: "Chocolate"} +}; + +elements.Chocolate = { + color: "#48291C", + behavior: behaviors.WALL, + reactions: { + "Dough": {elem1: "Chocolate_Dough"} +}; + +elements.Chocolate_Dough = { + color: "#", + behavior: behaviors.LIQUID, + tempHigh: 450, + stateHigh: "Chocolate_Muffin", +}; diff --git a/mods/food&animals.js b/mods/aChefsDream.js similarity index 66% rename from mods/food&animals.js rename to mods/aChefsDream.js index 6b2e1269..204f3de7 100644 --- a/mods/food&animals.js +++ b/mods/aChefsDream.js @@ -1,12 +1,8 @@ /* +Created by SquareScreamYT and RealerRaddler +Thanks to Alice, nousernamefound and Fioushemastor for helping :) -food&animals.js - -MORE FOODS AND ANIMALS!! - -Created by @SquareScreamYT and @RealerRaddler - -v1.0 +v1.1 Changelog (v1.0) - added chickens @@ -51,7 +47,61 @@ Changelog (v1.0) - added olive branches - added olive leaves - added cooking oil + + + + +Changelog (v1.1) + - added apples and related stuff + - apples + - applewood + - apple branches + - apple leaves + - apple juice + - made by smashing apples + - apple seeds + - apple slices + - made by cutting apples + - apple jam + - made by putting sugar in apple juice + - added knife tool + - cuts, peels, etc. pixels + - readded potato skin and peeled potato + - changed fried potato recipe from potato to skinned potato\ + - added pepper + - added cake + - made by mixing baked batter and cream + - added icing sugar + - made by smashing sugar + - added icing + - made by shift-mixing icing sugar + - noodles description + - bug fix (freezing crushed worms makes them alive) */ + +/* +elements.test = { + //other needed properties + cutInto: "elem" +} +*/ + +elements.knife = { + color: "#adb5bd", + // other needed properties + tool: (pixel) => { + //store cutInto as a variable for legibility + var cutInto = elements[pixel.element].cutInto; + //if there’s no cutInto, it should equal undefined, which is falsey and !undefined = true + if (!cutInto) { return }; + //if cutInto is an array, randomly pick one of its elements + if(cutInto instanceof Array) { cutInto = cutInto[Math.floor(Math.random() * cutInto.length)] }; + //change pixel into the (chosen) element + changePixel(pixel, cutInto) + }, + category:"tools", +} + elements.chicken = { color: ["#c29046", "#f5d271", "#d4bd7d"], behavior: [ @@ -249,6 +299,7 @@ if (!elements.broth.reactions) elements.broth.reactions = {}; elements.broth.reactions.water = { elem1: "soup", elem2: "soup" } elements.noodles = { + desc: "whatever noodles", color: ["#F3BA4F", "#F7D161"], behavior: behaviors.POWDER, category: "food", @@ -315,7 +366,7 @@ elements.crushed_worm = { tempHigh: 50, stateHigh: ["ash", "smoke"], tempLow: -4, - stateLow: "frozen_worm", + stateLow: "frozen_crushed_worm", density: 200.33, isFood: true, hidden: true, @@ -520,7 +571,6 @@ elements.olive = { isFood: false } - elements.cooking_oil = { color: "#ffc844", behavior: behaviors.LIQUID, @@ -533,25 +583,37 @@ elements.cooking_oil = { viscosity: 250, state: "liquid", density: 825, - hidden: true, temp: 30, - reaction: { - "potato": {elem1: "fried_potato", tempMin: 70} + reactions: { + "peeled_potato": {elem2: "fried_potato", tempMin: 70} } }, -/* - -elements.potato_skin = { - color: ["#DC8A5A", "#A86C36", "#DC9A59", "#A76B35"], - behavior: behaviors.STURDYPOWDER, +elements.pepper = { + color: ["#1f190a", "#2b200d", "#362712", "#3b2211"], + behavior: behaviors.POWDER, category: "food", state: "solid", isFood: true, temp: 20, hidden: true, tempHigh: 250, - stateHigh: ["ash", "smoke"] + stateHigh: ["ash", "smoke"], +} + +elements.potato.cutInto = ["peeled_potato","peeled_potato","peeled_potato","potato_skin"]//{elem1: ["potato_skin","peeled_potato"] } + +elements.potato_skin = { + color: ["#DC8A5A", "#A86C36", "#DC9A59", "#A76B35"], + behavior: behaviors.POWDER, + category: "food", + state: "solid", + isFood: true, + temp: 20, + hidden: true, + density: 1100, + tempHigh: 250, + stateHigh: ["ash", "smoke"], } elements.peeled_potato = { @@ -562,13 +624,15 @@ elements.peeled_potato = { isFood: true, temp: 20, hidden: true, - reaction: { + breakInto: "mashed_potato", + tempHigh: 176, + stateHigh: "baked_potato", + density: 1100, + reactions: { "cooking_oil": { elem1: "fried_potato", tempMin: 70 } } } -*/ - elements.fried_potato = { color: ["#DD7908", "#D57206", "#CA6801", "#D68001"], behavior: behaviors.STURDYPOWDER, @@ -577,6 +641,242 @@ elements.fried_potato = { temp: 35, hidden: true, tempHigh: 600, + density: 1110, stateHigh: ["ash", "smoke"], isFood: true, } + +elements.applewood = { + color: "#632e1f", + behavior: behaviors.WALL, + tempHigh: 400, + stateHigh: ["ember","charcoal","fire","fire","fire"], + category: "solids", + burn: 5, + burnTime: 300, + burnInto: ["ember","charcoal","fire"], + state: "solid", + hardness: 0.15, + breakInto: "sawdust", + breakIntoColor: ["#dba66e","#cc8a64"], + hidden: true +} +elements.apple_branch = { + color: "#632e1f", + behavior: [ + "CR:apple_leaves,apple_branch%2|CR:apple_leaves,apple_branch%2|CR:apple_leaves,apple_branch%2", + "XX|XX|XX", + "XX|XX|XX", + ], + tempHigh: 100, + stateHigh: "applewood", + tempLow: -30, + stateLow: "applewood", + category: "life", + burn: 40, + burnTime: 50, + burnInto: ["sap","ember","charcoal"], + hidden: true, + state: "solid", + density: 1500, + hardness: 0.15, + breakInto: ["sap","sawdust"], +} +elements.apple_leaves = { + color: ["#00d404","#0ec911","#109e12"], + behavior: [ + "XX|XX|XX", + "XX|XX|XX", + "XX|CR:apple%0.15|XX", + ], + reactions: { + "vinegar": { elem1:"dead_plant", elem2:null, chance:0.035 }, + "baking_soda": { elem1:"dead_plant", elem2:null, chance:0.01 }, + "bleach": { elem1:"dead_plant", elem2:null, chance:0.05 }, + "alcohol": { elem1:"dead_plant", elem2:null, chance:0.035 } + }, + category:"life", + tempHigh: 100, + stateHigh: "dead_plant", + tempLow: -1.66, + stateLow: "frozen_plant", + burn:65, + burnTime:60, + burnInto: "dead_plant", + breakInto: "dead_plant", + state: "solid", + density: 1050, + hidden: true +} +elements.apple = { + color: ["#eb1a1a","#f22c2c","#d62020"], + behavior: behaviors.POWDER, + reactions: { + "vinegar": { elem1:"dead_plant", elem2:null, chance:0.035 }, + "baking_soda": { elem1:"dead_plant", elem2:null, chance:0.01 }, + "bleach": { elem1:"dead_plant", elem2:null, chance:0.05 }, + "alcohol": { elem1:"dead_plant", elem2:null, chance:0.035 } + }, + category:"food", + tempHigh: 100, + stateHigh: "dead_plant", + tempLow: -1.66, + stateLow: "frozen_plant", + burn:65, + burnTime:60, + burnInto: "dead_plant", + breakInto: "apple_juice", + cutInto: "apple_slice", + state: "solid", + density: 1050, +} + +elements.apple_slice = { + color: "#f0af37", + behavior: behaviors.STURDYPOWDER, + category:"food", + tempHigh: 100, + stateHigh: ["sugar","steam"], + burn:65, + burnTime:60, + burnInto: "dead_plant", + breakInto: "apple_juice", + state: "solid", + density: 1050, + hidden: true, +} + +elements.apple_seed = { + color: "#854610", + tick: function(pixel) { + if (isEmpty(pixel.x,pixel.y+1)) { + movePixel(pixel,pixel.x,pixel.y+1); + } + else { + if (Math.random() < 0.02 && pixel.age > 50 && pixel.temp < 100) { + if (!outOfBounds(pixel.x,pixel.y+1)) { + var dirtPixel = pixelMap[pixel.x][pixel.y+1]; + if (dirtPixel.element === "dirt" || dirtPixel.element === "mud" || dirtPixel.element === "sand" || dirtPixel.element === "wet_sand" || dirtPixel.element === "clay_soil" || dirtPixel.element === "mycelium") { + changePixel(dirtPixel,"root"); + } + } + if (isEmpty(pixel.x,pixel.y-1)) { + movePixel(pixel,pixel.x,pixel.y-1); + createPixel(Math.random() > 0.5 ? "applewood" : "apple_branch",pixel.x,pixel.y+1); + } + } + else if (pixel.age > 1000) { + changePixel(pixel,"applewood"); + } + pixel.age++; + } + doDefaults(pixel); + }, + properties: { + "age":0 + }, + tempHigh: 100, + stateHigh: "dead_plant", + tempLow: -2, + stateLow: "frozen_plant", + burn: 65, + burnTime: 15, + category: "life", + state: "solid", + density: 1500, + cooldown: defaultCooldown, + seed: true, + behavior: [ + "XX|XX|XX", + "XX|FX%10|XX", + "XX|M1|XX", + ], +}; + +elements.apple_juice = { + color: "#ffde55", + behavior: behaviors.LIQUID, + category: "liquids", + tempHigh: 400, + stateHigh: "fire", + burn: 70, + burnTime: 300, + burnInto: ["steam", "smoke"], + state: "liquid", + density: 825, + hidden: true, + temp: 30, + reactions: { + "sugar": { elem1:"apple_jam", elem2:null, chance:0.35 } + }, +}; + +elements.cake = { + color: ["#f2e5bf","#e8daba"], + behavior: behaviors.STURDYPOWDER, + tempHigh: 550, + stateHigh: "ash", + category: "food", + burn: 10, + burnTime: 400, + burnInto: ["smoke","smoke","smoke","ash"], + breakInto: "crumb", + state: "solid", + density: 233.96, + hidden: true, + isFood: true +}; + +elements.icing_sugar = { + color: "#f8f8f1", + behavior: behaviors.POWDER, + onMix: function(icing_sugar1, icing_sugar2) { + if (shiftDown && Math.random() < 0.2) { + changePixel(icing_sugar1,"icing") + } + }, + tempHigh: 186, + stateHigh: "caramel", + viscosity: 1.5, + category: "food", + state: "solid", + hidden: true, + density: 1036.86, + isFood: true +}; + +elements.icing = { + color: "#fefefb", + behavior: behaviors.STURDYPOWDER, + onMix: function(icing_sugar1, icing_sugar2) { + if ((shiftDown && Math.random() < 0.2) || (elements[icing_sugar2.element].id === elements.icing_sugar.id && Math.random() < 0.25)) { + changePixel(icing_sugar1,"icing") + } + }, + viscosity: 1.5, + tempHigh: 1000, + stateHigh: ["smoke","smoke","smoke","steam","steam","calcium"], + stateLowColorMultiplier: 0.97, + category: "food", + isFood: true, + state: "solid", + density: 959.97, +}; + +elements.cream.reactions.baked_batter = {elem2: "cake" } + +elements.sugar.breakInto = {elem1: "icing_sugar"} + +elements.apple_jam = { + color: "#ebc034", + behavior: behaviors.LIQUID, + category: "food", + tempHigh: 400, + stateHigh: ["sugar","smoke"], + burn: 70, + burnTime: 300, + viscosity: 750, + state: "liquid", + density: 825, + hidden: true +}; diff --git a/mods/greenitemsandmore.js b/mods/greenitemsandmore.js index f0fb1ef2..e63a1809 100644 --- a/mods/greenitemsandmore.js +++ b/mods/greenitemsandmore.js @@ -164,6 +164,20 @@ elements.kiwi = { desc: "Kiwi from the greenitemsandmore.js mod.", breakInto: "juice", breakIntoColor: "#2e7533", - tempHigh: 120 - stateHigh: "ash" + tempHigh: 120, + stateHigh: "ash", +}; + +behaviors.CUSTOMMOVEMENT = [ +"M3|XX|M3", +"M2|XX|M2", +"M3|M1|M2", +], + +elements.movementtest = { + color: "#ccc3a9", + behavior: behaviors.CUSTOMMOVEMENT, + category: "special", + state: "solid", + desc: "movementtest. Used for testing movement. From the greenitemsandmore.js mod.", }; diff --git a/mods/jaydsmods.js b/mods/jaydsmods.js index f49b3066..9e8b83f9 100644 --- a/mods/jaydsmods.js +++ b/mods/jaydsmods.js @@ -48,4 +48,42 @@ elements.rp1= { alias: "rocket propellant 1", burn: 100, burnTime: 400, + }, +elements.jet_fuel= { + color: "#575654", + behavior: behaviors.LIQUID, + category: "liquids", + state: "liquid", + density: 800, + alias: "a really f---ing flammable liquid", + burn: 100, + burnTime: 1, + tempHigh: 293, + stateHigh: "jet_fuel_vapor", + tempHigh: 293, + stateHigh: "frozen_jet_fuel", + }, +elements.jet_fuel_vapor= { + color: "#575654", + behavior: behaviors.GAS, + category: "gases", + state: "gas", + density: 800, + alias: "a really f---ing flammable gas", + burn: 100, + burnTime: 1, + tempLow: 292, + stateLow: "jet_fuel", + }, + elements.frozen_jet_fuel= { + color: "#575654", + behavior: behaviors.WALL, + category: "solids", + state: "solid", + density: 800, + alias: "a really f---ing flammable solid", + burn: 100, + burnTime: 1, + tempHigh: -50, + stateHigh: "jet_fuel", }; \ No newline at end of file diff --git a/mods/morechemistry.js b/mods/morechemistry.js index a1196515..c220dfdf 100644 --- a/mods/morechemistry.js +++ b/mods/morechemistry.js @@ -1,5 +1,19 @@ //This mod was made by Alex the transfem, https://discord.com/users/778753696804765696 on discord and https://www.tiktok.com/@alextheagenenby?_t=8hoCVI3NRhu&_r=1 on tiktok. -//version 1.4.2: added incinerator, E-incinerator and improved mixer to be compatible with nousersthings.js and to have a range of effect. +function pixelInRange(pixel, range){ + let i = 0; + while (i < range.length) { + if (pixel.x === range[i][0] && pixel.y === range[i][1]) { + i++; + return true; + } else { + i++; + } + + } + return false; + +} + function customExplosion(pixel1, pixel2, radius, list) { let x = pixel1.x; let y = pixel1.y; @@ -966,11 +980,129 @@ elements.morechemmixer = { } }, tick: function(pixel) { - pixel.clone = `range: ${num}`; - let range = mouseRange(pixel.x, pixel.y, num); + if(pixel.start == pixelTicks) { + pixel.range = num; + } + let range = mouseRange(pixel.x, pixel.y, pixel.range); mix(range); } } +let num1 = 0; +elements.morechemsmasher = { + name: "MoreChemSmasher", + behavior: behaviors.WALL, + category: "machines", + noMix: true, + onSelect: function(pixel) { + let item = prompt("enter range for smashing."); + if(/^\d+$/.test(item)){ + num1 = parseInt(item); + } else { + alert("that is not an integer."); + } + }, + tick: function(pixel) { + if(pixel.start == pixelTicks) { + pixel.range = num1; + } + let range = mouseRange(pixel.x, pixel.y, pixel.range); + smash(range); + } + } +let num2 = 0; +let exclude = []; +elements.specialsmasher = { + name: "SpecialSmasher", + behavior: behaviors.WALL, + category: "machines", + noMix: true, + onSelect: function(pixel) { + let item = prompt("enter range for smashing."); + exclude = prompt("Enter elements to exclude, seperate them with commas.").replace(/\s/g, "").split(","); + if(/^\d+$/.test(item)){ + num2 = parseInt(item); + } else { + alert("that is not an integer."); + } + }, + tick: function(pixel) { + if(pixel.start == pixelTicks) { + pixel.range = num2; + } + let range = mouseRange(pixel.x, pixel.y, pixel.range); + smash(range, exclude); + } + } +let num3 = 0; +let exclude1 = []; +elements.specialmixer = { + name: "SpecialMixer", + behavior: behaviors.WALL, + category: "machines", + noMix: true, + onSelect: function(pixel) { + let item = prompt("enter range for mixing."); + exclude = prompt("Enter elements to exclude, seperate them with commas.").replace(/\s/g, "").split(","); + if(/^\d+$/.test(item)){ + num3 = parseInt(item); + } else { + alert("that is not an integer."); + } + }, + tick: function(pixel) { + if(pixel.start == pixelTicks) { + pixel.range = num3; + } + let range = mouseRange(pixel.x, pixel.y, pixel.range); + mix(range, exclude); + } + } +let num4 = 0; +let exclude2 = []; +let property1 = ""; +let value2 = ""; +elements.propmachine = { + name: "PropMachine", + behavior: behaviors.WALL, + category: "machines", + noMix: true, + onSelect: function(pixel) { + let item = prompt("enter range for prop changing."); + if(/^\d+$/.test(item)){ + num4 = parseInt(item); + } else { + alert("that is not an integer."); + } + exclude2 = prompt("Enter elements to exclude, seperate them with commas.").replace(/\s/g, "").split(","); + exclude2.push("propmachine"); + var answer1 = prompt("Warning - This tool may break the simulator if used incorrectly.\n\nEnter a pixel attribute to modify:",(currentProp||undefined)); + if (!answer1) { return } + var answer2 = prompt("Now, enter a value for "+answer1+":",(currentPropValue||undefined)); + if (!answer2) { return } + var valueL = answer2.toLowerCase(); + if (valueL === "true") { answer2 = true } + else if (valueL === "false") { answer2 = false } + else if (valueL === "null") { answer2 = null } + else if (valueL === "undefined") { answer2 = undefined } + else if (answer1 === "color" && valueL[0] === "#") { + var rgb = hexToRGB(valueL); + answer2 = "rgb("+rgb.r+","+rgb.g+","+rgb.b+")"; + } + currentProp = answer1; + var num = parseFloat(answer2); + if (!isNaN(num)) { answer2 = num } + currentPropValue = answer2; + logMessage("Prop: "+currentProp); + logMessage("Value: "+currentPropValue); + }, + tick: function(pixel) { + if(pixel.start == pixelTicks) { + pixel.range = num4; + } + let range = mouseRange(pixel.x, pixel.y, pixel.range); + prop({ property: property1, value: value2 },range, exclude2); + } + } let item = ""; elements.improvedsensor = { behavior: behaviors.WALL, @@ -1064,14 +1196,42 @@ elements.incinerator = { color: 'rgb(255, 50, 0)', noMix: true, } -function mix(range){ +function prop(obj, range, exclude = []){ + for (var i = 0; i < range.length; i++) { + if (!isEmpty(range[i][0], range[i][1], true)) { + var pixel = pixelMap[range[i][0]][range[i][1]]; + if (!exclude.includes(pixel.element)){ + if(/^\d+$/.test(obj.value)){ + obj.value = parseInt(obj.value); + } + if (!currentProp) { return } + if (pixel[currentProp] !== undefined && typeof pixel[currentProp] !== typeof currentPropValue) { + logMessage("Error: "+currentProp+" type is "+typeof pixel[currentProp]+", not "+typeof currentPropValue+"."); + currentProp = null; + currentPropValue = null; + return; + } + if (currentProp === "element") { + changePixel(pixel, currentPropValue); + return; + } + if (currentProp === "burning" && currentPropValue === "true") { + pixel.burnStart = pixelTicks; + return; + } + pixel[currentProp] = currentPropValue; + } + } + } +} +function mix(range, exclude = []){ let mixlist = []; for (var i = 0; i < range.length; i++) { var x = range[i][0]; var y = range[i][1]; if (!isEmpty(x,y,true)) { var pixel = pixelMap[x][y]; - if (elements[pixel.element].noMix !== true || shiftDown) { + if (elements[pixel.element].noMix !== true) { mixlist.push(pixel); } } @@ -1079,14 +1239,71 @@ function mix(range){ for (var i = 0; i < mixlist.length; i++) { var pixel1 = mixlist[Math.floor(Math.random()*mixlist.length)]; var pixel2 = mixlist[Math.floor(Math.random()*mixlist.length)]; - swapPixels(pixel1,pixel2); - mixlist.splice(mixlist.indexOf(pixel1),1); - mixlist.splice(mixlist.indexOf(pixel2),1); - if (elements[pixel1.element].onMix) { - elements[pixel1.element].onMix(pixel1,pixel2); - } - if (elements[pixel2.element].onMix) { - elements[pixel2.element].onMix(pixel2,pixel1); + if (exclude.includes(pixel1.element) || exclude.includes(pixel2.element)){ + mixlist.splice(mixlist.indexOf(pixel1),1); + mixlist.splice(mixlist.indexOf(pixel2),1); + } else { + swapPixels(pixel1,pixel2); + mixlist.splice(mixlist.indexOf(pixel1),1); + mixlist.splice(mixlist.indexOf(pixel2),1); + if (elements[pixel1.element].onMix) { + elements[pixel1.element].onMix(pixel1,pixel2); + } + if (elements[pixel2.element].onMix ) { + elements[pixel2.element].onMix(pixel2,pixel1); + } } } } +function smash(range, exclude = []){ + let smashlist = []; + for (var i = 0; i < range.length; i++) { + var x = range[i][0]; + var y = range[i][1]; + if (!isEmpty(x,y,true)) { + var pixel = pixelMap[x][y]; + if (elements[pixel.element].noMix !== true) { + smashlist.push(pixel); + } + } + } + for (var i = 0; i < smashlist.length; i++) { + var pixel1 = smashlist[Math.floor(Math.random()*smashlist.length)]; + smashlist.splice(smashlist.indexOf(pixel1),1); + if (elements[pixel1.element].breakInto && !exclude.includes(pixel1.element)) { + if (Array.isArray(elements[pixel1.element].breakInto)){ + changePixel(pixelMap[pixel1.x][pixel1.y], elements[pixel1.element].breakInto[Math.floor(Math.random()*elements[pixel1.element].breakInto.length)]) + } else { + changePixel(pixelMap[pixel1.x][pixel1.y], elements[pixel1.element].breakInto) + } + } + } +} +function pull(range, pixel1, include = []){ + let pulllist = []; + for (var i = 0; i < range.length; i++) { + var x = range[i][0]; + var y = range[i][1]; + if (!isEmpty(x,y,true)) { + var pixel = pixelMap[x][y]; + if (elements[pixel.element].noMix !== true) { + pulllist.push(pixel); + } + } + } + for (var i = 0; i < pulllist.length; i++) { + var pixel = pulllist[Math.floor(Math.random()*pulllist.length)]; + pulllist.splice(pulllist.indexOf(pixel),1); + if (elements[pixel.element].movable != false && include.includes(pixel.element)) { + for (var i = 0; i < pulllist.length; i++) { + if (pixelInRange(pulllist[i], range)) { + let Xdistance = pixel1.x - pixel.x; + let Ydistance = pixel1.y - pixel.y; + let newX = (Xdistance > pixel.x ? pixel.x + 3 : pixel.x + 1); + let newY = (Ydistance > pixel.y ? pixel.y + 3 : pixel.y + 1); + tryMove(pixel, newX, newY, undefined, false); + } + } + } + } + } diff --git a/mods/pizzasstuff.js b/mods/pizzasstuff.js index 77467de5..9244dbe7 100644 --- a/mods/pizzasstuff.js +++ b/mods/pizzasstuff.js @@ -1,5 +1,5 @@ elements.beer = { - color: ["#ffc43d","#ffc43d","#ebc59f"], + color: ["#ffc43d","#ffc43d"], behavior: behaviors.LIQUID, category: "food", state: "solid", @@ -40,6 +40,7 @@ elements.chocolate_slushy = { elements.chocolate_sauce = { color: ["#491904","#54240b","#5e2d0b","#69371b","#764636"], + density: 10, behavior: behaviors.LIQUID, category: "food", state: "solid", @@ -52,6 +53,10 @@ elements.chocolate_ice_cream = { category: "food", state: "solid", hidden: "TRUE", + density: 1096, + tempHigh: 15, + stateHigh: "cream", + temp: 0, }; elements.fruit_ice_cream = { @@ -60,8 +65,41 @@ elements.fruit_ice_cream = { category: "food", state: "solid", hidden: "TRUE", + density: 1096, + tempHigh: 15, + stateHigh: "cream", + temp: 0, }; +elements.mint_ice_cream = { + + color: ["#ebfdff","#d5fff7","#ceffe9","#dfffde","#daffd5"], + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", + hidden: "TRUE", + density: 1096, + tempHigh: 15, + stateHigh: "cream", + temp: 0, + reactions: { + "chocolate": { elem1: "mint_chocolate_ice_cream", elem2: null }, + } +}; + +elements.mint_chocolate_ice_cream = { + color: ["#311e08","#d5fff7","#ceffe9","#dfffde","#daffd5",], + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", + hidden: "TRUE", + density: 1096, + tempHigh: 15, + stateHigh: "cream", + temp: 0, +}; + + elements.chocolate_yogurt = { color: ["#654321","#71512b","#7e5f36","#8a6e42","#967d50"], behavior: behaviors.STURDYPOWDER, @@ -91,6 +129,7 @@ elements.frozen_fruit_yogurt = { density: 902, tempHigh: 0, stateHigh: "fruit_yogurt", + temp: 0, }; elements.frozen_chocolate_yogurt = { @@ -102,6 +141,7 @@ elements.frozen_chocolate_yogurt = { density: 902, tempHigh: 0, stateHigh: "chocolate_yogurt", + temp: 0, }; elements.cooking_oil = { @@ -169,8 +209,10 @@ elements.steampunk_pancakes = { category: "machines", state: "solid", hidden: "TRUE", + //I have no idea why i added this, but when i removed it and started the mod, the mod removed itself. Words can't explain my fucking confusion. }; + elements.churros = { color: ["#ce9958","#b8732d","#9f633b"], behavior: behaviors.POWDER, @@ -264,6 +306,36 @@ elements.smashed_ice = { state: "solid", reactions: { "grape": { elem1: null, elem2: "fruit_slushy" }, + "blood_orange": { elem1: null, elem2: "fruit_slushy" }, + "canary_melon": { elem1: null, elem2: "fruit_slushy" }, + "honeydew_melon": { elem1: null, elem2: "fruit_slushy" }, + "cranberry": { elem1: null, elem2: "fruit_slushy" }, + "pitaya": { elem1: null, elem2: "fruit_slushy" }, + "coconut": { elem1: null, elem2: "fruit_slushy" }, + "cloudberry": { elem1: null, elem2: "fruit_slushy" }, + "crabapple": { elem1: null, elem2: "fruit_slushy" }, + "cactus_pear": { elem1: null, elem2: "fruit_slushy" }, + "pear": { elem1: null, elem2: "fruit_slushy" }, + "purpleberry": { elem1: null, elem2: "fruit_slushy" }, + "yellowberry": { elem1: null, elem2: "fruit_slushy" }, + "pomegranate": { elem1: null, elem2: "fruit_slushy" }, + "guava": { elem1: null, elem2: "fruit_slushy" }, + "raspberry": { elem1: null, elem2: "fruit_slushy" }, + "gooseberry": { elem1: null, elem2: "fruit_slushy" }, + "fig": { elem1: null, elem2: "fruit_slushy" }, + "durian": { elem1: null, elem2: "fruit_slushy" }, + "passionfruit": { elem1: null, elem2: "fruit_slushy" }, + "starfruit": { elem1: null, elem2: "fruit_slushy" }, + "rambutan": { elem1: null, elem2: "fruit_slushy" }, + "nance": { elem1: null, elem2: "fruit_slushy" }, + "nectarine": { elem1: null, elem2: "fruit_slushy" }, + "loganberry": { elem1: null, elem2: "fruit_slushy" }, + "currant": { elem1: null, elem2: "fruit_slushy" }, + "banana": { elem1: null, elem2: "fruit_slushy" }, + "blackberry": { elem1: null, elem2: "fruit_slushy" }, + "blueberry": { elem1: null, elem2: "fruit_slushy" }, + "green_apple": { elem1: null, elem2: "fruit_slushy" }, + "lemon": { elem1: null, elem2: "fruit_slushy" }, "green_grape": { elem1: null, elem2: "fruit_slushy" }, "cherry": { elem1: null, elem2: "fruit_slushy" }, "apple": { elem1: null, elem2: "fruit_slushy" }, @@ -316,6 +388,60 @@ elements.moth = { stateLow: "dead_bug", }; +elements.parrot = { + color: ["#234d20","#36802d","#77ab59","#c9df8a","#f0f7da","#f90f0b","#f7ab4d","#fdfc0d","#0564b2","#60a3e6"], + behavior: behaviors.FLY, + category: "life", + state: "solid", + burn: 40, + burnTime: 100, + density: 400, + breakInto: ["feather","blood"], + tempHigh: 120, + stateHigh: "cooked_meat", + tempLow: -18, + stateLow: "frozen_meat", + reactions: { + "fly": { elem2:null, chance:0.25, func:behaviors.FEEDPIXEL }, + "firefly": { elem2:null, chance:0.3, func:behaviors.FEEDPIXEL }, + "bee": { elem2:null, chance:0.05, func:behaviors.FEEDPIXEL }, + "worm": { elem2:null, chance:0.25, func:behaviors.FEEDPIXEL }, + "ant": { elem2:null, chance:0.025, func:behaviors.FEEDPIXEL }, + "dead_bug": { elem2:null, chance:0.04, func:behaviors.FEEDPIXEL }, + "lichen": { elem2:null, chance:0.04, func:behaviors.FEEDPIXEL }, + "termite": { elem2:null, chance:0.025, func:behaviors.FEEDPIXEL }, + "flea": { elem2:null, chance:0.025, func:behaviors.FEEDPIXEL }, + "mushroom_cap": { elem2:null, chance:0.025, func:behaviors.FEEDPIXEL }, + "mushroom_gill": { elem2:null, chance:0.025, func:behaviors.FEEDPIXEL }, + "seeds": { elem2:null, chance:0.25, func:behaviors.FEEDPIXEL }, + "flower_seed": { elem2:null, chance:0.25, func:behaviors.FEEDPIXEL }, + "wheat_seed": { elem2:null, chance:0.25, func:behaviors.FEEDPIXEL }, + "corn_seed": { elem2:null, chance:0.25, func:behaviors.FEEDPIXEL }, + "corn": { elem2:null, chance:0.25, func:behaviors.FEEDPIXEL }, + "potato_seed": { elem2:null, chance:0.25, func:behaviors.FEEDPIXEL }, + "grass_seed": { elem2:null, chance:0.25, func:behaviors.FEEDPIXEL }, + "crumb": { elem2:null, chance:0.25, func:behaviors.FEEDPIXEL }, + "pumpkin": { elem2:null, chance:0.025, func:behaviors.FEEDPIXEL }, + "pumpkin_seed": { elem2:null, chance:0.25, func:behaviors.FEEDPIXEL }, + "plague": { elem1:"plague", chance:0.05 }, + "oxygen": { elem2:"carbon_dioxide", chance:0.5 } + }, + foodNeed: 20, + temp: 41, + tempHigh: 120, + stateHigh: "cooked_meat", + stateHighColor: "#E4CFB9", + tempLow: -18, + stateLow: "frozen_meat", + category:"life", + burn:50, + burnTime:100, + breakInto: ["feather","blood"], + state: "solid", + density: 400, + conduct: 0.5 +}; + elements.cherry = { color: ["#ff0000","#e30202","#c00000","#9c0101"], behavior: behaviors.POWDER, @@ -383,6 +509,61 @@ elements.kiwi = { breakIntoColor: ["#a9c77e","#bad98f"], }; +elements.blueberry = { + color: ["#3e476f","#49598c","#5076b0","#5086c1","#8aa4ff"], + behavior: behaviors.POWDER, + category: "food", + state: "solid", + breakInto: "juice", + tempHigh: 256, + stateHigh: "steam", + breakIntoColor: ["#8abeee","#8aacf4","#9591ee","#787fdb","#7c74ce"], +}; + +elements.plum = { + color: ["#b62d82","#951661","#7c1249","#52001e","#360011"], + behavior: behaviors.POWDER, + category: "food", + state: "solid", + breakInto: "juice", + tempHigh: 256, + stateHigh: "steam", + breakIntoColor: ["#bf66c9","#d499db","#eacced"], +}; + +elements.blackberry = { + color: ["#2b0521","#3e0930","#4f123e","#601a4c","#6b2356"], + behavior: behaviors.POWDER, + category: "food", + state: "solid", + breakInto: "juice", + tempHigh: 256, + stateHigh: "steam", + breakIntoColor: ["#a941a1","#ba59b2","#c570bf"], +}; + +elements.peach = { + color: ["#f6a192","#f6b092","#f6c492","#f6cf92","#f6d992"], + behavior: behaviors.POWDER, + category: "food", + state: "solid", + breakInto: "juice", + tempHigh: 256, + stateHigh: "steam", + breakIntoColor: ["#fce5b8","#fcdab8","#fccfb8"], +}; + +elements.lemon = { + color: ["#ffaa1d","#ffd300","#ffdf00","#ffff00","#fff44f"], + behavior: behaviors.POWDER, + category: "food", + state: "solid", + breakInto: "juice", + tempHigh: 256, + stateHigh: "steam", + breakIntoColor: ["#f8ff80","#f6ff6c","#f5ff57","#f3ff39","#f0ff00"], +}; + elements.green_grape = { color: ["#b6f271","#a1f02f","#97d60c","#65ba14","#8bc33a"], behavior: behaviors.POWDER, @@ -406,6 +587,241 @@ elements.banana = { } }; +elements.blood_orange = { + color: ["#db4437","#fc3d39","#e5302d","#f6602d","#f65026"], + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", + breakInto: "juice", + breakIntoColor: ["#ff4600","#ff8353"], +}; + +elements.canary_melon = { + color: ["#e9ff0c","#e9ff0c","#ffed0c"], + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", + breakInto: "juice", + breakIntoColor: ["#ffff9e","#fffcaa"], +}; + +elements.honeydew_melon = { + color: ["#b9ffa3","#c9ffa3","#d9ffa3"], + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", + breakInto: "juice", + breakIntoColor: ["#e9ffa3","#f9ffa3"], +}; + +elements.cranberry = { + color: ["#471016","#7a1927","#69202f"], + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", + breakInto: "sauce", + breakIntoColor: ["#ba4242","#7a1717"], + reactions: { + "soda": { elem1: null, elem2: "sprite_cranberry" }, + } +}; + +elements.pitaya = { + color: ["#f6a9d8","#d4306e","#6ab81f"], + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", + breakInto: "juice", + breakIntoColor: ["#ff84ae","#ffafca"], +}; + +elements.coconut = { + color: ["#6b3314","#583203","#673e1c"], + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", + breakInto: "milk", + breakIntoColor: ["#f7e5d8","#fdefe5","#fff7f1"], +}; + +elements.cloudberry = { + color: ["#ff9636","#ffb169","#ffc896"], + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", + breakInto: "juice", + breakIntoColor: ["#ffe1c7","#fff9f3"], +}; + +elements.crabapple = { + color: ["#850b0b","#a32d2d","#ab4545"], + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", + breakInto: "juice", + breakIntoColor: ["#ff8fcf","#ffb2de"], +}; + +elements.cactus_fruit = { + color: ["#ff95b0","#ff80a0","#ff7489"], + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", + breakInto: "juice", + breakIntoColor: ["#75d802","#72d202"], +}; + +elements.pear = { + color: ["#669900","#669933","#9ec419"], + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", + breakInto: "juice", + breakIntoColor: ["#c8e39e","#99cc99"], +}; + +elements.purpleberry = { + color: ["#8b04a8","#a236b9","#b968cb"], + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", + breakInto: "juice", + breakIntoColor: ["#c08cc3","#e49cc2"], +}; + +elements.yellowberry = { + color: ["#ffe505","#fffb05","#fdfa72"], + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", + breakInto: "juice", + breakIntoColor: ["#fffec8","#fffdaf"], +}; + +elements.pomegranate = { + color: ["#950000","#c93434","#df5555","#8f163f","#6d0606"], + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", + breakInto: "juice", + breakIntoColor: ["#ee717f","#e94254"], +}; + +elements.guava = { + color: ["#1ae132","#44e788","#0a7a22"], + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", + breakInto: "juice", + breakIntoColor: ["#ff5a76","#ff8fa2"], +}; + +elements.raspberry = { + color: ["#f90064","#980036","#60081a"], + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", + breakInto: "juice", + breakIntoColor: ["#f23a72","#fb79a0"], +}; + +elements.gooseberry = { + color: ["#63041c","#760024","#81052a"], + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", + breakInto: "juice", + breakIntoColor: ["#8b0031","#920436"], +}; + +elements.fig = { + color: ["#1d1d3b","#2a2854","#402459"], + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", + breakInto: "juice", + breakIntoColor: ["#ff4a4a","#ea3838"], +}; + +elements.durian = { + color: ["#b07939","#c09461","#d0af88"], + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", + breakInto: "juice", + breakIntoColor: ["#faffaf","#fbffbf"], +}; + +elements.passionfruit = { + color: ["#9d3385","#b15c9d","#c485b6"], + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", + breakInto: "juice", + breakIntoColor: ["#ffdede","#ffe4e4"], +}; + +elements.starfruit = { + color: ["#d5eb00","#ddef33","#e6f366"], + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", + breakInto: "juice", + breakIntoColor: ["#f2d553","#f5dd75"], +}; + +elements.rambutan = { + color: ["#ff4a4a","#ea3838"], + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", + breakInto: "juice", + breakIntoColor: ["#faffaf","#fbffbf"], +}; + +elements.nance = { + color: ["#ffff00","#ffff33"], + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", + breakInto: "juice", + breakIntoColor: ["#ffff66","#ffff99"], +}; + +elements.nectarine = { + color: ["#c92c0f","#cc4c58","#ea6161"], + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", + breakInto: "juice", + breakIntoColor: ["#ffbd8b","#ffdbc0"], +}; + +elements.loganberry = { + color: ["#db1515","#e53939","#fd5f5f"], + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", + breakInto: "juice", + breakIntoColor: ["#ff8f8f","#ffb7b7"], +}; + +elements.currant = { + color: ["#ff1828","#ff505c"], + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", + breakInto: "juice", + breakIntoColor: ["#ff878f","#ffbcc0"], +}; + +elements.sprite_cranberry = { + color: ["#65000f","#89001c","#b40024"], + behavior: behaviors.LIQUID, + category: "liquids", + state: "solid", +}; + elements.mint = { color: ["#72e88d","#53bd6c"], behavior: behaviors.STURDYPOWDER, @@ -413,9 +829,55 @@ elements.mint = { state: "solid", reactions: { "cream": { elem1: null, elem2: "toorhpaste" }, + "ice_cream": { elem1: null, elem2: "mint_ice_cream" }, } }; +elements.broccoli = { + color: ["#004909","#046b00","#0b8500"], + behavior: behaviors.POWDER, + category: "food", + state: "solid", + breakInto: "juice", + breakIntoColor: ["#00b215","#0b8500"], +}; + +elements.squash = { + color: ["#f2ab15","#f5bc44","#f7cd73"], + behavior: behaviors.POWDER, + category: "food", + state: "solid", + breakInto: "juice", + breakIntoColor: ["#efbe79","#ffd599"], +}; + +elements.zuchinni = { + color: ["#375822","#58704a","#73816a"], + behavior: behaviors.POWDER, + category: "food", + state: "solid", + breakInto: "juice", + breakIntoColor: ["#80a568","#a3c88c"], +}; + +elements.olive = { + color: ["#445626","#52682d","#6e8b3d"], + behavior: behaviors.POWDER, + category: "food", + state: "solid", + breakInto: "juice", + breakIntoColor: ["#d1ef71","#c1d64d"], +}; + +elements.eggplant = { + color: ["#490b43","#30093a","#23033a"], + behavior: behaviors.POWDER, + category: "food", + state: "solid", + breakInto: "juice", + breakIntoColor: ["#674ea7","#351c75"], +}; + elements.potassium = { color: "#a3a333", behavior: behaviors.POWDER, @@ -426,12 +888,23 @@ elements.potassium = { elements.onion = { color: ["#62121b","#a92940","#c04b65","#d8699e"], - behavior: behaviors.STURDYPOWDER, + behavior: + [ + ["XX","CH:onion>stench","XX"], + ["XX","XX","XX"], + ["XX","M1","XX"] + ], category: "food", state: "solid", breakInto: ["stench", null, null, null, null], }; +elements.cinnamon = { + color: ["#cda67a","#986544","#6a462f"], + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", +}; elements.garlic = { color: ["#f7f3e1","#f6f3c3","#f0e6bd"], @@ -449,6 +922,37 @@ elements.garlic_clove = { hidden: "TRUE", }; +elements.asparagus = { + color: ["#77ab56","#92bc78","#adcd9a"], + density: 675, + behavior: behaviors.POWDER, + category: "food", + state: "solid", + tempHigh: 173, + stateHigh: "roasted_asparagus", + burnInto: "ash", + burn: 10, + burnTime: 300, + breakInto: "juice", + breakIntoColor: "#c9ddbb", +}; + +elements.roasted_asparagus = { + color: ["#849273","#9aa58d","#c0cbb3"], + density: 675, + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", + hidden: "TRUE", + breakInto: "juice", + breakIntoColor: ["#849273","#9aa58d","#c0cbb3"], + tempHigh: 400, + stateHigh: "ash", + burnInto: "ash", + burn: 20, + burnTime: 300, +}; + elements.oreo = { color: "#120600", behavior: behaviors.STURDYPOWDER, @@ -467,6 +971,25 @@ elements.poison_oreo = { hidden: "TRUE", }; +elements.cream_coffee = { + color: ["#dbc1ac","#967259","#634832"], + behavior: behaviors.LIQUID, + category: "food", + state: "solid", + hidden: "TRUE", + tempLow: 0, + stateLow: "coffee_ice", + tempHigh: 130, + stateHigh: ["steam","fragrance"], +}; + +elements.seafoam = { + color: ["#a3c1ad","#a0d6b4","#5f9ea0","#317873","#49796b"], + behavior: behaviors.LIQUID, + category: "life", + state: "solid", +}; + elements.toorhpaste = { color: ["#31ffe0","#65ffe8","#97ffef","#c9fff7","#f3fffd"], @@ -502,7 +1025,6 @@ elements.toast.reactions.chocolate = { elem1: "oreo", elem2: null } if (!elements.ketchup.reactions) elements.ketchup.reactions = {}; elements.ketchup.reactions.mayo = { elem1: "rose_sauce", elem2: null } - if (!elements.bread.reactions) elements.bread.reactions = {}; elements.bread.reactions.rotten_cheese = { elem1: "mold", elem2: null } @@ -541,6 +1063,8 @@ elements.baked_batter.reactions.mud = { elem1: "mold", elem2: null } elements.sugar_ice.breakInto = "smashed_ice" +elements.algae.breakInto = "seafoam" + elements.battery.breakInto = "battery_acid" elements.herb.breakInto = "seasoning" @@ -568,6 +1092,81 @@ elements.ice_cream.reactions.kiwi = { elem1: "fruit_ice_cream", elem2: null } if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; elements.ice_cream.reactions.green_grape = { elem1: "fruit_ice_cream", elem2: null } +if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; +elements.ice_cream.reactions.blood_orange = { elem1: "fruit_ice_cream", elem2: null } + +if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; +elements.ice_cream.reactions.canary_melon = { elem1: "fruit_ice_cream", elem2: null } + +if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; +elements.ice_cream.reactions.honeydew_melon = { elem1: "fruit_ice_cream", elem2: null } + +if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; +elements.ice_cream.reactions.cranberry = { elem1: "fruit_ice_cream", elem2: null } + +if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; +elements.ice_cream.reactions.pitaya = { elem1: "fruit_ice_cream", elem2: null } + +if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; +elements.ice_cream.reactions.coconut = { elem1: "fruit_ice_cream", elem2: null } + +if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; +elements.ice_cream.reactions.cloudberry = { elem1: "fruit_ice_cream", elem2: null } + +if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; +elements.ice_cream.reactions.crabapple = { elem1: "fruit_ice_cream", elem2: null } + +if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; +elements.ice_cream.reactions.cactus_fruit = { elem1: "fruit_ice_cream", elem2: null } + +if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; +elements.ice_cream.reactions.pear = { elem1: "fruit_ice_cream", elem2: null } + +if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; +elements.ice_cream.reactions.purpleberry = { elem1: "fruit_ice_cream", elem2: null } + +if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; +elements.ice_cream.reactions.yellowberry = { elem1: "fruit_ice_cream", elem2: null } + +if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; +elements.ice_cream.reactions.pomegranate = { elem1: "fruit_ice_cream", elem2: null } + +if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; +elements.ice_cream.reactions.guava = { elem1: "fruit_ice_cream", elem2: null } + +if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; +elements.ice_cream.reactions.raspberry = { elem1: "fruit_ice_cream", elem2: null } + +if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; +elements.ice_cream.reactions.gooseberry = { elem1: "fruit_ice_cream", elem2: null } + +if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; +elements.ice_cream.reactions.fig = { elem1: "fruit_ice_cream", elem2: null } + +if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; +elements.ice_cream.reactions.durian = { elem1: "fruit_ice_cream", elem2: null } + +if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; +elements.ice_cream.reactions.passionfruit = { elem1: "fruit_ice_cream", elem2: null } + +if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; +elements.ice_cream.reactions.starfruit = { elem1: "fruit_ice_cream", elem2: null } + +if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; +elements.ice_cream.reactions.rambutan = { elem1: "fruit_ice_cream", elem2: null } + +if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; +elements.ice_cream.reactions.nance = { elem1: "fruit_ice_cream", elem2: null } + +if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; +elements.ice_cream.reactions.nectarine = { elem1: "fruit_ice_cream", elem2: null } + +if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; +elements.ice_cream.reactions.loganberry = { elem1: "fruit_ice_cream", elem2: null } + +if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; +elements.ice_cream.reactions.currant = { elem1: "fruit_ice_cream", elem2: null } + if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; elements.ice_cream.reactions.chocolate = { elem1: "chocolate_ice_cream", elem2: null } @@ -606,3 +1205,85 @@ elements.yogurt.reactions.chocolate_sauce = { elem1: "chocolate_yogurt", elem2: if (!elements.yogurt.reactions) elements.yogurt.reactions = {}; elements.yogurt.reactions.melted_chocolate = { elem1: "chocolate_yogurt", elem2: null } + +if (!elements.yogurt.reactions) elements.yogurt.reactions = {}; +elements.yogurt.reactions.blood_orange = { elem1: "fruit_yogurt", elem2: null } + +if (!elements.yogurt.reactions) elements.yogurt.reactions = {}; +elements.yogurt.reactions.canary_melon = { elem1: "fruit_yogurt", elem2: null } + +if (!elements.yogurt.reactions) elements.yogurt.reactions = {}; +elements.yogurt.reactions.honeydew_melon = { elem1: "fruit_yogurt", elem2: null } + +if (!elements.yogurt.reactions) elements.yogurt.reactions = {}; +elements.yogurt.reactions.cranberry = { elem1: "fruit_yogurt", elem2: null } + +if (!elements.yogurt.reactions) elements.yogurt.reactions = {}; +elements.yogurt.reactions.pitaya = { elem1: "fruit_yogurt", elem2: null } + +if (!elements.yogurt.reactions) elements.yogurt.reactions = {}; +elements.yogurt.reactions.coconut = { elem1: "fruit_yogurt", elem2: null } + +if (!elements.yogurt.reactions) elements.yogurt.reactions = {}; +elements.yogurt.reactions.cloudberry = { elem1: "fruit_yogurt", elem2: null } + +if (!elements.yogurt.reactions) elements.yogurt.reactions = {}; +elements.yogurt.reactions.crabapple = { elem1: "fruit_yogurt", elem2: null } + +if (!elements.yogurt.reactions) elements.yogurt.reactions = {}; +elements.yogurt.reactions.cactus_fruit = { elem1: "fruit_yogurt", elem2: null } + +if (!elements.yogurt.reactions) elements.yogurt.reactions = {}; +elements.yogurt.reactions.pear = { elem1: "fruit_yogurt", elem2: null } + +if (!elements.yogurt.reactions) elements.yogurt.reactions = {}; +elements.yogurt.reactions.purpleberry = { elem1: "fruit_yogurt", elem2: null } + +if (!elements.yogurt.reactions) elements.yogurt.reactions = {}; +elements.yogurt.reactions.yellowberry = { elem1: "fruit_yogurt", elem2: null } + +if (!elements.yogurt.reactions) elements.yogurt.reactions = {}; +elements.yogurt.reactions.pomegranate = { elem1: "fruit_yogurt", elem2: null } + +if (!elements.yogurt.reactions) elements.yogurt.reactions = {}; +elements.yogurt.reactions.guava = { elem1: "fruit_yogurt", elem2: null } + +if (!elements.yogurt.reactions) elements.yogurt.reactions = {}; +elements.yogurt.reactions.raspberry = { elem1: "fruit_yogurt", elem2: null } + +if (!elements.yogurt.reactions) elements.yogurt.reactions = {}; +elements.yogurt.reactions.gooseberry = { elem1: "fruit_yogurt", elem2: null } + +if (!elements.yogurt.reactions) elements.yogurt.reactions = {}; +elements.yogurt.reactions.fig = { elem1: "fruit_yogurt", elem2: null } + +if (!elements.yogurt.reactions) elements.yogurt.reactions = {}; +elements.yogurt.reactions.durian = { elem1: "fruit_yogurt", elem2: null } + +if (!elements.yogurt.reactions) elements.yogurt.reactions = {}; +elements.yogurt.reactions.passionfruit = { elem1: "fruit_yogurt", elem2: null } + +if (!elements.yogurt.reactions) elements.yogurt.reactions = {}; +elements.yogurt.reactions.starfruit = { elem1: "fruit_yogurt", elem2: null } + +if (!elements.yogurt.reactions) elements.yogurt.reactions = {}; +elements.yogurt.reactions.rambutan = { elem1: "fruit_yogurt", elem2: null } + +if (!elements.yogurt.reactions) elements.yogurt.reactions = {}; +elements.yogurt.reactions.nance = { elem1: "fruit_yogurt", elem2: null } + +if (!elements.yogurt.reactions) elements.yogurt.reactions = {}; +elements.yogurt.reactions.nectarine = { elem1: "fruit_yogurt", elem2: null } + +if (!elements.yogurt.reactions) elements.yogurt.reactions = {}; +elements.yogurt.reactions.loganberry = { elem1: "fruit_yogurt", elem2: null } + +if (!elements.yogurt.reactions) elements.yogurt.reactions = {}; +elements.yogurt.reactions.currant = { elem1: "fruit_yogurt", elem2: null } + + +//dev notes area below +/* +uhhhh i just finished changing every color in the mod and now i have enough hex codes for a lifetime +oh god i added like 2 million new fruits +*/ diff --git a/mods/sbstuff.js b/mods/sbstuff.js index c02d12ef..85f2cbf9 100644 --- a/mods/sbstuff.js +++ b/mods/sbstuff.js @@ -12,13 +12,13 @@ elements.burnt_rice = { }; elements.rice = { + viscosity: 10000, isFood: true, - burnInto: "burnt_rice", density: 696, tempHigh: 232, stateHigh: "burnt_rice", color: "#d1d1d1", - behavior: behaviors.POWDER, + behavior: behaviors.LIQUID, category: "food", state: "liquid", }; @@ -87,6 +87,8 @@ elements.dark_oak = { behavior: behaviors.WALL, category: "solids", state: "solid", + burn: 5, + burnTime: 300, }; elements.dark_oak_wood = { @@ -96,6 +98,8 @@ elements.dark_oak_wood = { behavior: behaviors.SUPPORT, category: "land", state: "solid", + burn: 5, + burnTime: 300, }; elements.avocado = { @@ -233,10 +237,9 @@ elements.lemon = { behavior: behaviors.STURDYPOWDER, category: "food", state: "liquid", -} - -elements.lemon.reactions = { - "juice": { elem1: null, elem2: "lemonade" } + reactions: { + "juice": {elem1: "lemonade", elem2: null}, + } }; elements.lemonade = { @@ -312,7 +315,7 @@ elements.cooked_ramen = { color: "#ada24e", behavior: behaviors.SUPPORT, category: "food", - state: "liquid", + state: "solid", } elements.cereal = { @@ -335,17 +338,6 @@ elements.sushi = { state: "liquid", }; -elements.indestructible_wall = { - noMix: true, - tempHigh: 99999999999999999999999999999999, - stateHigh: "void", - hardness: 1, - color: "#7a7a7a", - behavior: behaviors.WALL, - category: "solids", - state: "solid", -}; - elements.diamond_ore = { tempHigh: 1000, stateHigh: "ash", @@ -666,6 +658,16 @@ elements.radioactive_toast = { state: "liquid", }; +elements.radioactive_beans = { + hidden: true, + tempHigh: 1000, + stateHigh: "ash", + color: ["#34541f", "#994926"], + behavior: behaviors.RADPOWDER, + category: "food", + state: "liquid", +}; + elements.shampoo = { viscosity: 1000, density: 500, @@ -847,8 +849,8 @@ elements.vanilla_ice_cream = { category: "food", state: "liquid", reactions: { - "chocolate": { elem1: null, elem2: "chocolate_vanilla_ice_cream" }, - "melted_chocolate": { elem1: null, elem2: "chocolate_vanilla_ice_cream" }, + "chocolate": { elem1: null, elem2: "chocolate_vanilla_ice_cream", tempMin: 0 }, + "melted_chocolate": { elem1: null, elem2: "chocolate_vanilla_ice_cream", tempMin: 0 }, } }; @@ -969,7 +971,7 @@ elements.cocoa_seeds = { color: "#cfc7ab", behavior: behaviors.SUPPORT, category: "food", - state: "liquid", + state: "solid", }; elements.pineapple = { @@ -978,7 +980,7 @@ elements.pineapple = { color: "#ccbe3b", behavior: behaviors.SUPPORT, category: "food", - state: "liquid", + state: "solid", }; elements.broccoli = { @@ -997,7 +999,7 @@ elements.pepperoni = { color: "#8f2e11", behavior: behaviors.SUPPORT, category: "food", - state: "liquid", + state: "solid", }; elements.apple = { @@ -1030,7 +1032,7 @@ elements.cucumber = { color: "#235214", behavior: behaviors.SUPPORT, category: "food", - state: "liquid", + state: "solid", }; elements.olive = { @@ -1104,9 +1106,11 @@ elements.cardboard = { tempHigh: 500, stateHigh: "ash", color: "#7d4725", - behavior: behaviors.STURDYPOWDER, + behavior: behaviors.SUPPORT, category: "land", - state: "liquid", + state: "solid", + burn: 5, + burnTime: 200, }; elements.carrot = { @@ -1205,7 +1209,7 @@ elements.peeper = { state: "solid", }; -elements.dollar = { +elements.robux = { hidden: true, viscosity: 10000, tempHigh: 500, @@ -1225,43 +1229,206 @@ elements.ruby = { state: "solid", }; +elements.mosquito = { + tempHigh: 2000, + stateHigh: "ash", + color: "#2b2421", + behavior: behaviors.FLY, + category: "life", + state: "liquid", +}; + +elements.bug_spray = { + tempHigh: 2000, + stateHigh: "steam", + color: "#c9d1cb", + behavior: behaviors.DGAS, + category: "gases", + state: "gas", + reactions: { + "mosquito": { elem1: null, elem2: null }, + "ant": { elem1: null, elem2: null }, + "fly": { elem1: null, elem2: null }, + "stink_bug": { elem1: null, elem2: null }, + } +}; + +elements.heavy_water = { + tempLow: 0, + stateLow: "ice", + tempHigh: 150, + stateHigh: "steam", + color: "#447ecf", + behavior: behaviors.LIQUID_OLD, + category: "liquids", + state: "liquid", +}; + +elements.blood_orange = { + hidden: true, + tempHigh: 300, + stateHigh: ["ash", "steam"], + color: ["#f06c0e", "#bd1000"], + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "liquid", +}; + +elements.orange = { + tempHigh: 300, + stateHigh: "steam", + color: "#f06c0e", + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "liquid", + reactions: { + "blood": { elem1: null, elem2: "blood_orange", chance: 0.01 }, + } +}; + +elements.cranberry = { + viscosity: 10000, + hidden: true, + tempHigh: 300, + stateHigh: "steam", + color: "#ad2a1d", + behavior: behaviors.LIQUID, + category: "food", + state: "liquid", +}; + +elements.yoyleberries = { + desc: "who the fuck requested yoylecake?", + viscosity: 10000, + hidden: true, + tempHigh: 300, + stateHigh: "steam", + color: "#630094", + behavior: behaviors.LIQUID, + category: "food", + state: "liquid", + reactions: { + "batter": { elem1: null, elem2: "yoylecake" }, + } +}; + +elements.yoylecake = { + hidden: true, + tempHigh: 500, + stateHigh: "steam", + color: ["#9404db", "#28b82b"], + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "liquid", +}; + +elements.banana = { + tempHigh: 300, + stateHigh: "ash", + color: "#f06c0e", + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "liquid", +}; + +elements.cool_ray = { +color: ["#0cdaed","#baf9ff"], + tick: function(pixel) { + var x = pixel.x; + for (var y = pixel.y; y < height; y++) { + if (outOfBounds(x, y)) { + break; + } + if (isEmpty(x, y)) { + if (Math.random() > 0.05) { continue } + createPixel("flash", x, y); + pixelMap[x][y].color = "#0cdaed"; + pixelMap[x][y].temp = 0; + } + else { + if (elements[pixelMap[x][y].element].isGas) { continue } + if (elements[pixelMap[x][y].element].id === elements.heat_ray.id) { break } + pixelMap[x][y].temp += -10; + pixelTempCheck(pixelMap[x][y]); + break; + } + } + deletePixel(pixel.x, pixel.y); + }, + temp: 0, + category: "energy", + state: "gas", + excludeRandom: true, + noMix: true +}; + +elements.flood_disaster = { + color: "#5397c2", + behavior: [ + "XX|XX|XX", + "XX|EX:10>flood_disaster,water,water,water,water,water,water,water,water,water,water,water,water%25 AND DL%10|XX", + "XX|XX|XX", + ], + category: "weapons", + state: "solid", + density: 1300, + hidden: true, + excludeRandom: true, + maxSize: 1, + cooldown: defaultCooldown +}; + +elements.uranium_ice_cream = { + viscosity: 10000, + tempHigh: 150, + stateHigh: "steam", + color: ["#cee6cc", "#1bab11", "#305e2d", "#5a7059"], + behavior: [ + "XX|CR:radiation%2|XX", + "M2|XX|M2", + "M2|M1|M2", + ], + category: "food", + state: "liquid", +}; + elements.incinerate.category = "tools", elements.cook.category = "tools", elements.room_temp.category = "tools", elements.beans.tempHigh = 349, -elements.beans.stateHigh = "burnt_beans", +elements.beans.stateHigh = "burnt_beans" -elements.radiation.reactions = { - "meat": { elem1: null, elem2: "radioactive_meat" }, - "grape": { elem1: null, elem2: "radioactive_grape" }, - "egg": { elem1: null, elem2: "radioactive_egg" }, - "potato": { elem1: null, elem2: "radioactive_potato" }, - "water": { elem1: null, elem2: "radioactive_water" }, - "chocolate": { elem1: null, elem2: "radioactive_chocolate" }, - "milk": { elem1: null, elem2: "radioactive_milk" }, - "bread": { elem1: null, elem2: "radioactive_bread" }, - "toast": { elem1: null, elem2: "radioactive_toast" }, -}; +if (!elements.radiation.reactions) elements.egg.reactions = {}; +elements.radiation.reactions.meat = { elem1: null, elem2: "radioactive_meat" }, +elements.radiation.reactions.grape = { elem1: null, elem2: "radioactive_grape" }, +elements.radiation.reactions.egg = { elem1: null, elem2: "radioactive_egg" }, +elements.radiation.reactions.potato = { elem1: null, elem2: "radioactive_potato" }, +elements.radiation.reactions.water = { elem1: null, elem2: "radioactive_water" }, +elements.radiation.reactions.chocolate = { elem1: null, elem2: "radioactive_chocolate" }, +elements.radiation.reactions.milk = { elem1: null, elem2: "radioactive_milk" }, +elements.radiation.reactions.bread = { elem1: null, elem2: "radioactive_bread" }, +elements.radiation.reactions.toast = { elem1: null, elem2: "radioactive_toast" }, +elements.radiation.reactions.beans = { elem1: null, elem2: "radioactive_beans" } -elements.egg.reactions = { - "water": { elem1: "boiled_egg", tempMin: 100 }, - "steam": { elem1: "boiled_egg", tempMin: 100 }, - "melted_chocolate": { elem1: null, elem2: "chocolate_egg" }, - "chocolate": { elem1: null, elem2: "chocolate_egg", chance: 0.1 }, -}; +if (!elements.egg.reactions) elements.egg.reactions = {}; +elements.egg.reactions.water = {elem1: "boiled_egg", tempMin: 100}, +elements.egg.reactions.steam = {elem1: "boiled_egg", tempMin: 100}, +elements.egg.reactions.melted_chocolate = {elem1: "chocolate_egg"}, +elements.egg.reactions.chocolate = {elem1: "chocolate_egg", chance: 0.1} -elements.potato.reactions = { - "water": { elem1: "fries", tempMin: 100, chance: 50 }, - "water": { elem1: "chips", tempMin: 100, chance: 50 }, - "steam": { elem1: "fries", tempMin: 100, chance: 50 }, - "steam": { elem1: "fries", tempMin: 100, chance: 50 }, -}; +if (!elements.potato.reactions) elements.potato.reactions = {}; +elements.potato.reactions.water = {elem1: "fries", tempMin: 100, chance:50}, +elements.potato.reactions.steam = {elem1: "fries", tempMin: 100, chance:50}, +elements.potato.reactions.water = {elem1: "chips", tempMin: 100, chance:50}, +elements.potato.reactions.steam = {elem1: "fries", tempMin: 100, chance:50} -elements.water.reactions = { - "cocaine": { elem1: null, elem2: "solid_water", chance: 0.1 } -}; +if (!elements.water.reactions) elements.water.reactions = {}; +elements.water.reactions.cocaine = { elem1: "solid_water", elem2: null } -elements.paper.reactions = { - "bless": { elem1: null, elem2: "dollar", chance: 0.1 }, -}; +if (!elements.paper.reactions) elements.paper.reactions = {}; +elements.paper.reactions.bless = { elem1: "robux", elem2: null, chance: 0.001 } + +if (!elements.uranium.reactions) elements.uranium.reactions = {}; +elements.uranium.reactions.ice_cream = {elem1: "uranium_ice_cream", elem2: null}, +elements.uranium.reactions.cream = {elem1: "uranium_ice_cream", elem2: null} diff --git a/mods/volcanic_expansion.js b/mods/volcanic_expansion.js index 8dd3eb56..423174e8 100644 --- a/mods/volcanic_expansion.js +++ b/mods/volcanic_expansion.js @@ -47,7 +47,7 @@ elements.pumice = { stateHigh: "magma", hardness: 0.5, }, -elements.magma.stateLow = ["basalt","basalt","basalt","pumice","doritoite","basalt","rock","obsidian_shard","diorite","andesite"], +elements.magma.stateLow = ["basalt","basalt","basalt","pumice","basalt","rock","obsidian_shard","diorite","andesite","basalt","basalt","basalt","pumice","basalt","rock","obsidian_shard","diorite","andesite","doritoite"], elements.eruption = { color: ["#ff6f00","#ff8c00","#ff4d00"], behavior: [ @@ -62,7 +62,7 @@ elements.magma.stateLow = ["basalt","basalt","basalt","pumice","doritoite","basa }, elements.andesite = { color: "#777C7C", - behavior: behaviors.SOLID, + behavior: behaviors.POWDER, category: "land", state: "solid", density: 2771, @@ -71,7 +71,7 @@ elements.andesite = { }, elements.diorite = { color: ["#d4d4d4","#2b2b2b"], - behavior: behaviors.SOLID, + behavior: behaviors.POWDER, category: "land", state: "solid", density: 2900, @@ -89,5 +89,6 @@ elements.andesite = { reactions: { "head": { elem1: "null" }, }, - isFood: true + isFood: true, + hidden: true }; \ No newline at end of file