Merge branch 'R74nCom:main' into main
This commit is contained in:
commit
0c58f0077d
|
|
@ -171,6 +171,7 @@
|
||||||
<tr><td>nellfire.js</td><td>Adds a weird transforming flame and several rock types</td><td>Alice</td></tr>
|
<tr><td>nellfire.js</td><td>Adds a weird transforming flame and several rock types</td><td>Alice</td></tr>
|
||||||
<tr><td>Neutronium Mod.js</td><td>Variety of scientific elements<br>Explosions</td><td>StellarX20</td></tr>
|
<tr><td>Neutronium Mod.js</td><td>Variety of scientific elements<br>Explosions</td><td>StellarX20</td></tr>
|
||||||
<tr><td>neutronium_compressor.js</td><td>Adds a compressor (in reference to Minecraft’s Avaritia mod) that compresses 10,000 pixels of an element into a “singularity”</td><td>Alice</td></tr>
|
<tr><td>neutronium_compressor.js</td><td>Adds a compressor (in reference to Minecraft’s Avaritia mod) that compresses 10,000 pixels of an element into a “singularity”</td><td>Alice</td></tr>
|
||||||
|
<tr><td>noblegas.js</td><td>Adds the missing noble gases</td><td>nousernamefound</td></tr>
|
||||||
<tr><td>random_rocks.js</td><td>Randomly generates rocks on game load</td><td>Alice</td></tr>
|
<tr><td>random_rocks.js</td><td>Randomly generates rocks on game load</td><td>Alice</td></tr>
|
||||||
<tr><td>roseyiede.js</td><td>Adds several variants of a substance called roseyiede</td><td>Alice</td></tr>
|
<tr><td>roseyiede.js</td><td>Adds several variants of a substance called roseyiede</td><td>Alice</td></tr>
|
||||||
<tr><td>some_tf_liquids.js</td><td>Adds various liquids from the Thermal Foundation Minecraft mod</td><td>Alice</td></tr>
|
<tr><td>some_tf_liquids.js</td><td>Adds various liquids from the Thermal Foundation Minecraft mod</td><td>Alice</td></tr>
|
||||||
|
|
@ -242,6 +243,7 @@
|
||||||
<tr><td>all_around_fillers.js</td><td>Adds directional Filler variants</td><td>idk73248</td></tr>
|
<tr><td>all_around_fillers.js</td><td>Adds directional Filler variants</td><td>idk73248</td></tr>
|
||||||
<tr><td>allliquids.js</td><td>Made all elements liquids</td><td>Alex</td></tr>
|
<tr><td>allliquids.js</td><td>Made all elements liquids</td><td>Alex</td></tr>
|
||||||
<tr><td>amogus.js</td><td>Adds a small amogus structure</td><td>Alice</td></tr>
|
<tr><td>amogus.js</td><td>Adds a small amogus structure</td><td>Alice</td></tr>
|
||||||
|
<tr><td>collab_mod.js</td><td>Created by multiple people, adds random things</td><td>mrapple, ilikepizza, stefanblox</td></tr>
|
||||||
<tr><td>elem3.js</td><td>Adds all elements and combinations from Elemental 3 [Very Large]</td><td>Sophie</td></tr>
|
<tr><td>elem3.js</td><td>Adds all elements and combinations from Elemental 3 [Very Large]</td><td>Sophie</td></tr>
|
||||||
<tr><td>funny elements 2022-11-15.js</td><td>Adds a few curated randomly-generated elements</td><td>Alice</td></tr>
|
<tr><td>funny elements 2022-11-15.js</td><td>Adds a few curated randomly-generated elements</td><td>Alice</td></tr>
|
||||||
<tr><td>funny_liquid_2.js</td><td>Adds urine</td><td>Alice</td></tr>
|
<tr><td>funny_liquid_2.js</td><td>Adds urine</td><td>Alice</td></tr>
|
||||||
|
|
@ -277,6 +279,7 @@
|
||||||
|
|
||||||
<!----><tr><td class="modCat" colspan="3">Technical Libraries & Tests</td></tr><!---->
|
<!----><tr><td class="modCat" colspan="3">Technical Libraries & Tests</td></tr><!---->
|
||||||
<tr><td>a_bundle_of_tests.js</td><td>Several test functions</td><td>Alice</td></tr>
|
<tr><td>a_bundle_of_tests.js</td><td>Several test functions</td><td>Alice</td></tr>
|
||||||
|
<tr><td>all_stain.js</td><td>Makes every element stain solids</td><td>stefanblox</td></tr>
|
||||||
<tr><td>betterMenuScreens.js</td><td>Library for mods to create their own menus</td><td>ggod</td></tr>
|
<tr><td>betterMenuScreens.js</td><td>Library for mods to create their own menus</td><td>ggod</td></tr>
|
||||||
<tr><td>changePixelDebug.js</td><td>Makes the changePixel() function abort and log to console when it tries to change to a non-existent element</td><td>Alice</td></tr>
|
<tr><td>changePixelDebug.js</td><td>Makes the changePixel() function abort and log to console when it tries to change to a non-existent element</td><td>Alice</td></tr>
|
||||||
<tr><td>changeTempReactionParameter.js</td><td>Adds the changeTemp property to modded reactions</td><td>Alice</td></tr>
|
<tr><td>changeTempReactionParameter.js</td><td>Adds the changeTemp property to modded reactions</td><td>Alice</td></tr>
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
Created by SquareScreamYT and RealerRaddler
|
Created by SquareScreamYT and RealerRaddler
|
||||||
Thanks to Alice, nousernamefound and Fioushemastor for helping :)
|
Thanks to Alice, nousernamefound and Fioushemastor for helping :)
|
||||||
|
|
||||||
v1.3.2
|
v1.4
|
||||||
|
|
||||||
Changelog (v1.0)
|
Changelog (v1.0)
|
||||||
- added chickens
|
- added chickens
|
||||||
|
|
@ -170,6 +170,28 @@ Changelog (v1.3.2)
|
||||||
- added turnips
|
- added turnips
|
||||||
- added turnip seeds and leaves
|
- added turnip seeds and leaves
|
||||||
- added turnip juice
|
- added turnip juice
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Changelog (v1.4)
|
||||||
|
- added baking powder
|
||||||
|
- added corn starch
|
||||||
|
- added maple syrup
|
||||||
|
- added pancakes
|
||||||
|
- added pancake mix
|
||||||
|
- added pancake batter
|
||||||
|
- added normal pancakes
|
||||||
|
- added crispy pancakes
|
||||||
|
- added burnt pancakes
|
||||||
|
- added strawberries
|
||||||
|
- added strawberries
|
||||||
|
- added strawberry seeds, stem, and leaves
|
||||||
|
- added strawberry juice
|
||||||
|
- added whipped cream
|
||||||
|
- chicken eggs no longer hatch under 20 degrees
|
||||||
|
- added ginger
|
||||||
|
- added ginger juice
|
||||||
|
- added ginger rhizomes, pseudostems and leaves
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -262,16 +284,22 @@ elements.chicken_egg = {
|
||||||
color: ["#e0d3ab","#d9cdb5"],
|
color: ["#e0d3ab","#d9cdb5"],
|
||||||
behavior: [
|
behavior: [
|
||||||
"XX|XX|XX",
|
"XX|XX|XX",
|
||||||
"XX|FX%5 AND CH:chick%0.1|XX",
|
"XX|FX%5|XX",
|
||||||
"M2%30|M1|M2%30",
|
"M2%30|M1|M2%30",
|
||||||
],
|
],
|
||||||
|
tick: function(pixel) {
|
||||||
|
if (Math.random() < 0.1 && pixel.temp > 20) {
|
||||||
|
changePixel(pixel,"chick")
|
||||||
|
}
|
||||||
|
doDefaults(pixel);
|
||||||
|
},
|
||||||
category: "food",
|
category: "food",
|
||||||
state: "solid",
|
state: "solid",
|
||||||
temp: 30,
|
temp: 20,
|
||||||
tempLow: -18,
|
tempLow: -18,
|
||||||
stateLow: "frozen_chicken_egg",
|
stateLow: "frozen_chicken_egg",
|
||||||
breakInto: ["yolk"],
|
breakInto: ["yolk"],
|
||||||
tempHigh: 500,
|
tempHigh: 400,
|
||||||
stateHigh: ["calcium", "ash"],
|
stateHigh: ["calcium", "ash"],
|
||||||
burn:50,
|
burn:50,
|
||||||
burnTime:450,
|
burnTime:450,
|
||||||
|
|
@ -1700,7 +1728,7 @@ elements.grape = {
|
||||||
stateHigh: ["steam","sugar"],
|
stateHigh: ["steam","sugar"],
|
||||||
category: "food",
|
category: "food",
|
||||||
state: "solid",
|
state: "solid",
|
||||||
density: 1154,
|
density: 825,
|
||||||
breakInto: "grape_juice",
|
breakInto: "grape_juice",
|
||||||
ignoreAir: true,
|
ignoreAir: true,
|
||||||
isFood: true
|
isFood: true
|
||||||
|
|
@ -2013,7 +2041,6 @@ elements.coconut_milk = {
|
||||||
reactions: {
|
reactions: {
|
||||||
"melted_chocolate": { elem1:"chocolate_milk", elem2:null },
|
"melted_chocolate": { elem1:"chocolate_milk", elem2:null },
|
||||||
"chocolate": { elem1:"chocolate_milk", elem2:"melted_chocolate", chance:0.05 },
|
"chocolate": { elem1:"chocolate_milk", elem2:"melted_chocolate", chance:0.05 },
|
||||||
"coffee_ground": { elem1:"chocolate_milk", chance:0.05 },
|
|
||||||
"juice": { elem1:"fruit_milk", elem2:null, chance:0.05 },
|
"juice": { elem1:"fruit_milk", elem2:null, chance:0.05 },
|
||||||
"soda": { elem1:"pilk", elem2:null, chance:0.1 },
|
"soda": { elem1:"pilk", elem2:null, chance:0.1 },
|
||||||
"yolk": { elem1:"eggnog", elem2:null, chance:0.1 },
|
"yolk": { elem1:"eggnog", elem2:null, chance:0.1 },
|
||||||
|
|
@ -2529,7 +2556,7 @@ elements.turnip_leaves = {
|
||||||
}
|
}
|
||||||
elements.turnip = {
|
elements.turnip = {
|
||||||
color: ["#945bb3","#a05cbd","#a053b8","#b364c4"],
|
color: ["#945bb3","#a05cbd","#a053b8","#b364c4"],
|
||||||
behavior: behaviors.STURDYPOWDER,
|
behavior: behaviors.POWDER,
|
||||||
category:"food",
|
category:"food",
|
||||||
tempHigh: 100,
|
tempHigh: 100,
|
||||||
stateHigh: ["steam"],
|
stateHigh: ["steam"],
|
||||||
|
|
@ -2557,3 +2584,567 @@ elements.turnip_juice = {
|
||||||
hidden: true,
|
hidden: true,
|
||||||
temp: 30,
|
temp: 30,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
elements.corn = {
|
||||||
|
color: ["#f8d223","#d6ba2a","#f7f5ba","#dbd281","#cdb12d"],
|
||||||
|
tick: function(pixel) {
|
||||||
|
if (pixel.temp >= 180) {
|
||||||
|
changePixel(pixel,"popcorn");
|
||||||
|
if (isEmpty(pixel.x,pixel.y-1)) {
|
||||||
|
tryMove(pixel,pixel.x,pixel.y-1);
|
||||||
|
if (isEmpty(pixel.x-1,pixel.y)) { createPixel("pop",pixel.x-1,pixel.y) }
|
||||||
|
if (isEmpty(pixel.x+1,pixel.y)) { createPixel("pop",pixel.x+1,pixel.y) }
|
||||||
|
if (isEmpty(pixel.x,pixel.y-1)) { createPixel("pop",pixel.x,pixel.y-1) }
|
||||||
|
if (isEmpty(pixel.x,pixel.y+1)) { createPixel("pop",pixel.x,pixel.y+1) }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
doDefaults(pixel)
|
||||||
|
},
|
||||||
|
category: "food",
|
||||||
|
burn: 10,
|
||||||
|
burnTime: 200,
|
||||||
|
breakInto: "corn_starch",
|
||||||
|
breakIntoColor: ["#ffe9a8","#ffecb3","#ffe28a"],
|
||||||
|
state: "solid",
|
||||||
|
density: 721,
|
||||||
|
seed: "corn_seed",
|
||||||
|
isFood: true,
|
||||||
|
movable: false,
|
||||||
|
}
|
||||||
|
|
||||||
|
elements.corn_starch = {
|
||||||
|
color: ["#fcf2e1","#f2e7d3","#fcf3de"],
|
||||||
|
behavior: behaviors.POWDER,
|
||||||
|
reactions: {
|
||||||
|
"water": { elem1: "dough", elem2: null },
|
||||||
|
"salt_water": { elem1: "dough", elem2: null },
|
||||||
|
"sugar_water": { elem1: "dough", elem2: null },
|
||||||
|
"seltzer": { elem1: "dough", elem2: null },
|
||||||
|
"pool_water": { elem1: "dough", elem2: null },
|
||||||
|
"juice": { elem1: "dough", elem2: null },
|
||||||
|
"yolk": { elem1: "batter", elem2: null },
|
||||||
|
"yogurt": { elem1: "batter", elem2: null },
|
||||||
|
"honey": { elem1:"gingerbread", elem2:null },
|
||||||
|
"molasses": { elem1:"gingerbread", elem2:null },
|
||||||
|
"sap": { elem1:"gingerbread", elem2:null },
|
||||||
|
"caramel": { elem1:"gingerbread", elem2:null },
|
||||||
|
"broth": { elem1:"dough", elem2:null },
|
||||||
|
"soda": { elem1:"dough", elem2:null },
|
||||||
|
"tea": { elem1:"dough", elem2:null },
|
||||||
|
"blood": { elem1:"dough", elem2:null },
|
||||||
|
"infection": { elem1:"dough", elem2:null },
|
||||||
|
"antibody": { elem1:"dough", elem2:null },
|
||||||
|
"milk": { elem1:"dough", elem2:null },
|
||||||
|
"cream": { elem1:"dough", elem2:null },
|
||||||
|
"melted_butter": { elem1:"sauce", elem2:null, color1:"#DF8D32" },
|
||||||
|
},
|
||||||
|
category: "food",
|
||||||
|
tempHigh: 400,
|
||||||
|
stateHigh: "fire",
|
||||||
|
burn:40,
|
||||||
|
burnTime:25,
|
||||||
|
state: "solid",
|
||||||
|
density: 600,
|
||||||
|
isFood: true
|
||||||
|
}
|
||||||
|
|
||||||
|
elements.baking_powder = {
|
||||||
|
color: "#fffaf0",
|
||||||
|
behavior: behaviors.POWDER,
|
||||||
|
category: "food",
|
||||||
|
state: "solid",
|
||||||
|
burn: 40,
|
||||||
|
tempHigh: 400,
|
||||||
|
stateHigh: ["salt","carbon_dioxide"],
|
||||||
|
burnTime: 25,
|
||||||
|
density: 600,
|
||||||
|
isFood: true,
|
||||||
|
reactions: {
|
||||||
|
"flour": { elem1: "pancake_mix", elem2: null, color1: "#e8b77b"},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
if (!elements.baking_soda.reactions) elements.baking_soda.reactions = {};
|
||||||
|
elements.baking_soda.reactions.neutral_acid = { elem1: "baking_powder", elem2: null }
|
||||||
|
|
||||||
|
elements.pancake_mix = {
|
||||||
|
color: ["#f2e9c7","#f7ebbe"],
|
||||||
|
behavior: behaviors.POWDER,
|
||||||
|
reactions: {
|
||||||
|
"water": { elem1: "pancake_batter", elem2: null },
|
||||||
|
},
|
||||||
|
category: "food",
|
||||||
|
tempHigh: 400,
|
||||||
|
stateHigh: "fire",
|
||||||
|
burn:40,
|
||||||
|
burnTime:25,
|
||||||
|
state: "solid",
|
||||||
|
density: 600,
|
||||||
|
isFood: true
|
||||||
|
},
|
||||||
|
|
||||||
|
elements.pancake_batter = {
|
||||||
|
color: "#e6da9e",
|
||||||
|
behavior: behaviors.LIQUID,
|
||||||
|
category: "food",
|
||||||
|
tempHigh: 70,
|
||||||
|
stateHigh: "pancake",
|
||||||
|
stateHighColorMultiplier: 0.9,
|
||||||
|
burn:40,
|
||||||
|
burnTime:25,
|
||||||
|
burnInto:"ash",
|
||||||
|
state: "liquid",
|
||||||
|
viscosity: 10000,
|
||||||
|
density: 1001,
|
||||||
|
hidden: true,
|
||||||
|
isFood: true
|
||||||
|
}
|
||||||
|
elements.sap = {
|
||||||
|
color: ["#b67f18","#c86305","#cf7a19","#e4ae3a"],
|
||||||
|
behavior: behaviors.LIQUID,
|
||||||
|
reactions: {
|
||||||
|
"dead_bug": { elem1:"amber", elem2:null, chance:0.1 },
|
||||||
|
"ant": { elem1:"amber", elem2:null, chance:0.1 },
|
||||||
|
"fly": { elem1:"amber", elem2:null, chance:0.1 },
|
||||||
|
"flea": { elem1:"amber", elem2:null, chance:0.1 },
|
||||||
|
"termite": { elem1:"amber", elem2:null, chance:0.1 },
|
||||||
|
"worm": { elem1:"amber", elem2:null, chance:0.1 },
|
||||||
|
"bee": { elem1:"amber", elem2:null, chance:0.1 },
|
||||||
|
"firefly": { elem1:"amber", elem2:null, chance:0.1 },
|
||||||
|
"stinkbug": { elem1:"amber", elem2:null, chance:0.1 },
|
||||||
|
"slug": { elem1:"amber", elem2:null, chance:0.1 },
|
||||||
|
"snail": { elem1:"amber", elem2:null, chance:0.1 },
|
||||||
|
},
|
||||||
|
tempHigh: 104,
|
||||||
|
stateHigh: ["maple_syrup","maple_syrup","maple_syrup","sap"],
|
||||||
|
tempLow: 0,
|
||||||
|
stateLowName: "amber",
|
||||||
|
category:"liquids",
|
||||||
|
state: "liquid",
|
||||||
|
viscosity: 15,
|
||||||
|
density: 1400
|
||||||
|
}
|
||||||
|
elements.maple_syrup = {
|
||||||
|
color: ["#fabb34","#facc34","#fabb34"],
|
||||||
|
behavior: behaviors.LIQUID,
|
||||||
|
tempHigh: 170,
|
||||||
|
stateHigh: ["sugar","smoke","smoke"],
|
||||||
|
tempLow: 0,
|
||||||
|
category:"liquids",
|
||||||
|
state: "liquid",
|
||||||
|
viscosity: 15,
|
||||||
|
hidden: true,
|
||||||
|
density: 1400
|
||||||
|
}
|
||||||
|
elements.pancake = {
|
||||||
|
color: "#e0d080",
|
||||||
|
behavior: behaviors.STURDYPOWDER,
|
||||||
|
tempHigh: 95,
|
||||||
|
stateHigh: "crispy_pancake",
|
||||||
|
category: "food",
|
||||||
|
burn: 10,
|
||||||
|
burnTime: 400,
|
||||||
|
burnInto: ["smoke","smoke","smoke","ash"],
|
||||||
|
breakInto: "crumb",
|
||||||
|
state: "solid",
|
||||||
|
density: 233.96,
|
||||||
|
hidden: true,
|
||||||
|
isFood: true
|
||||||
|
}
|
||||||
|
elements.crispy_pancake = {
|
||||||
|
color: "#c7a34a",
|
||||||
|
behavior: behaviors.STURDYPOWDER,
|
||||||
|
tempHigh: 150,
|
||||||
|
stateHigh: "burnt_pancake",
|
||||||
|
category: "food",
|
||||||
|
burn: 10,
|
||||||
|
burnTime: 400,
|
||||||
|
burnInto: ["smoke","smoke","smoke","ash"],
|
||||||
|
breakInto: "crumb",
|
||||||
|
state: "solid",
|
||||||
|
density: 233.96,
|
||||||
|
hidden: true,
|
||||||
|
isFood: true
|
||||||
|
}
|
||||||
|
elements.burnt_pancake = {
|
||||||
|
color: "#332709",
|
||||||
|
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.strawberry_seed = {
|
||||||
|
color: "#7a7133",
|
||||||
|
behavior: behaviors.STURDYPOWDER,
|
||||||
|
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 },
|
||||||
|
"mercury": { elem1:"dead_plant", elem2:null, chance:0.01 },
|
||||||
|
"stench": { elem2:null, chance:0.25 },
|
||||||
|
},
|
||||||
|
tick: function(pixel) {
|
||||||
|
if (isEmpty(pixel.x,pixel.y+1)) {
|
||||||
|
movePixel(pixel,pixel.x,pixel.y+1);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (Math.random() < 0.02 && 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(pixel,"strawberry_stem");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pixel.age++;
|
||||||
|
}
|
||||||
|
doDefaults(pixel);
|
||||||
|
},
|
||||||
|
category:"life",
|
||||||
|
tempHigh: 100,
|
||||||
|
stateHigh: "dead_plant",
|
||||||
|
tempLow: -1.66,
|
||||||
|
stateLow: "frozen_plant",
|
||||||
|
burn:15,
|
||||||
|
burnTime:60,
|
||||||
|
burnInto: "dead_plant",
|
||||||
|
breakInto: "dead_plant",
|
||||||
|
state: "solid",
|
||||||
|
density: 1050,
|
||||||
|
cooldown: defaultCooldown
|
||||||
|
}
|
||||||
|
elements.strawberry_stem = {
|
||||||
|
color: "#419c2f",
|
||||||
|
behavior: [
|
||||||
|
"CR:strawberry_stem,strawberry_leaves,strawberry_leaves,strawberry_leaves,strawberry_leaves%3|CR:strawberry_stem,strawberry_leaves,strawberry_leaves,strawberry_leaves,strawberry_leaves%3|CR:strawberry_stem,strawberry_leaves,strawberry_leaves,strawberry_leaves,strawberry_leaves%3",
|
||||||
|
"CR:strawberry_stem,strawberry_leaves,strawberry_leaves,strawberry_leaves,strawberry_leaves%3|XX|CR:strawberry_stem,strawberry_leaves,strawberry_leaves,strawberry_leaves,strawberry_leaves%3",
|
||||||
|
"XX|M1|XX",
|
||||||
|
],
|
||||||
|
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");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pixel.age++;
|
||||||
|
}
|
||||||
|
doDefaults(pixel);
|
||||||
|
},
|
||||||
|
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 },
|
||||||
|
"mercury": { elem1:"dead_plant", elem2:null, chance:0.01 },
|
||||||
|
"stench": { elem2:null, chance:0.25 },
|
||||||
|
},
|
||||||
|
properties: {
|
||||||
|
"age":0
|
||||||
|
},
|
||||||
|
category:"life",
|
||||||
|
tempHigh: 100,
|
||||||
|
stateHigh: "dead_plant",
|
||||||
|
tempLow: -1.66,
|
||||||
|
stateLow: "frozen_plant",
|
||||||
|
burn:15,
|
||||||
|
burnTime:60,
|
||||||
|
burnInto: "dead_plant",
|
||||||
|
breakInto: "dead_plant",
|
||||||
|
state: "solid",
|
||||||
|
density: 1050,
|
||||||
|
}
|
||||||
|
elements.strawberry_leaves = {
|
||||||
|
color: "#4bad37",
|
||||||
|
behavior: [
|
||||||
|
"XX|CR:strawberry%2|XX",
|
||||||
|
"CR:strawberry%2|XX|CR:strawberry%2",
|
||||||
|
"M2|M1|M2",
|
||||||
|
],
|
||||||
|
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 },
|
||||||
|
"mercury": { elem1:"dead_plant", elem2:null, chance:0.01 },
|
||||||
|
"stench": { elem2:null, chance:0.25 },
|
||||||
|
},
|
||||||
|
category:"life",
|
||||||
|
tempHigh: 100,
|
||||||
|
stateHigh: "dead_plant",
|
||||||
|
tempLow: -1.66,
|
||||||
|
stateLow: "frozen_plant",
|
||||||
|
burn:15,
|
||||||
|
burnTime:60,
|
||||||
|
burnInto: "dead_plant",
|
||||||
|
breakInto: "dead_plant",
|
||||||
|
state: "solid",
|
||||||
|
density: 1050
|
||||||
|
}
|
||||||
|
elements.strawberry = {
|
||||||
|
color: "#f04b3c",
|
||||||
|
behavior: [
|
||||||
|
"XX|ST:strawberry_stem,strawberry_leaves|XX",
|
||||||
|
"ST:strawberry_stem,strawberry_leaves|XX|ST:strawberry_stem,strawberry_leaves",
|
||||||
|
"M2|M1|M2",
|
||||||
|
],
|
||||||
|
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 },
|
||||||
|
"mercury": { elem1:"dead_plant", elem2:null, chance:0.01 },
|
||||||
|
"stench": { elem2:null, chance:0.25 },
|
||||||
|
},
|
||||||
|
category:"food",
|
||||||
|
tempHigh: 100,
|
||||||
|
stateHigh: "dead_plant",
|
||||||
|
burn:15,
|
||||||
|
burnTime:60,
|
||||||
|
burnInto: "dead_plant",
|
||||||
|
breakInto: "strawberry_juice",
|
||||||
|
state: "solid",
|
||||||
|
density: 1050
|
||||||
|
}
|
||||||
|
elements.strawberry_juice = {
|
||||||
|
color: "#e03a3a",
|
||||||
|
behavior: behaviors.LIQUID,
|
||||||
|
category: "liquids",
|
||||||
|
tempHigh: 100,
|
||||||
|
stateHigh: ["steam","sugar"],
|
||||||
|
burn: 70,
|
||||||
|
burnTime: 300,
|
||||||
|
burnInto: ["steam", "smoke"],
|
||||||
|
state: "liquid",
|
||||||
|
density: 825,
|
||||||
|
hidden: true,
|
||||||
|
temp: 30,
|
||||||
|
tempLow: 0
|
||||||
|
};
|
||||||
|
|
||||||
|
elements.cream = {
|
||||||
|
color: "#f7f7f7",
|
||||||
|
behavior: behaviors.LIQUID,
|
||||||
|
onMix: function(cream1, cream2) {
|
||||||
|
if ((shiftDown && Math.random() < 0.01) || (elements[cream2.element].id === elements.cream.id && Math.random() < 0.1)) {
|
||||||
|
changePixel(cream1,"whipped_cream")
|
||||||
|
}
|
||||||
|
},
|
||||||
|
reactions: {
|
||||||
|
"dirt": { elem1: null, elem2: "mud" },
|
||||||
|
"sand": { elem1: null, elem2: "wet_sand" },
|
||||||
|
"clay_soil": { elem1: null, elem2: "clay" },
|
||||||
|
"melted_chocolate": { color1:"#664934", elem2:null },
|
||||||
|
"chocolate": { color1:"#664934", elem2:"melted_chocolate", chance:0.05 },
|
||||||
|
"juice": { elem1:"fruit_milk", elem2:null, chance:0.05 },
|
||||||
|
"soda": { elem1:"pilk", elem2:null, chance:0.1 },
|
||||||
|
"yolk": { elem1:"#eggnog", elem2:null, chance:0.1 },
|
||||||
|
"caramel": { color1:"#C8B39A", chance:0.05 },
|
||||||
|
"sugar": { elem2:null, chance:0.005},
|
||||||
|
},
|
||||||
|
viscosity: 1.5,
|
||||||
|
tempHigh: 1000,
|
||||||
|
stateHigh: ["smoke","smoke","smoke","steam","steam","calcium"],
|
||||||
|
tempLow: 0,
|
||||||
|
stateLow: "ice_cream",
|
||||||
|
stateLowColorMultiplier: 0.97,
|
||||||
|
category: "liquids",
|
||||||
|
hidden: true,
|
||||||
|
isFood: true,
|
||||||
|
state: "liquid",
|
||||||
|
density: 959.97,
|
||||||
|
}
|
||||||
|
elements.whipped_cream = {
|
||||||
|
color: "#fafafa",
|
||||||
|
behavior: behaviors.LIQUID,
|
||||||
|
reactions: {
|
||||||
|
"dirt": { elem1: null, elem2: "mud" },
|
||||||
|
"sand": { elem1: null, elem2: "wet_sand" },
|
||||||
|
"clay_soil": { elem1: null, elem2: "clay" },
|
||||||
|
"melted_chocolate": { color1:"#664934", elem2:null },
|
||||||
|
"chocolate": { color1:"#664934", elem2:"melted_chocolate", chance:0.05 },
|
||||||
|
"juice": { elem1:"fruit_milk", elem2:null, chance:0.05 },
|
||||||
|
"soda": { elem1:"pilk", elem2:null, chance:0.1 },
|
||||||
|
"yolk": { elem1:"#eggnog", elem2:null, chance:0.1 },
|
||||||
|
"caramel": { color1:"#C8B39A", chance:0.05 },
|
||||||
|
"sugar": { elem2:null, chance:0.005},
|
||||||
|
},
|
||||||
|
viscosity: 1.5,
|
||||||
|
tempHigh: 1000,
|
||||||
|
stateHigh: ["smoke","smoke","smoke","steam","steam","calcium"],
|
||||||
|
tempLow: 0,
|
||||||
|
stateLow: "ice_cream",
|
||||||
|
stateLowColorMultiplier: 0.97,
|
||||||
|
category: "food",
|
||||||
|
hidden: true,
|
||||||
|
isFood: true,
|
||||||
|
state: "liquid",
|
||||||
|
density: 959.97,
|
||||||
|
viscosity: 2500000
|
||||||
|
}
|
||||||
|
|
||||||
|
elements.ginger = {
|
||||||
|
color: ["#b88f30","#d6a73a"],
|
||||||
|
behavior: [
|
||||||
|
"XX|XX|XX",
|
||||||
|
"XX|XX|XX",
|
||||||
|
"M2 AND CH:dirt,mud,sand,wet_sand,clay_soil,clay,mycelium,grass,color_sand>ginger,fiber%0.5|M1 AND CH:dirt,mud,sand,wet_sand,clay_soil,clay,mycelium,grass,color_sand>ginger,fiber,fiber%0.5|M2 AND CH:dirt,mud,sand,wet_sand,clay_soil,clay,mycelium,grass,color_sand>ginger,fiber%0.5",
|
||||||
|
],
|
||||||
|
reactions: {
|
||||||
|
"flour": { elem1:"gingerbread", elem2:null },
|
||||||
|
"bread": { elem1:"gingerbread", elem2:null },
|
||||||
|
},
|
||||||
|
tempHigh: 275,
|
||||||
|
stateHigh: "dirt",
|
||||||
|
tempLow: -50,
|
||||||
|
stateLow: "fiber",
|
||||||
|
burn: 20,
|
||||||
|
burnTime: 60,
|
||||||
|
burnInto: "dirt",
|
||||||
|
breakInto: "ginger_juice",
|
||||||
|
category: "food",
|
||||||
|
state: "solid",
|
||||||
|
density: 1250,
|
||||||
|
conduct: 0.1,
|
||||||
|
hidden: true
|
||||||
|
}
|
||||||
|
|
||||||
|
elements.ginger_rhizome = {
|
||||||
|
color: "#c7ad58",
|
||||||
|
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,"ginger");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (isEmpty(pixel.x,pixel.y-1)) {
|
||||||
|
movePixel(pixel,pixel.x,pixel.y-1);
|
||||||
|
createPixel("ginger_pseudostem",pixel.x,pixel.y+1);
|
||||||
|
}
|
||||||
|
if (isEmpty(pixel.x+1,pixel.y) && Math.random() < 0.2) {
|
||||||
|
createPixel("ginger_leaves",pixel.x+1,pixel.y);
|
||||||
|
}
|
||||||
|
if (isEmpty(pixel.x-1,pixel.y) && Math.random() < 0.2) {
|
||||||
|
createPixel("ginger_leaves",pixel.x-1,pixel.y);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (pixel.age > 250) {
|
||||||
|
changePixel(pixel,"ginger_leaves");
|
||||||
|
}
|
||||||
|
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,
|
||||||
|
breakInto: "ginger_juice",
|
||||||
|
cooldown: defaultCooldown,
|
||||||
|
seed: true,
|
||||||
|
behavior: [
|
||||||
|
"XX|XX|XX",
|
||||||
|
"XX|FX%10|XX",
|
||||||
|
"XX|M1|XX",
|
||||||
|
],
|
||||||
|
reactions: {
|
||||||
|
"flour": { elem1:"gingerbread", elem2:null },
|
||||||
|
"bread": { elem1:"gingerbread", elem2:null },
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
elements.ginger_pseudostem = {
|
||||||
|
color: "#69a82d",
|
||||||
|
behavior: behaviors.STURDYPOWDER,
|
||||||
|
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 },
|
||||||
|
"mercury": { elem1:"dead_plant", elem2:null, chance:0.01 },
|
||||||
|
"stench": { elem2:null, chance:0.25 },
|
||||||
|
},
|
||||||
|
category:"life",
|
||||||
|
tempHigh: 100,
|
||||||
|
stateHigh: "dead_plant",
|
||||||
|
tempLow: -1.66,
|
||||||
|
stateLow: "frozen_plant",
|
||||||
|
burn:15,
|
||||||
|
burnTime:60,
|
||||||
|
burnInto: "dead_plant",
|
||||||
|
breakInto: "dead_plant",
|
||||||
|
state: "solid",
|
||||||
|
density: 1050
|
||||||
|
}
|
||||||
|
elements.ginger_leaves = {
|
||||||
|
color: "#52bd31",
|
||||||
|
behavior: behaviors.WALL,
|
||||||
|
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 },
|
||||||
|
"mercury": { elem1:"dead_plant", elem2:null, chance:0.01 },
|
||||||
|
"stench": { elem2:null, chance:0.25 },
|
||||||
|
"carbon_dioxide": { elem2:"oxygen", chance:0.25 },
|
||||||
|
},
|
||||||
|
category:"life",
|
||||||
|
tempHigh: 100,
|
||||||
|
stateHigh: "dead_plant",
|
||||||
|
tempLow: -1.66,
|
||||||
|
stateLow: "frozen_plant",
|
||||||
|
burn:15,
|
||||||
|
burnTime:60,
|
||||||
|
burnInto: "dead_plant",
|
||||||
|
breakInto: "dead_plant",
|
||||||
|
state: "solid",
|
||||||
|
density: 1050
|
||||||
|
}
|
||||||
|
elements.ginger_juice = {
|
||||||
|
color: "#ccc056",
|
||||||
|
behavior: behaviors.LIQUID,
|
||||||
|
category: "liquids",
|
||||||
|
tempHigh: 100,
|
||||||
|
stateHigh: ["steam","sugar"],
|
||||||
|
burn: 70,
|
||||||
|
burnTime: 300,
|
||||||
|
burnInto: ["steam", "smoke"],
|
||||||
|
state: "liquid",
|
||||||
|
density: 825,
|
||||||
|
hidden: true,
|
||||||
|
temp: 30,
|
||||||
|
tempLow: 0,
|
||||||
|
reactions: {
|
||||||
|
"flour": { elem1:"gingerbread", elem2:null },
|
||||||
|
"bread": { elem1:"gingerbread", elem2:null },
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
|
||||||
|
|
@ -4177,7 +4177,6 @@ color1 and color2 spread through striped paint like dye does with itself. <u>col
|
||||||
return
|
return
|
||||||
})
|
})
|
||||||
};
|
};
|
||||||
|
|
||||||
doDefaults(pixel);
|
doDefaults(pixel);
|
||||||
},
|
},
|
||||||
temp:6000,
|
temp:6000,
|
||||||
|
|
@ -4195,6 +4194,39 @@ color1 and color2 spread through striped paint like dye does with itself. <u>col
|
||||||
ignoreAir: true
|
ignoreAir: true
|
||||||
};
|
};
|
||||||
|
|
||||||
|
elements.holy_bomb = {
|
||||||
|
color: ["#dbb260", "#94591e"],
|
||||||
|
tick: function(pixel) {
|
||||||
|
if(!isEmpty(pixel.x,pixel.y-1,true)) { //[0][1] EX (ignore bounds)
|
||||||
|
var newPixel = pixelMap[pixel.x][pixel.y-1];
|
||||||
|
var newElement = newPixel.element;
|
||||||
|
var newInfo = elements[newElement];
|
||||||
|
if(newInfo.state !== "gas" && newElement !== pixel.element) {
|
||||||
|
explodeAtPlus(pixel.x,pixel.y,13,"holy_fire","plasma",null,firebombFire);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
if(!isEmpty(pixel.x,pixel.y+1,true)) { //[2][1] EX (don't ignore bounds, non-bound case)
|
||||||
|
var newPixel = pixelMap[pixel.x][pixel.y+1];
|
||||||
|
var newElement = newPixel.element;
|
||||||
|
var newInfo = elements[newElement];
|
||||||
|
if(newInfo.state !== "gas" && newElement !== pixel.element) {
|
||||||
|
explodeAtPlus(pixel.x,pixel.y,13,"holy_fire","plasma",null,firebombFire);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
if(outOfBounds(pixel.x,pixel.y+1)) { //[2][1] EX (don't ignore bounds, bound case)
|
||||||
|
explodeAtPlus(pixel.x,pixel.y,13,"holy_fire","plasma",null,firebombFire);
|
||||||
|
};
|
||||||
|
if(!tryMove(pixel,pixel.x,pixel.y+1)) { //behaviors.POWDER
|
||||||
|
Math.random() < 0.5 ? tryMove(pixel,pixel.x-1,pixel.y+1) : tryMove(pixel,pixel.x+1,pixel.y+1);
|
||||||
|
};
|
||||||
|
},
|
||||||
|
category: "weapons",
|
||||||
|
state: "solid",
|
||||||
|
density: 4000,
|
||||||
|
excludeRandom: true,
|
||||||
|
desc: "A bomb that burns the world to pure ash. <br/>To enable automatic bomb generation, set the generateBombs query parameter.",
|
||||||
|
};
|
||||||
|
|
||||||
elements.bless.ignore ??= [];
|
elements.bless.ignore ??= [];
|
||||||
elements.bless.ignore.push("holy_fire");
|
elements.bless.ignore.push("holy_fire");
|
||||||
|
|
||||||
|
|
@ -4288,6 +4320,39 @@ color1 and color2 spread through striped paint like dye does with itself. <u>col
|
||||||
ignoreAir: true
|
ignoreAir: true
|
||||||
};
|
};
|
||||||
|
|
||||||
|
elements.god_slayer_bomb = {
|
||||||
|
color: ["#a43dcc", "#49b6d1"],
|
||||||
|
tick: function(pixel) {
|
||||||
|
if(!isEmpty(pixel.x,pixel.y-1,true)) { //[0][1] EX (ignore bounds)
|
||||||
|
var newPixel = pixelMap[pixel.x][pixel.y-1];
|
||||||
|
var newElement = newPixel.element;
|
||||||
|
var newInfo = elements[newElement];
|
||||||
|
if(newInfo.state !== "gas" && newElement !== pixel.element) {
|
||||||
|
explodeAtPlus(pixel.x,pixel.y,40,"god_slayer_fire","plasma");
|
||||||
|
};
|
||||||
|
};
|
||||||
|
if(!isEmpty(pixel.x,pixel.y+1,true)) { //[2][1] EX (don't ignore bounds, non-bound case)
|
||||||
|
var newPixel = pixelMap[pixel.x][pixel.y+1];
|
||||||
|
var newElement = newPixel.element;
|
||||||
|
var newInfo = elements[newElement];
|
||||||
|
if(newInfo.state !== "gas" && newElement !== pixel.element) {
|
||||||
|
explodeAtPlus(pixel.x,pixel.y,40,"god_slayer_fire","plasma");
|
||||||
|
};
|
||||||
|
};
|
||||||
|
if(outOfBounds(pixel.x,pixel.y+1)) { //[2][1] EX (don't ignore bounds, bound case)
|
||||||
|
explodeAtPlus(pixel.x,pixel.y,40,"god_slayer_fire","plasma");
|
||||||
|
};
|
||||||
|
if(!tryMove(pixel,pixel.x,pixel.y+1)) { //behaviors.POWDER
|
||||||
|
Math.random() < 0.5 ? tryMove(pixel,pixel.x-1,pixel.y+1) : tryMove(pixel,pixel.x+1,pixel.y+1);
|
||||||
|
};
|
||||||
|
},
|
||||||
|
category: "weapons",
|
||||||
|
state: "solid",
|
||||||
|
density: 4500,
|
||||||
|
excludeRandom: true,
|
||||||
|
desc: "A bomb that makes gods tremble. <br/>To enable automatic bomb generation, set the generateBombs query parameter.",
|
||||||
|
};
|
||||||
|
|
||||||
elements.cloner.burnTime = Infinity;
|
elements.cloner.burnTime = Infinity;
|
||||||
elements.cloner.burnInto = "cloner";
|
elements.cloner.burnInto = "cloner";
|
||||||
|
|
||||||
|
|
@ -28481,6 +28546,7 @@ Make sure to save your command in a file if you want to add this preset again.`
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
lightlikes = ["light","flash","laser","radiation","insulate_flash"];
|
lightlikes = ["light","flash","laser","radiation","insulate_flash"];
|
||||||
|
firelikes = ["fire","plasma","smoke","stellar_plasma","liquid_plasma","liquid_stellar_plasma"];
|
||||||
grbBreakIntos = Object.keys(elements).filter(function(elemName) {
|
grbBreakIntos = Object.keys(elements).filter(function(elemName) {
|
||||||
var to = typeof(elements[elemName]);
|
var to = typeof(elements[elemName]);
|
||||||
if(to == "undefined") {
|
if(to == "undefined") {
|
||||||
|
|
@ -28661,6 +28727,75 @@ Make sure to save your command in a file if you want to add this preset again.`
|
||||||
noMix: true
|
noMix: true
|
||||||
};
|
};
|
||||||
|
|
||||||
|
elements.melt_ray = {
|
||||||
|
color: ["#ffbf7f","#ffffbf"],
|
||||||
|
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.02) { continue }
|
||||||
|
createPixel("insulate_flash", x, y);
|
||||||
|
pixelMap[x][y].color = "#e1f8fc";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var otherPixel = pixelMap[x][y];
|
||||||
|
var otherInfo = elements[otherPixel.element];
|
||||||
|
//Gas: Heat, always penetrate
|
||||||
|
if (otherInfo.isGas) {
|
||||||
|
if(Math.random() < 0.05 && otherInfo.stateLow) {
|
||||||
|
meltPixel(otherPixel)
|
||||||
|
};
|
||||||
|
if(elements[otherPixel.element].isSun) {
|
||||||
|
otherPixel.temp += 0.5;
|
||||||
|
} else {
|
||||||
|
otherPixel.temp += 50;
|
||||||
|
};
|
||||||
|
continue;
|
||||||
|
};
|
||||||
|
|
||||||
|
//Self: Break
|
||||||
|
if (otherInfo.id === elements.melt_ray.id) { break }
|
||||||
|
|
||||||
|
//Non-gas, Melt chance, heat more, half penetrate
|
||||||
|
if(Math.random() < 0.05 && !otherInfo.isGas) {
|
||||||
|
meltPixel(otherPixel)
|
||||||
|
};
|
||||||
|
pixelMap[x][y].temp += 200;
|
||||||
|
|
||||||
|
if(Math.random() < 0.05) {
|
||||||
|
|
||||||
|
if(!isEmpty(x,y-1,false)) {
|
||||||
|
if(pixelMap[x]?.[y-1]?.element && lightlikes.includes(pixelMap[x][y-1].element)) {
|
||||||
|
deletePixel(x,y-1);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
var newPlasma = tryCreatePixelReturn("liquid_plasma",x,y-1);
|
||||||
|
if(newPlasma) { newPlasma.temp += 500 };
|
||||||
|
};
|
||||||
|
|
||||||
|
//Penetrate snow and ice
|
||||||
|
if(firelikes && firelikes.includes(otherPixel.element)) {
|
||||||
|
continue;
|
||||||
|
};
|
||||||
|
|
||||||
|
if(Math.random() < 0.7) { //thanks, I hate random continue
|
||||||
|
continue;
|
||||||
|
};
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
deletePixel(pixel.x, pixel.y);
|
||||||
|
},
|
||||||
|
temp: 4000,
|
||||||
|
category: "energy",
|
||||||
|
state: "gas",
|
||||||
|
excludeRandom: true,
|
||||||
|
noMix: true
|
||||||
|
};
|
||||||
|
|
||||||
elements.smash_ray = {
|
elements.smash_ray = {
|
||||||
color: ["#ff9999", "#8c8279"],
|
color: ["#ff9999", "#8c8279"],
|
||||||
tick: function(pixel) {
|
tick: function(pixel) {
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,30 @@
|
||||||
// Warning: This mod will remove all of your previously unlocked elements.
|
// unhide oxygen (air), dirt (earth), fire, and water
|
||||||
|
if (!settings.alchemyUnlocked) {
|
||||||
|
settings.alchemyUnlocked = {
|
||||||
|
"oxygen": true,
|
||||||
|
"dirt": true,
|
||||||
|
"fire": true,
|
||||||
|
"water": true,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
if (settings.unlocked.alchemymod) {
|
||||||
|
for (var element in settings.unlocked) {
|
||||||
|
if (settings.unlocked[element]) {
|
||||||
|
settings.alchemyUnlocked[element] = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// loop through the elements object
|
// loop through the elements object
|
||||||
if (elements.explosion) {
|
if (elements.explosion) {
|
||||||
elements.explosion.category = "tools";
|
elements.explosion.category = "tools";
|
||||||
}
|
}
|
||||||
for (var element in elements) {
|
for (var element in elements) {
|
||||||
if (elements[element].category !== "tools") {
|
if (settings.alchemyUnlocked[element]) {
|
||||||
|
elements[element].hidden = false;
|
||||||
|
if (elements[element].category !== "tools") { elements[element].category = "alchemy mod"; }
|
||||||
|
}
|
||||||
|
else if (elements[element].category !== "tools") {
|
||||||
// give the element the hidden attribute true
|
// give the element the hidden attribute true
|
||||||
elements[element].hidden = true;
|
elements[element].hidden = true;
|
||||||
// set its category to "alchemy mod"
|
// set its category to "alchemy mod"
|
||||||
|
|
@ -16,13 +35,35 @@ for (var element in elements) {
|
||||||
// set the unhide setting to Unlock as Discovered (2)
|
// set the unhide setting to Unlock as Discovered (2)
|
||||||
settings.unhide = 2;
|
settings.unhide = 2;
|
||||||
|
|
||||||
// unhide oxygen (air), dirt (earth), fire, and water
|
runAfterLoad(function(){
|
||||||
if (!settings.unlocked.alchemymod) {
|
checkUnlock = function(element) {
|
||||||
settings.unlocked = {
|
if (elements[element] && elements[element].hidden && !settings.alchemyUnlocked[element]) {
|
||||||
"oxygen": true,
|
settings.alchemyUnlocked[element] = true;
|
||||||
"dirt": true,
|
if (settings.unhide === 2) {
|
||||||
"fire": true,
|
createElementButton(element)
|
||||||
"water": true,
|
var categoryButton = document.querySelector(".categoryButton[current='true']");
|
||||||
"alchemymod": true,
|
var currentCategory = categoryButton.getAttribute("category");
|
||||||
};
|
if (currentCategory !== elements[element].category) {
|
||||||
}
|
document.getElementById("categoryButton-"+elements[element].category).classList.add("notify");
|
||||||
|
}
|
||||||
|
// add notify to the elementButton of the element
|
||||||
|
document.getElementById("elementButton-"+element).classList.add("notify");
|
||||||
|
}
|
||||||
|
saveSettings();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
runAfterAutogen(function(){
|
||||||
|
for (var element in elements) {
|
||||||
|
if (elements[element].category === "states") {
|
||||||
|
elements[element].category = "alchemy mod"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
window.addEventListener("load",function(){
|
||||||
|
for (var element in elements) {
|
||||||
|
if (elements[element].hidden && document.getElementById("elementButton-"+element)) {
|
||||||
|
document.getElementById("elementButton-"+element).remove()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
window.addEventListener('load', function() {
|
||||||
|
for (var element in elements) {
|
||||||
|
elements[element].stain = 0.1;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// sorry alice
|
||||||
|
|
@ -0,0 +1,80 @@
|
||||||
|
elements.cat = {
|
||||||
|
color: ["#ffffff", "#494949", "#ffc505"],
|
||||||
|
behavior: [
|
||||||
|
"XX|XX|XX",
|
||||||
|
"M2%25|XX|M2%25",
|
||||||
|
"XX|M1|XX",
|
||||||
|
],
|
||||||
|
category: "life",
|
||||||
|
state: "solid",
|
||||||
|
desc: "cat.",
|
||||||
|
tempHigh: 100,
|
||||||
|
stateHigh: "meat",
|
||||||
|
tempLow: 0,
|
||||||
|
stateLow: "frozen_meat"
|
||||||
|
};
|
||||||
|
|
||||||
|
elements.the_hot_destroyer = {
|
||||||
|
color: "#ff0000",
|
||||||
|
behavior: behaviors.POWDER,
|
||||||
|
category: "weapons",
|
||||||
|
state: "solid",
|
||||||
|
desc: "literally just is super hot, destroys anything that can be melted",
|
||||||
|
temp: Infinity,
|
||||||
|
reactions: {
|
||||||
|
"the_cold_destroyer": {elem1: null, elem2: null}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
elements.the_cold_destroyer = {
|
||||||
|
color: "#00ccff",
|
||||||
|
behavior: behaviors.POWDER,
|
||||||
|
category: "weapons",
|
||||||
|
state: "solid",
|
||||||
|
desc: "literally just is super cold, freezes anything that can be frozen",
|
||||||
|
temp: -Infinity,
|
||||||
|
reactions: {
|
||||||
|
"the_hot_destroyer": {elem1: null, elem2: null}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
elements.plutoneeum = {
|
||||||
|
color: ["#38a30e", "#0d662b", "#5d995d"],
|
||||||
|
behavior: behaviors.RADPOWDER,
|
||||||
|
category: "powders",
|
||||||
|
state: "solid",
|
||||||
|
desc: "misspelled on purpose to avoid conflicts with other mods",
|
||||||
|
};
|
||||||
|
|
||||||
|
elements.lipstick = {
|
||||||
|
color: "#a30000",
|
||||||
|
behavior: behaviors.LIQUID,
|
||||||
|
category: "liquids",
|
||||||
|
state: "liquid",
|
||||||
|
viscosity: 650,
|
||||||
|
tempHigh: 100,
|
||||||
|
stateHigh: "steam",
|
||||||
|
desc: "this mod is meant to have a description to everything but i don't know what to put here... its lipstick i guess?"
|
||||||
|
};
|
||||||
|
|
||||||
|
elements.very_hot_gold = {
|
||||||
|
color: ["#fff0b5","#986a1a","#f0bb62"],
|
||||||
|
behavior: behaviors.WALL,
|
||||||
|
category: "solids",
|
||||||
|
density: 19300,
|
||||||
|
conduct: 0.81,
|
||||||
|
hardness: 0.25,
|
||||||
|
breakInto: "gold_coin",
|
||||||
|
temp: Infinity,
|
||||||
|
desc: "i'm running out of ideas, have this i guess"
|
||||||
|
};
|
||||||
|
|
||||||
|
elements.sour_patch_kids = {
|
||||||
|
color:["#ff0000", "#00ff00", "#c8ff02", "#ff00c8"],
|
||||||
|
behavior: behaviors.POWDER,
|
||||||
|
category: "food",
|
||||||
|
state: "solid",
|
||||||
|
desc: "don't think their meant to be purple"
|
||||||
|
};
|
||||||
|
|
||||||
|
// this piece of text is gonna change every update
|
||||||
|
|
@ -0,0 +1,105 @@
|
||||||
|
elements.argon = {
|
||||||
|
color: elements.neon.color,
|
||||||
|
behavior: behaviors.GAS,
|
||||||
|
colorOn: ["#c831ee","#d683eb","#7a258f"],
|
||||||
|
category: "gases",
|
||||||
|
state: "gas",
|
||||||
|
tempLow: -185.8,
|
||||||
|
stateLow: "liquid_argon",
|
||||||
|
density: 1.784,
|
||||||
|
conduct: 0.8
|
||||||
|
}
|
||||||
|
elements.liquid_argon = {
|
||||||
|
color: elements.neon.color,
|
||||||
|
behavior: behaviors.LIQUID,
|
||||||
|
colorOn: ["#c831ee","#d683eb","#7a258f"],
|
||||||
|
category: "states",
|
||||||
|
state: "liquid",
|
||||||
|
tempHigh: -183.8,
|
||||||
|
stateHigh: "argon",
|
||||||
|
density: 1401,
|
||||||
|
tempLow: -189.3,
|
||||||
|
stateLow: "frozen_argon",
|
||||||
|
conduct: 0.8
|
||||||
|
}
|
||||||
|
elements.frozen_argon = {
|
||||||
|
color: elements.neon.color,
|
||||||
|
behavior: behaviors.WALL,
|
||||||
|
colorOn: ["#c831ee","#d683eb","#7a258f"],
|
||||||
|
category: "states",
|
||||||
|
state: "solid",
|
||||||
|
tempHigh: -187.3,
|
||||||
|
stateHigh: "liquid_argon",
|
||||||
|
density: 1616,
|
||||||
|
conduct: 0.8
|
||||||
|
}
|
||||||
|
elements.krypton = {
|
||||||
|
color: elements.neon.color,
|
||||||
|
behavior: behaviors.GAS,
|
||||||
|
colorOn: ["#c49dce","#ac8ab4","#715579"],
|
||||||
|
category: "gases",
|
||||||
|
state: "gas",
|
||||||
|
tempLow: -153.22,
|
||||||
|
stateLow: "liquid_krypton",
|
||||||
|
density: 3.75,
|
||||||
|
conduct: 0.8
|
||||||
|
}
|
||||||
|
elements.liquid_krypton = {
|
||||||
|
color: elements.neon.color,
|
||||||
|
behavior: behaviors.LIQUID,
|
||||||
|
colorOn: ["#c49dce","#ac8ab4","#715579"],
|
||||||
|
category: "states",
|
||||||
|
state: "liquid",
|
||||||
|
tempHigh: -150.22,
|
||||||
|
stateHigh: "krypton",
|
||||||
|
density: 2423,
|
||||||
|
tempLow: -157.36,
|
||||||
|
stateLow: "frozen_krypton",
|
||||||
|
conduct: 0.8
|
||||||
|
}
|
||||||
|
elements.frozen_krypton = {
|
||||||
|
color: elements.neon.color,
|
||||||
|
behavior: behaviors.WALL,
|
||||||
|
colorOn: ["#c49dce","#ac8ab4","#715579"],
|
||||||
|
category: "states",
|
||||||
|
state: "solid",
|
||||||
|
tempHigh: -154.36,
|
||||||
|
stateHigh: "liquid_krypton",
|
||||||
|
density: 2160,
|
||||||
|
conduct: 0.8
|
||||||
|
}
|
||||||
|
elements.xenon = {
|
||||||
|
color: elements.neon.color,
|
||||||
|
behavior: behaviors.GAS,
|
||||||
|
colorOn: ["#627eca","#4572d3","#333cb1"],
|
||||||
|
category: "gases",
|
||||||
|
state: "gas",
|
||||||
|
tempLow: -108,
|
||||||
|
stateLow: "liquid_xenon",
|
||||||
|
density: 5.9,
|
||||||
|
conduct: 0.8
|
||||||
|
}
|
||||||
|
elements.liquid_xenon = {
|
||||||
|
color: elements.neon.color,
|
||||||
|
behavior: behaviors.LIQUID,
|
||||||
|
colorOn: ["#627eca","#4572d3","#333cb1"],
|
||||||
|
category: "states",
|
||||||
|
state: "liquid",
|
||||||
|
tempHigh: -104,
|
||||||
|
stateHigh: "xenon",
|
||||||
|
density: 2948,
|
||||||
|
tempLow: -111.8,
|
||||||
|
stateLow: "frozen_xenon",
|
||||||
|
conduct: 0.8
|
||||||
|
}
|
||||||
|
elements.frozen_xenon = {
|
||||||
|
color: elements.neon.color,
|
||||||
|
behavior: behaviors.WALL,
|
||||||
|
colorOn: ["#627eca","#4572d3","#333cb1"],
|
||||||
|
category: "states",
|
||||||
|
state: "solid",
|
||||||
|
tempHigh: -109.8,
|
||||||
|
stateHigh: "liquid_xenon",
|
||||||
|
density: 3410,
|
||||||
|
conduct: 0.8
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue