diff --git a/mod-list.html b/mod-list.html index 06e0a360..7e754a4c 100644 --- a/mod-list.html +++ b/mod-list.html @@ -202,6 +202,7 @@ ticking_temp_stuff.jsAdds more heaters and coolersAlice video.jsAdds a video playerggod waterspout.jsAdds back the old Water Spoutmollthecoder +WhisperingTheory.jsAdds powder and gas variant of heater and coolerkaeud Weapons aircrafts.jsAdds aircraft and aircraft part pixelsJayd @@ -243,7 +244,7 @@ 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 kopalstuff.jsAdds creatures, spirits, DNA, foods, and moreDaviStudios -lost_souls.jsAdds souls and related elements, the mod can also be found https://github.com/HACKERPRO908/lost_souls.jspixelegend4, SquareScreamYT, salmonfishy +lost_souls.jsAdds souls and related elements, the mod can also be found on Githubpixelegend4, SquareScreamYT, salmonfishy 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 mobs.jsAdds Creepers, Zombies, and SkeletonsAlice nocancer.jsRemoves cancer from the game one tick after it is createdmollthecoder @@ -282,6 +283,7 @@ sus.jsAdds an Among Us crewmateNv7 triggerable_random_powders.jsAdds powders with different abilities, such as heating and coolingAlice troll.jsAdds various dumb elements that iterate randomly on the entire screenAlice +WhisperingTheory.jsAdds powder and gas variant of heater and coolerkaeud Visual Effects acid_and_shapes.jsWeird visual effects. Enable in SettingsAlice diff --git a/mods/CoCpu.js b/mods/CoCpu.js new file mode 100644 index 00000000..f9ddbc15 --- /dev/null +++ b/mods/CoCpu.js @@ -0,0 +1,76 @@ +elements.carbon_monoxide = { + color: "#b5b5b5", + behavior: behaviors.GAS, + behaviorOn: [ + "XX|XX|XX", + "XX|CH:fire|XX", + "XX|XX|XX", + ], + category: "gases", + state: "gas", + density: 1.14, + burn: 75, + tempHigh: 609, + stateHigh: "fire", + tempLow: -192, + stateLow: "liquid_carbon_monoxide", + burntime: 5, + fireColor: "#ebba34", + reactions: { + "head": { elem2:"rotten_meat", chance:0.5 }, + "body": { elem2:"rotten_meat", chance:0.5 }, + "human": { elem2:"rotten_meat", chance:0.5 }, + } +}; +elements.liquid_carbon_monoxide = { + color: "#b5b5b5", + behavior: behaviors.LIQUID, + category: "liquids", + state: "liquid", + density: 1.14, + tempHigh: 190, + tempLow: -199, + stateLow: "ice_carbon_monoxide", + stateHigh: "carbon_monoxide", + temp: -192, +}; +elements.ice_carbon_monoxide = { + color: "#b5b5b5", + behavior: behaviors.WALL, + category: "solids", + state: "solid", + density: 1.14, + tempHigh: -192, + stateHigh: "liquid_carbon_monoxide", + temp: -199, +}; +elements.cpu = { + color: "#575757", + behavior: behaviors.SOLID, + category: "machines", + state: "solid", + density: 75, + tempHigh: 1414, + stateHigh: "explosion", +reactions: { + "virus": { elem1 : null , elem2:"malware", chance:0.9 }, + "battery": { elem2:"computer" }, + + } +}; + +elements.computer = { + color: "#2b2b2a", + behavior: behaviors.SOLID, + category: "machines", + state: "solid", + density: 8908, + tempHigh: 1414, + stateHigh: "explosion", + conduct: 1, + reactions: { + "virus": { elem1 : null , elem2:"malware", chance:0.9 }, + "water": { elem1: null , elem2: "electric" }, + } +}; + diff --git a/mods/WhisperingTheory.js b/mods/WhisperingTheory.js index ad41280b..a3a6bb02 100644 --- a/mods/WhisperingTheory.js +++ b/mods/WhisperingTheory.js @@ -1,8 +1,31 @@ -/* TODO -- [x] powder heater & coller -- [x] block roomtemp -- [x] no smoke from cold fire -*/ +elements.roomtemper = { + color: "#29632f", + behavior: behaviors.WALL, + tick: function(pixel) { + // from nouserthings.js <3 + for (var i = 0; i < squareCoords.length; i++) { + var coord = squareCoords[i]; + var x = pixel.x+coord[0]; + var y = pixel.y+coord[1]; + if (!isEmpty(x,y, true)) { + if(pixelMap[x][y].temp < -230) { + pixelMap[x][y].temp = (pixelMap[x][y].temp + 7) + } else if(pixelMap[x][y].temp > 270) { + pixelMap[x][y].temp = (pixelMap[x][y].temp - 7) + } else if (pixelMap[x][y].temp < 20) { + pixelMap[x][y].temp = (pixelMap[x][y].temp + 2) + } else if (pixelMap[x][y].temp > 20) { + pixelMap[x][y].temp = (pixelMap[x][y].temp - 2) + } + } + } + }, + category:"machines", + state:"solid", + insulate: true, + noMix: true, + movable: false, +}; elements.powder_heater = { category: "machines", @@ -48,36 +71,52 @@ elements.powder_freeze = { insulate: true, }; -elements.roomtemper = { - color: "#29632f", - behavior: behaviors.WALL, - tick: function(pixel) { - for (var i = 0; i < squareCoords.length; i++) { - var coord = squareCoords[i]; - var x = pixel.x+coord[0]; - var y = pixel.y+coord[1]; - if (!isEmpty(x,y, true)) { - if(pixelMap[x][y].temp < -230) { - pixelMap[x][y].temp = (pixelMap[x][y].temp + 7) - } else if(pixelMap[x][y].temp > 270) { - pixelMap[x][y].temp = (pixelMap[x][y].temp - 7) - } else if (pixelMap[x][y].temp < 20) { - pixelMap[x][y].temp = (pixelMap[x][y].temp + 2) - } else if (pixelMap[x][y].temp > 20) { - pixelMap[x][y].temp = (pixelMap[x][y].temp - 2) - } - } - } - }, - category:"machines", - state:"solid", - insulate: true, - noMix: true, - movable: false, -}, - elements.cold_fire.behavior = [ "M1|M1|M1", "M2|DL%8|M2", "XX|M2|XX", -] +]; + +elements.gas_heater = { + color: "#881111", + behavior: [ + "M2|M1 AND HT:2|M2", + "M1 AND HT:2|XX|M1 AND HT:2", + "M2|M1 AND HT:2 | M2", + ], + category: "machines", + insulate: true, +}; + +elements.gas_superheater = { + color: "#dd1111", + behavior: [ + "M2|M1 AND HT:10|M2", + "M1 AND HT:10|XX|M1 AND HT:10", + "M2|M1 AND HT:10|M2", + ], + category: "machines", + insulate: true, +}; + +elements.gas_cooler = { + color: "#111188", + behavior: [ + "M2|M1 AND CO:2|M2", + "M1 AND CO:2|XX|M1 AND CO:2", + "M2|M1 AND CO:2|M2", + ], + category: "machines", + insulate: true, +}; + +elements.gas_freezer = { + color: "#1111dd", + behavior: [ + "M2|M1 AND CO:10|M2", + "M1 AND CO:10|XX|M1 AND CO:10", + "M2|M1 AND CO:10|M2", + ], + category: "machines", + insulate: true, +}; diff --git a/mods/aChefsDream.js b/mods/aChefsDream.js index 5330f1df..bae2ab56 100644 --- a/mods/aChefsDream.js +++ b/mods/aChefsDream.js @@ -1,8 +1,8 @@ /* -Created by SquareScreamYT <@918475812884344852> and RealerRaddler <@914371295561535508> -Thanks to Alice <@697799964985786450>, nousernamefound <@316383921346707468>, Adora the Transfem <@778753696804765696> and Fioushemastor <@738828785482203189> for helping :) +Created by SquareScreamYT/sqec <@918475812884344852> +Thanks to RealerRaddler <@914371295561535508>, Alice <@697799964985786450>, nousernamefound <@316383921346707468>, Adora the Transfem <@778753696804765696> and Fioushemastor <@738828785482203189> for helping :) -v1.10.5 +v1.10.8 you can support me at my youtube: https://youtube.com/@sqec @@ -12,6 +12,7 @@ Upcoming Features: - white rice noodles - matcha leaves, powder, tea - cacao pods +- more chocolate, cocoa powder, white chocolate, cocoa butter - agar (makes juice into jelly) - pigs, ham and bacon - garlic @@ -34,6 +35,14 @@ Upcoming Features: - peaches - cucumbers - eggplants +- food coloring +- crabs (they eat coconuts) +- squids +- tofu +- miso +- juice reaction with milk makes average color +- juice reaction with other juices +- jackfruit Changelog (v1.0) - added chickens @@ -98,7 +107,7 @@ Changelog (v1.1) - added knife tool - cuts, peels, etc. pixels - readded potato skin and peeled potato - - changed fried potato recipe from potato to skinned potato\ + - changed fried potato recipe from potato to skinned potato - added pepper - added cake - made by mixing baked batter and cream @@ -342,6 +351,23 @@ Changelog (v1.10.5) +Changelog (v1.10.7) + - added mango milk + + + + +Changelog (v1.10.8) + - added onion powder + - fix carrot plant bug + - added fried rice + - added durians + - added cut durians + - added durian seed, wood, leaves and branches + + + + */ /* @@ -2645,46 +2671,52 @@ elements.lemon_seed = { elements.carrot_seed = { color: "#b08d35", - tick: function(pixel) { + tick: function (pixel) { + if (isEmpty(pixel.x, pixel.y + 1)) { + movePixel(pixel, pixel.x, pixel.y + 1); + } + else { if (Math.random() < 0.1 && pixel.age > 100 && pixel.temp < 100 && pixel.leafgrown == true && pixel.growthpixel == 0) { - if (!outOfBounds(pixel.x,pixel.y+1)) { - var randomNumber1 = Math.round(Math.random()) - pixel.growthpixel = pixel.growthpixel+randomNumber1 - var dirtPixel = pixelMap[pixel.x][pixel.y+1]; + if (!outOfBounds(pixel.x, pixel.y + 1)) { + var randomNumber1 = Math.round(Math.random()); + pixel.growthpixel = pixel.growthpixel + randomNumber1; + 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") { - deletePixel(pixel.x,pixel.y+1); - movePixel(pixel,pixel.x,pixel.y+1); - createPixel("carrot_leaves",pixel.x,pixel.y-1); + deletePixel(pixel.x, pixel.y + 1); + movePixel(pixel, pixel.x, pixel.y + 1); + createPixel("carrot_leaves", pixel.x, pixel.y - 1); pixel.growthpixel++; } } } if (Math.random() < 0.1 && pixel.age > 100 && pixel.temp < 100 && pixel.leafgrown == true && pixel.growthpixel > 0 && pixel.growthpixel < 4) { - if (!outOfBounds(pixel.x,pixel.y+1)) { - var dirtPixel = pixelMap[pixel.x][pixel.y+1]; + 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") { - deletePixel(pixel.x,pixel.y+1); - movePixel(pixel,pixel.x,pixel.y+1); - createPixel("carrot",pixel.x,pixel.y-1); + deletePixel(pixel.x, pixel.y + 1); + movePixel(pixel, pixel.x, pixel.y + 1); + createPixel("carrot", pixel.x, pixel.y - 1); pixel.growthpixel++; } } } - if (!isEmpty(pixel.x,pixel.y+1) && Math.random() > 0.95 && isEmpty(pixel.x-1,pixel.y-1) && isEmpty(pixel.x+1,pixel.y-1) && pixel.leafgrown == false) { + if (!isEmpty(pixel.x, pixel.y + 1) && Math.random() > 0.95 && isEmpty(pixel.x - 1, pixel.y - 1) && isEmpty(pixel.x + 1, pixel.y - 1) && pixel.leafgrown == false) { + 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") { - createPixel("carrot_leaves",pixel.x-1,pixel.y-1); - createPixel("carrot_leaves",pixel.x+1,pixel.y-1); - pixel.leafgrown++ + createPixel("carrot_leaves", pixel.x - 1, pixel.y - 1); + createPixel("carrot_leaves", pixel.x + 1, pixel.y - 1); + pixel.leafgrown = true; } } else if (pixel.age > 150 && pixel.growthpixel == 4 && Math.random() < 0.1) { - changePixel(pixel,"carrot"); + changePixel(pixel, "carrot"); } pixel.age++; + } doDefaults(pixel); }, properties: { - "age":0, + "age": 0, "growthpixel": 0, "leafgrown": false }, @@ -2705,6 +2737,7 @@ elements.carrot_seed = { "XX|M1|XX", ], }; + elements.carrot_leaves = { color: ["#61cc3d","#58c234"], behavior: behaviors.WALL, @@ -4645,6 +4678,11 @@ elements.mango_juice = { } } }, + reactions: { + "milk": { elem1: "fruit_milk", elem2: "fruit_milk", chance: 0.35, color1:"#fada70", color2:"#fada70"}, + "coconut_milk": { elem1: "fruit_milk", elem2: "fruit_milk", chance: 0.35, color1:"#fada70", color2:"#fada70"}, + "nut_milk": { elem1: "fruit_milk", elem2: "fruit_milk", chance: 0.35, color1:"#fada70", color2:"#fada70"} + }, behavior: behaviors.LIQUID, category: "liquids", tempHigh: 100, @@ -5101,7 +5139,8 @@ elements.onion = { state: "solid", density: 1050, cutInto: "cut_onion", - cutIntoEmit: "stench", + breakInto:"onion_powder", + //cutIntoEmit: "stench", } elements.cut_onion = { color: "#dcc5ed", @@ -5114,6 +5153,7 @@ elements.cut_onion = { burnInto: "steam", state: "solid", density: 1050, + breakInto:"onion_powder", hidden: true, reactions:{ "nut_oil": {elem1:"fried_onion", tempMin: 70, chance:10}} } @@ -5183,6 +5223,28 @@ elements.onion_seed = { "XX|M1|XX", ], } +elements.onion_powder = { + color: "#e6d8b8", + reactions: { + "stench": { elem2:null, chance:0.25 }, + "steam": { elem2:"fragrance", chance:0.1 }, + "flea": { elem2:null, chance:0.01 }, + "termite": { elem2:null, chance:0.01 }, + "fly": { elem2:null, chance:0.01 }, + "ant": { elem2:null, chance:0.01 }, + "stink_bug": { elem2:null, chance:0.01 }, + }, + behavior: behaviors.POWDER, + tempHigh: 300, + stateHigh: ["fire","smoke","smoke","smoke","ash"], + burn:10, + burnTime:300, + burnInto: ["fire","smoke","smoke","smoke","smoke","smoke","smoke","fragrance"], + category:"food", + state: "solid", + density: 1400, + isFood: true, +} elements.unhusked_rice = { color: ["#c99a42","#b08638","#deb15d"], behavior: [ @@ -5223,7 +5285,8 @@ elements.rice = { isFood: true, density: 1050, reactions:{ - "water":{elem1:"porridge",elem2:"porridge",chance:3,tempMin:70} + "water":{elem1:"porridge",elem2:"porridge",chance:3,tempMin:70}, + "nut_oil":{elem1:"fried_rice",elem2:null,chance:3,tempMin:60} } } elements.cooked_rice = { @@ -5233,13 +5296,12 @@ elements.cooked_rice = { tempHigh: 200, stateHigh: "burnt_rice", burn:65, - burnTime:60, - burnInto: "dead_plant", breakInto: "rice_flour", state: "solid", isFood: true, density: 1050,reactions:{ - "water":{elem1:"porridge",elem2:"porridge",chance:3,tempMin:70} + "water":{elem1:"porridge",elem2:"porridge",chance:3,tempMin:70}, + "nut_oil":{elem1:"fried_rice",elem2:null,chance:3,tempMin:60} }, hidden:true } @@ -5251,12 +5313,26 @@ elements.porridge = { stateHigh: "steam", viscosity: 999, burn:65, - burnTime:60, - burnInto: "dead_plant", state: "solid", isFood: true, density: 1050, } +elements.fried_rice = { + color: "#e8dda0", + behavior: behaviors.POWDER, + category:"food", + tempHigh: 200, + stateHigh: "burnt_rice", + burn:65, + burnTime:60, + state: "solid", + isFood: true, + density: 1050,reactions:{ + "salt":{color1:"#ede5b9",elem2:null,chance:3}, + "monosodium_glutamate":{color1:"#ede5b9",elem2:null,chance:3} + }, + hidden:true +} elements.burnt_rice = { color: "#262217", behavior: behaviors.POWDER, @@ -5265,7 +5341,6 @@ elements.burnt_rice = { stateHigh: "ash", burn:65, burnTime:60, - burnInto: "dead_plant", state: "solid", isFood: true, density: 1050, @@ -6696,3 +6771,141 @@ elements.hot_sauce = { isFood: true } elements.head.reactions.hot_sauce = {elem2:["smoke","fire",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null], chance:3} + + +elements.durian_wood = { + color: "#5e4b23", + 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.durian_branch = { + color: "#5e4b23", + behavior: [ + "CR:durian_leaves,durian_branch%2|CR:durian_leaves,durian_branch%2|CR:durian_leaves,durian_branch%2", + "XX|XX|XX", + "XX|XX|XX", + ], + tempHigh: 100, + stateHigh: "durian_wood", + tempLow: -30, + stateLow: "durian_wood", + category: "life", + burn: 40, + burnTime: 50, + burnInto: ["sap","ember","charcoal"], + hidden: true, + state: "solid", + density: 1500, + hardness: 0.15, + breakInto: ["sap","sawdust"], +} +elements.durian_leaves = { + color: ["#326b25","#2e751e"], + behavior: [ + "XX|XX|XX", + "XX|XX|XX", + "XX|CR:durian%0.1|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.durian = { + color: ["#578524","#5b8f1f"], + behavior: behaviors.POWDER, + category:"food", + tempHigh: 100, + stateHigh: "dead_plant", + burn:65, + burnTime:60, + cutInto: "cut_durian", + state: "solid", + density: 1050, +} + +elements.cut_durian = { + color: ["#e3e04b","#d1cf36"], + behavior: behaviors.STURDYPOWDER, + category:"food", + tempHigh: 100, + stateHigh: ["sugar","steam"], + burn:65, + burnTime:60, + state: "solid", + density: 1050, + hidden: true, + freezeDryInto: "freeze_dried_fruits", + freezeDryIntoColor: "#a19f3b", +} + +elements.durian_seed = { + color: "#a17d3b", + 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 ? "durian_wood" : "durian_branch",pixel.x,pixel.y+1); + } + } + else if (pixel.age > 1000) { + changePixel(pixel,"durian_wood"); + } + 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", + ], +}; diff --git a/mods/a_mod_by_alice.js b/mods/a_mod_by_alice.js index 0b5bda76..bae9e2fd 100644 --- a/mods/a_mod_by_alice.js +++ b/mods/a_mod_by_alice.js @@ -1,5 +1,5 @@ var modName = "mods/../a_mod_by_alice.js" //can't do "alice's mod" because the apostrophe will fuck up code, be too confusing, or both -var dependencies = ["mods/libhooktick.js", "mods/chem.js", "mods/minecraft.js", "mods/Neutronium Mod.js", "mods/CrashTestDummy.js", "mods/fey_and_more.js", "mods/velocity.js", "mods/ketchup_mod.js", "mods/moretools.js", "mods/aChefsDream.js", "mods/nousersthings.js"]; //thanks to mollthecoder, PlanetN9ne, StellarX20 (3), MelecieDiancie, R74n, Nubo318, Sightnado, sqeč, and NoUsernameFound +var dependencies = ["mods/libhooktick.js", "mods/chem.js", "mods/minecraft.js", "mods/Neutronium Mod.js", "mods/CrashTestDummy.js", "mods/fey_and_more.js", "mods/velocity.js", "mods/ketchup_mod.js", "mods/moretools.js", "mods/aChefsDream.js", "mods/nousersthings.js"]; //thanks to mollthecoder, PlanetN9ne, StellarX20 (3), MelecieDiancie, R74n, Nubo318, Sightnado, SquareScreamYT, and NoUsernameFound var dependencyExistence = dependencies.map(x => enabledMods.includes(x)); var allDependenciesExist = dependencyExistence.reduce(function(a,b) { return a && b }); //console.log(allDependenciesExist); diff --git a/mods/elementEraser.js b/mods/elementEraser.js index 5505fa7a..c2c5ceef 100644 --- a/mods/elementEraser.js +++ b/mods/elementEraser.js @@ -15,5 +15,22 @@ elements.element_eraser = { }, category: "tools", excludeRandom: true, - desc: "Input a element to erase only that element." + desc: "Use on pixels to delete specified element." +} +let finalEraseElement2 = null; +elements.exclusive_element_eraser = { + color: "#eeeeee", + onSelect: function() { + var answer = prompt("Please input the element you do not wish to delete. It will not work if you enter multiple element types while paused.",(finalEraseElement2||undefined)); + if (!answer2) { return } + finalEraseElement2 = mostSimilarElement(answer2); + }, + tool: function(pixel) { + if (pixel.element != finalEraseElement2) { + deletePixel(pixel.x,pixel.y) + } + }, + category: "tools", + excludeRandom: true, + desc: "Use on pixels to delete any element except the specified element." } diff --git a/mods/jaydsfunctions.js b/mods/jaydsfunctions.js index 724ace4b..61f0c00c 100644 --- a/mods/jaydsfunctions.js +++ b/mods/jaydsfunctions.js @@ -24,9 +24,9 @@ elements.selective_exploder = { } }, onSelect: function() { - var answer2 = prompt("Please input what element to explode.",(explode1Var||undefined)); - if (!answer2) { return } - explode1Var = answer2; + var answer1 = prompt("Please input what element to explode.",(explode1Var||undefined)); + if (!answer1) { return } + explode1Var = answer1; } }, convert11Var = 0; @@ -41,12 +41,12 @@ elements.converter_tool = { } }, onSelect: function() { - var answer3 = prompt("Please input what should element be converted.",(convert11Var||undefined)); - if (!answer3) { return } - convert11Var = answer3; - var answer4 = prompt("Please input what element to convert into.",(convert22Var||undefined)); - if (!answer4) { return } - convert22Var = answer4; + var answer1 = prompt("Please input what should element be converted.",(convert11Var||undefined)); + if (!answer1) { return } + convert11Var = answer1; + var answer2 = prompt("Please input what element to convert into.",(convert22Var||undefined)); + if (!answer2) { return } + convert22Var = answer2; } }, elements.fast_bomb = { @@ -82,9 +82,9 @@ elements.exclusive_eraser = { } }, onSelect: function() { - var answer5 = prompt("Please input what element shouldn't be erased.",(exclude1Var||undefined)); - if (!answer5) { return } - exclude1Var = answer5; + var answer1 = prompt("Please input what element shouldn't be erased.",(exclude1Var||undefined)); + if (!answer1) { return } + exclude1Var = answer1; } }, elements.tenth_heater = { @@ -99,7 +99,7 @@ elements.tenth_heater = { }, elements.e_tenth_heater = { category: "special", - color: "#ff0000", + color: "#ff3000", behavior: behaviors.WALL, behaviorOn: [ "XX|HT:0.1|XX", @@ -108,4 +108,63 @@ elements.e_tenth_heater = { ], ignore: "tenth_heater", conduct: 1 +}, +paint1Var = 0; +elements.selective_paint_tool = { + color: ["#ff0000","#ff0000","#ff0000","#00ff00","#00ff00","#00ff00","#0000ff","#0000ff","#0000ff"], + tool: function(pixel) { + if (pixel.element === paint1Var) { + if (!shiftDown) { + pixel.color = pixelColorPick(pixel,currentColor) + } + else { + // convert the hex of currentColor to rgb and set it as a string + var rgb = currentColor.replace("#","").match(/.{1,2}/g); + for (var i = 0; i < rgb.length; i++) { + rgb[i] = parseInt(rgb[i],16); + } + pixel.color = "rgb(" + rgb.join(",") + ")" + } + delete pixel.origColor; + } + }, + onSelect: function() { + var answer1 = prompt("Please input what element should be painted.",(paint1Var||undefined)); + if (!answer1) { return } + paint1Var = answer1; + }, + customColor: true, + category: "tools", + canPlace: false, + desc: "Select certain pixels to change color." +}, +paint2Var = 0; +elements.exclusive_paint_tool = { + color: ["#ff0000","#00ff00","#0000ff","#0000ff","#00ff00","#ff0000"], + tool: function(pixel) { + if (pixel.element !== paint2Var) { + if (!shiftDown) { + pixel.color = pixelColorPick(pixel,currentColor) + } + else { + // convert the hex of currentColor to rgb and set it as a string + var rgb = currentColor.replace("#","").match(/.{1,2}/g); + for (var i = 0; i < rgb.length; i++) { + rgb[i] = parseInt(rgb[i],16); + } + pixel.color = "rgb(" + rgb.join(",") + ")" + } + delete pixel.origColor; + } + }, + onSelect: function() { + var answer1 = prompt("Please input what element should be painted.",(paint2Var||undefined)); + if (!answer1) { return } + paint2Var = answer1; + }, + customColor: true, + category: "tools", + canPlace: false, + desc: "Excludes pixels you don't want to color." + //hello } \ No newline at end of file diff --git a/mods/the_snail.js b/mods/the_snail.js new file mode 100644 index 00000000..84435ea6 --- /dev/null +++ b/mods/the_snail.js @@ -0,0 +1,63 @@ +elements.the_snail = { + color: "#5c3104", + behavior: [ + "XX|XX|XX", + "XX|FX%0.25|M2%0.5 AND BO", + "XX|M1|XX", + ], + reactions: { + "salt": { elem1: "quicklime", elem2: null }, + "dirty_water": { elem2:"water", chance:0.05, func:behaviors.FEEDPIXEL }, + "broth": { elem2:"water", chance:0.05, func:behaviors.FEEDPIXEL }, + "tea": { elem2:"water", chance:0.05, func:behaviors.FEEDPIXEL }, + "plant": { elem2:null, chance:0.05, func:behaviors.FEEDPIXEL }, + "evergreen": { elem2:null, chance:0.05, func:behaviors.FEEDPIXEL }, + "cactus": { elem2:null, chance:0.05, func:behaviors.FEEDPIXEL }, + "dead_plant": { elem2:null, chance:0.05, func:behaviors.FEEDPIXEL }, + "worm": { elem2:null, chance:0.01, func:behaviors.FEEDPIXEL }, + "mushroom_spore": { elem2:null, chance:0.05, func:behaviors.FEEDPIXEL }, + "grass": { elem2:null, chance:0.05, func:behaviors.FEEDPIXEL }, + "herb": { elem2:null, chance:0.05, func:behaviors.FEEDPIXEL }, + "lettuce": { elem2:null, chance:0.05, func:behaviors.FEEDPIXEL }, + "grass_seed": { elem2:null, chance:0.05, func:behaviors.FEEDPIXEL }, + "algae": { elem2:null, chance:0.05, func:behaviors.FEEDPIXEL }, + "mushroom_cap": { elem2:null, chance:0.05, func:behaviors.FEEDPIXEL }, + "mushroom_stalk": { elem2:null, chance:0.05, func:behaviors.FEEDPIXEL }, + "mushroom_gill": { elem2:null, chance:0.05, func:behaviors.FEEDPIXEL }, + "lichen": { elem2:null, chance:0.05, func:behaviors.FEEDPIXEL }, + "hyphae": { elem2:"dirt", chance:0.05, func:behaviors.FEEDPIXEL }, + "mycelium": { elem2:"dirt", chance:0.05, func:behaviors.FEEDPIXEL }, + "pumpkin": { elem2:null, chance:0.01, func:behaviors.FEEDPIXEL }, + "calcium": { elem2:null, chance:0.01, func:behaviors.FEEDPIXEL }, + "limestone": { elem2:null, chance:0.001, func:behaviors.FEEDPIXEL }, + "quicklime": { elem2:null, chance:0.01, func:behaviors.FEEDPIXEL }, + "slaked_lime": { elem2:null, chance:0.01, func:behaviors.FEEDPIXEL }, + "paper": { elem2:null, chance:0.01, func:behaviors.FEEDPIXEL }, + "pickle": { elem2:null, chance:0.05, func:behaviors.FEEDPIXEL }, + "grape": { elem2:null, chance:0.01, func:behaviors.FEEDPIXEL }, + "body": { elem1:"crasher" }, + "head": { elem1:"crasher" }, + }, + category: "special", + state: "solid", + hardness: 1, + conduct: 0.16, + alias: "The Immortal Snail", +}; + +elements.crasher = { + onSelect: function() { + logMessage("WARNING: DO NOT PLACE THIS! This WILL crash your game and is only used for the immortal snail."); + }, + color: "#FFFFFF", + behavior: [ + "XX|CL|XX", + "CL|EX:10000000000>flash|CL", + "XX|CL|XX", + ], + category: "special", + insulate: true, + hardness: 1, + noMix: true, + hidden: true, +}; \ No newline at end of file