Update plants.js
This commit is contained in:
parent
55a5d7cf4c
commit
43a91664b8
525
mods/plants.js
525
mods/plants.js
|
|
@ -1,22 +1,18 @@
|
||||||
/*
|
/*
|
||||||
Version 2.2.0
|
Version 2.2.0
|
||||||
*/
|
*/
|
||||||
function noiseify(color, range){
|
let plants;
|
||||||
if(color.startsWith("#")){
|
if(!enabledMods.includes("/mods/orchidslibrary.js")){
|
||||||
color = hexToRGB(color);
|
let continueWithout = confirm("Missing dependency for plants.js: \"orchidslibrary.js\". Continue without? (cancel will add mod and refresh the page)");
|
||||||
} else {
|
if(!continueWithout){
|
||||||
color = getRGB(color);
|
addMod("/mods/orchidslibrary.js", true);
|
||||||
|
window.location.reload();
|
||||||
}
|
}
|
||||||
let num = Math.round(Math.random()*(range*2))-range;
|
} else {
|
||||||
for(let value in color){
|
let is2d = (arr)=>{
|
||||||
color[value] += num;
|
|
||||||
}
|
|
||||||
return `rgb(${color.r},${color.g},${color.b})`;
|
|
||||||
}
|
|
||||||
let is2d = (arr)=>{
|
|
||||||
return arr.some(item => Array.isArray(item));
|
return arr.some(item => Array.isArray(item));
|
||||||
}
|
}
|
||||||
class growInterval {
|
class growInterval {
|
||||||
constructor(seedPixel, pattern, basePos, c = 0.025, dieAfter = undefined, fruit = undefined, elems = undefined){
|
constructor(seedPixel, pattern, basePos, c = 0.025, dieAfter = undefined, fruit = undefined, elems = undefined){
|
||||||
let currentLength = 0;
|
let currentLength = 0;
|
||||||
let chance = c;
|
let chance = c;
|
||||||
|
|
@ -54,22 +50,22 @@ class growInterval {
|
||||||
}, 1000/tps);
|
}, 1000/tps);
|
||||||
this.interval = interval;
|
this.interval = interval;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let flowerExclude = ["pineapple"];
|
let flowerExclude = ["pineapple"];
|
||||||
let vineGrow = ["wood", "rock_wall", "straw", "wall", "ewall", "bush_cane", "bush_base", "fruit_branch"];
|
let vineGrow = ["wood", "rock_wall", "straw", "wall", "ewall", "bush_cane", "bush_base", "fruit_branch"];
|
||||||
let plants = {
|
plants = {
|
||||||
tree: [],
|
tree: [],
|
||||||
vine: ["grape", "tomato"],
|
vine: ["grape", "tomato"],
|
||||||
bush: [],
|
bush: [],
|
||||||
other: ["pineapple", "watermelon", "banana"],
|
other: ["pineapple", "watermelon", "banana", "onion"],
|
||||||
includes: function(target){
|
includes: function(target){
|
||||||
for(item in this){
|
for(item in this){
|
||||||
if(this[item] && Array.isArray(this[item]) && this[item].includes(target)){return true;}
|
if(this[item] && Array.isArray(this[item]) && this[item].includes(target)){return true;}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let growthPatterns = {
|
let growthPatterns = {
|
||||||
pineapple1: [[-1,-1],[-2,-2],[1,-1],[2,-2],[0,-1],[0,-2],[0,-3],[0,-4],[0,-5],[0,-6],[-1,-6],[1,-6],[-1,-5],[1,-5],[-1,-4],[1,-4],[-1,-3],[1,-3],[0,-7],[-1,-8],[1,-8]],
|
pineapple1: [[-1,-1],[-2,-2],[1,-1],[2,-2],[0,-1],[0,-2],[0,-3],[0,-4],[0,-5],[0,-6],[-1,-6],[1,-6],[-1,-5],[1,-5],[-1,-4],[1,-4],[-1,-3],[1,-3],[0,-7],[-1,-8],[1,-8]],
|
||||||
pineapple2: [[[-1,-1],[1,-1]],[[-2,-2],[2,-2]], [0,-1],[0,-2],[0,-3],[0,-4],[0,-5],[0,-6],[[-1,-6],[1,-6]],[[-1,-5],[1,-5]],[[-1,-4],[1,-4]],[[-1,-3],[1,-3]],[[-1,-2],[1,-2]],[0,-7],[-1,-8],[1,-8]],
|
pineapple2: [[[-1,-1],[1,-1]],[[-2,-2],[2,-2]], [0,-1],[0,-2],[0,-3],[0,-4],[0,-5],[0,-6],[[-1,-6],[1,-6]],[[-1,-5],[1,-5]],[[-1,-4],[1,-4]],[[-1,-3],[1,-3]],[[-1,-2],[1,-2]],[0,-7],[-1,-8],[1,-8]],
|
||||||
pineapple3: [[-1,0],[-2,-1],[-3,-2],[1,0],[2,-1],[-4,-3],[3,-2],[4,-3],[-5,-4],[5,-4],[0,-1],[0,-2],[0,-3],[0,-4],[0,-5],[0,-6],[0,-7],[0,-8],[0,-9],[0,-10],[-1,-10],[1,-10],[-1,-9],[1,-9],[-1,-8],[1,-8],[-1,-7],[1,-7],[-1,-6],[1,-6],[-1,-5],[1,-5],[-1,-4],[1,-4],[-2,-9],[2,-9],[-2,-8],[2,-8],[2,-7],[-2,-7],[-2,-6],[2,-6],[2,-5],[-2,-5],[0,-11],[-1,-12],[1,-12],[2,-13],[-2,-13]],
|
pineapple3: [[-1,0],[-2,-1],[-3,-2],[1,0],[2,-1],[-4,-3],[3,-2],[4,-3],[-5,-4],[5,-4],[0,-1],[0,-2],[0,-3],[0,-4],[0,-5],[0,-6],[0,-7],[0,-8],[0,-9],[0,-10],[-1,-10],[1,-10],[-1,-9],[1,-9],[-1,-8],[1,-8],[-1,-7],[1,-7],[-1,-6],[1,-6],[-1,-5],[1,-5],[-1,-4],[1,-4],[-2,-9],[2,-9],[-2,-8],[2,-8],[2,-7],[-2,-7],[-2,-6],[2,-6],[2,-5],[-2,-5],[0,-11],[-1,-12],[1,-12],[2,-13],[-2,-13]],
|
||||||
|
|
@ -137,8 +133,8 @@ let growthPatterns = {
|
||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
let growthElems = {
|
let growthElems = {
|
||||||
pineapple1: ["fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","fruit_leaves","fruit_leaves","fruit_leaves"],
|
pineapple1: ["fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","fruit_leaves","fruit_leaves","fruit_leaves"],
|
||||||
pineapple2: ["fruit_leaves","fruit_leaves","fruit_leaves","flower","flower","flower","flower","flower","flower","flower","flower","flower","fruit_leaves","fruit_leaves","fruit_leaves"],
|
pineapple2: ["fruit_leaves","fruit_leaves","fruit_leaves","flower","flower","flower","flower","flower","flower","flower","flower","flower","fruit_leaves","fruit_leaves","fruit_leaves"],
|
||||||
pineapple3: ["fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves"],
|
pineapple3: ["fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves"],
|
||||||
|
|
@ -154,8 +150,8 @@ let growthElems = {
|
||||||
"palm_5-2":["fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","flower","flower","flower","fruit_leaves","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower"],
|
"palm_5-2":["fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","flower","flower","flower","fruit_leaves","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower"],
|
||||||
"coconut_5-1": ["fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","fruit_leaves"],
|
"coconut_5-1": ["fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","fruit_leaves"],
|
||||||
"coconut_5-2": ["fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower"],
|
"coconut_5-2": ["fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","fruit_leaves","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower","flower"],
|
||||||
}
|
}
|
||||||
let ethyleneChance = {
|
let ethyleneChance = {
|
||||||
tomato: 0.000055,
|
tomato: 0.000055,
|
||||||
orange: 0.000005,
|
orange: 0.000005,
|
||||||
strawberry: 0.000005,
|
strawberry: 0.000005,
|
||||||
|
|
@ -175,16 +171,16 @@ let ethyleneChance = {
|
||||||
get: function(name){
|
get: function(name){
|
||||||
return this[name] || 0.00000035;
|
return this[name] || 0.00000035;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elements.tomato.properties = {
|
elements.tomato.properties = {
|
||||||
type: "fruit",
|
type: "fruit",
|
||||||
fruit: "tomato",
|
fruit: "tomato",
|
||||||
};
|
};
|
||||||
elements.grape.properties = {
|
elements.grape.properties = {
|
||||||
type: "fruit",
|
type: "fruit",
|
||||||
fruit: "grape",
|
fruit: "grape",
|
||||||
};
|
};
|
||||||
class vineSeed {
|
class vineSeed {
|
||||||
category = "life";
|
category = "life";
|
||||||
behavior = behaviors.POWDER;
|
behavior = behaviors.POWDER;
|
||||||
tick = function(pixel){
|
tick = function(pixel){
|
||||||
|
|
@ -201,9 +197,9 @@ class vineSeed {
|
||||||
this.color = color;
|
this.color = color;
|
||||||
this.low = low;
|
this.low = low;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
class treeSeed {
|
class treeSeed {
|
||||||
properties = {
|
properties = {
|
||||||
age: 0,
|
age: 0,
|
||||||
fruit: "",
|
fruit: "",
|
||||||
|
|
@ -250,9 +246,9 @@ class treeSeed {
|
||||||
this.properties.fruit = fruit;
|
this.properties.fruit = fruit;
|
||||||
this.color = colours;
|
this.color = colours;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class fruit {
|
class fruit {
|
||||||
category = "food";
|
category = "food";
|
||||||
behavior = [["XX", "ST:fruit_leaves AND ST:fruit_branch AND ST:wood", "XX"],["ST:fruit_leaves AND ST:fruit_branch AND ST:wood", "XX", "ST:fruit_leaves AND ST:fruit_branch AND ST:wood"],["M2", "ST:fruit_leaves AND ST:fruit_branch AND ST:wood AND M1", "M2"]];
|
behavior = [["XX", "ST:fruit_leaves AND ST:fruit_branch AND ST:wood", "XX"],["ST:fruit_leaves AND ST:fruit_branch AND ST:wood", "XX", "ST:fruit_leaves AND ST:fruit_branch AND ST:wood"],["M2", "ST:fruit_leaves AND ST:fruit_branch AND ST:wood AND M1", "M2"]];
|
||||||
breakInto = "juice";
|
breakInto = "juice";
|
||||||
|
|
@ -290,8 +286,8 @@ class fruit {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elements.tomato.tick = function(pixel){
|
elements.tomato.tick = function(pixel){
|
||||||
let chance = ethyleneChance.get(pixel.fruit);
|
let chance = ethyleneChance.get(pixel.fruit);
|
||||||
for(let i = 0; i < squareCoords.length; i++){
|
for(let i = 0; i < squareCoords.length; i++){
|
||||||
let x = pixel.x+squareCoords[i][0], y = pixel.y+squareCoords[i][1];
|
let x = pixel.x+squareCoords[i][0], y = pixel.y+squareCoords[i][1];
|
||||||
|
|
@ -299,8 +295,8 @@ elements.tomato.tick = function(pixel){
|
||||||
createPixel("ethylene", x, y);
|
createPixel("ethylene", x, y);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elements.grape.tick = function(pixel){
|
elements.grape.tick = function(pixel){
|
||||||
let chance = ethyleneChance.get(pixel.fruit);
|
let chance = ethyleneChance.get(pixel.fruit);
|
||||||
for(let i = 0; i < squareCoords.length; i++){
|
for(let i = 0; i < squareCoords.length; i++){
|
||||||
let x = pixel.x+squareCoords[i][0], y = pixel.y+squareCoords[i][1];
|
let x = pixel.x+squareCoords[i][0], y = pixel.y+squareCoords[i][1];
|
||||||
|
|
@ -308,10 +304,112 @@ elements.grape.tick = function(pixel){
|
||||||
createPixel("ethylene", x, y);
|
createPixel("ethylene", x, y);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elements.wood.properties = {age: 0, fruit: ""};
|
elements.wood.properties = {age: 0, fruit: ""};
|
||||||
|
|
||||||
elements.fruit_branch = {
|
elements.nutrient_agar = {
|
||||||
|
category: "life",
|
||||||
|
behavior: behaviors.STURDYPOWDER,
|
||||||
|
properties: {
|
||||||
|
value: null,
|
||||||
|
},
|
||||||
|
state: "solid",
|
||||||
|
color: ["#edeae4", "#f2f0eb", "#e8e7e3", "#f5f1e9"],
|
||||||
|
tick: function(pixel) {
|
||||||
|
for(let coords of adjacentCoords){
|
||||||
|
let x = pixel.x+coords[0], y = pixel.y+coords[1];
|
||||||
|
let p2 = getPixel(x,y);
|
||||||
|
if(p2 != null){
|
||||||
|
if(["wine", "yeast", "grape", "apple", "plum"].includes(p2.element) && pixel.value == null){
|
||||||
|
pixel.value = "yeast";
|
||||||
|
} else if(p2.element == "mold" && pixel.value == null){
|
||||||
|
pixel.value = "mold";
|
||||||
|
}else if(p2.element == "mushroom_spore" && pixel.value == null){
|
||||||
|
pixel.value = "mushroom_spore";
|
||||||
|
}else if (p2.element == pixel.element && p2.value != null && pixel.value == null && Math.random()<0.0035){
|
||||||
|
pixel.value = p2.value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(Math.random() < 0.00075){
|
||||||
|
if(pixel.value == null && Math.random() < 0.025){
|
||||||
|
let elems = ["mold", "mold", "mushroom_spore"];
|
||||||
|
let elem = elems[Math.round(Math.random()*elems.length)];
|
||||||
|
while(elem == undefined){
|
||||||
|
elem = elems[Math.round(Math.random()*elems.length)];
|
||||||
|
}
|
||||||
|
changePixel(pixel, elem);
|
||||||
|
} else {
|
||||||
|
changePixel(pixel, pixel.value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
elements.mold = {
|
||||||
|
category: "life",
|
||||||
|
behavior: behaviors.POWDER,
|
||||||
|
color: ["#33402a", "#303d25", "#2b4f39", "#254231"],
|
||||||
|
reactions: {
|
||||||
|
cheese: {elem2: ["rotten_cheese", "rotten_cheese", "mold"], chance: 0.075},
|
||||||
|
meat: {elem2: ["rotten_meat", "rotten_meat", "mold"], chance: 0.075},
|
||||||
|
},
|
||||||
|
state: "solid",
|
||||||
|
tick: function(pixel){
|
||||||
|
for(let coords of adjacentCoords){
|
||||||
|
let x = pixel.x+coords[0], y = pixel.y+coords[1], p2 = getPixel(x,y);
|
||||||
|
if(p2 != null){
|
||||||
|
if(plants.includes(p2.element) && Math.random() < 0.025){
|
||||||
|
let elems = ["mold", "rotten_fruit", "rotten_fruit"];
|
||||||
|
let elem = elems[Math.round(Math.random()*elems.length)];
|
||||||
|
while(elem == undefined){
|
||||||
|
elem = elems[Math.round(Math.random()*elems.length)];
|
||||||
|
}
|
||||||
|
changePixel(p2, elem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
elements.rotten_fruit = {
|
||||||
|
color: ["#5e3d00", "#5c3c01", "#4a3205", "#634102"],
|
||||||
|
category: "life",
|
||||||
|
behavior: behaviors.POWDER,
|
||||||
|
reactions: {
|
||||||
|
cheese: {elem2: ["rotten_cheese", "rotten_cheese", "mold"], chance: 0.075},
|
||||||
|
meat: {elem2: ["rotten_meat", "rotten_meat", "mold"], chance: 0.075},
|
||||||
|
},
|
||||||
|
state: "solid",
|
||||||
|
};
|
||||||
|
|
||||||
|
elements.yeast = {
|
||||||
|
color: ["#e3d3a6", "#f2dea7", "#e3cf98", "#f2dfaa"],
|
||||||
|
category: "life",
|
||||||
|
density: 1033,
|
||||||
|
behavior: behaviors.POWDER,
|
||||||
|
reactions: {
|
||||||
|
sugar_water: {elem2: "wine", color2: ["#6e85b5", "#6d81ab"], chance: 0.00025},
|
||||||
|
water: {elem2: "seltzer", chance: 0.00005},
|
||||||
|
},
|
||||||
|
tick: function(pixel){
|
||||||
|
for(let coords of adjacentCoords){
|
||||||
|
let x = pixel.x+coords[0], y = pixel.y+coords[1], p2 = getPixel(x,y);
|
||||||
|
if(p2 != null){
|
||||||
|
if(p2.element == "juice" && Math.random() < 0.00025){
|
||||||
|
let rgb = getRGB(p2.color);
|
||||||
|
for(key in rgb){
|
||||||
|
rgb[key] = Math.max(rgb[key] - 10, 0);
|
||||||
|
}
|
||||||
|
changePixel(p2, "wine");
|
||||||
|
p2.color = normalize(rgb);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
elements.fruit_branch = {
|
||||||
color: elements.tree_branch.color,
|
color: elements.tree_branch.color,
|
||||||
behavior: [
|
behavior: [
|
||||||
"XX|XX|XX",
|
"XX|XX|XX",
|
||||||
|
|
@ -361,8 +459,8 @@ elements.fruit_branch = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elements.fruit_leaves = {
|
elements.fruit_leaves = {
|
||||||
color: elements.plant.color,
|
color: elements.plant.color,
|
||||||
behavior: [
|
behavior: [
|
||||||
"XX|XX|XX",
|
"XX|XX|XX",
|
||||||
|
|
@ -552,11 +650,11 @@ elements.fruit_leaves = {
|
||||||
}
|
}
|
||||||
pixel.age++;
|
pixel.age++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class bushSeed{
|
class bushSeed{
|
||||||
behavior = behaviors.STURDYPOWDER;
|
behavior = behaviors.STURDYPOWDER;
|
||||||
category = "life";
|
category = "life";
|
||||||
properties = {
|
properties = {
|
||||||
|
|
@ -585,8 +683,8 @@ class bushSeed{
|
||||||
this.properties.fruit = fruit;
|
this.properties.fruit = fruit;
|
||||||
this.color = colour;
|
this.color = colour;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elements.bush_base = {
|
elements.bush_base = {
|
||||||
color: elements.wood.color,
|
color: elements.wood.color,
|
||||||
behavior: [
|
behavior: [
|
||||||
["CR:bush_cane%25", "XX", "CR:bush_cane%25"],
|
["CR:bush_cane%25", "XX", "CR:bush_cane%25"],
|
||||||
|
|
@ -614,8 +712,8 @@ elements.bush_base = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
elements.bush_cane = {
|
elements.bush_cane = {
|
||||||
color: elements.wood.color,
|
color: elements.wood.color,
|
||||||
tick: function(pixel){
|
tick: function(pixel){
|
||||||
if(pixel.age < 200 && Math.floor(Math.random() * 40) == 1){
|
if(pixel.age < 200 && Math.floor(Math.random() * 40) == 1){
|
||||||
|
|
@ -649,10 +747,10 @@ elements.bush_cane = {
|
||||||
category: "life",
|
category: "life",
|
||||||
tempLow: -2,
|
tempLow: -2,
|
||||||
stateLow: "frozen_plant",
|
stateLow: "frozen_plant",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
elements.low_fruit_vine = {
|
elements.low_fruit_vine = {
|
||||||
color: elements.plant.color,
|
color: elements.plant.color,
|
||||||
behavior: behaviors.WALL,
|
behavior: behaviors.WALL,
|
||||||
category: "life",
|
category: "life",
|
||||||
|
|
@ -675,12 +773,12 @@ elements.low_fruit_vine = {
|
||||||
}
|
}
|
||||||
pixel.age++;
|
pixel.age++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let str = "";
|
let str = "";
|
||||||
for(let i = 0; i < vineGrow.length; i++){
|
for(let i = 0; i < vineGrow.length; i++){
|
||||||
str += (i == vineGrow.length-1) ? `ST:${vineGrow[i]}` : `ST:${vineGrow[i]} AND `;
|
str += (i == vineGrow.length-1) ? `ST:${vineGrow[i]}` : `ST:${vineGrow[i]} AND `;
|
||||||
}
|
}
|
||||||
elements.fruit_vine = {
|
elements.fruit_vine = {
|
||||||
category: "life",
|
category: "life",
|
||||||
color: elements.plant.color,
|
color: elements.plant.color,
|
||||||
behavior: [["XX", str, "XX"], [str, "XX", str], ["XX", str + " AND M1", "XX"]],
|
behavior: [["XX", str, "XX"], [str, "XX", str], ["XX", str + " AND M1", "XX"]],
|
||||||
|
|
@ -729,97 +827,78 @@ elements.fruit_vine = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
behaviors.VINEFRUIT = ["XX|ST:fruit_vine AND ST:low_fruit_vine|XX",
|
behaviors.VINEFRUIT = ["XX|ST:fruit_vine AND ST:low_fruit_vine|XX",
|
||||||
"ST:fruit_vine AND ST:low_fruit_vine|XX|ST:fruit_vine AND ST:low_fruit_vine",
|
"ST:fruit_vine AND ST:low_fruit_vine|XX|ST:fruit_vine AND ST:low_fruit_vine",
|
||||||
"M2|M1|M2"];
|
"M2|M1|M2"];
|
||||||
elements.grape.behavior = behaviors.VINEFRUIT;
|
elements.grape.behavior = behaviors.VINEFRUIT;
|
||||||
elements.tomato.behavior = behaviors.VINEFRUIT;
|
elements.tomato.behavior = behaviors.VINEFRUIT;
|
||||||
elements.grape_seed = new vineSeed("grape",["#281B01", "#2D1F06", "#2D1F06"]);
|
elements.grape_seed = new vineSeed("grape",["#281B01", "#2D1F06", "#2D1F06"]);
|
||||||
elements.tomato_seed = new vineSeed("tomato", ["#F8F5D1","#E7E5CF","#E3E1C5"]);
|
elements.tomato_seed = new vineSeed("tomato", ["#F8F5D1","#E7E5CF","#E3E1C5"]);
|
||||||
elements.apple = new fruit("apple", ["#FF0507", "#EC0A0D", "#F22426", "#DC2C2E"], ["#F9C497", "#EED3BB", "#EEDEBB"]);
|
elements.apple = new fruit("apple", ["#FF0507", "#EC0A0D", "#F22426", "#DC2C2E"], ["#F9C497", "#EED3BB", "#EEDEBB"]);
|
||||||
elements.apple.bloomColor = ["#fff0f7", "#fcebf3", "#fff0f7", "#ffe6f2", "#fff7fb"];
|
elements.apple.bloomColor = ["#fff0f7", "#fcebf3", "#fff0f7", "#ffe6f2", "#fff7fb"];
|
||||||
elements.apple_seed = new treeSeed("apple", ["#3B1C01", "#3E2107", "#3A1C02"]);
|
elements.apple_seed = new treeSeed("apple", ["#3B1C01", "#3E2107", "#3A1C02"]);
|
||||||
function colorMix(p1, p2, bias = 0.5){
|
|
||||||
p1.color = interpolateRgb(getRGB(p1.color), getRGB(p2.color), bias);
|
|
||||||
p2.color = interpolateRgb(getRGB(p1.color), getRGB(p2.color), bias);
|
|
||||||
}
|
|
||||||
function interpolateRgb(rgb1, rgb2, ratio = 0.5) {
|
|
||||||
const interpolatedRgb = {
|
|
||||||
r: Math.round(rgb1.r + (rgb2.r - rgb1.r) * ratio),
|
|
||||||
g: Math.round(rgb1.g + (rgb2.g - rgb1.g) * ratio),
|
|
||||||
b: Math.round(rgb1.b + (rgb2.b - rgb1.b) * ratio),
|
|
||||||
};
|
|
||||||
return normalize(interpolatedRgb);
|
|
||||||
}
|
|
||||||
function getRGB(rgb){
|
|
||||||
let rgb2 = rgb.replace(")", "").replace("rgb(", "").replace(/,/g, "r").split("r")
|
|
||||||
return { r: parseInt(rgb2[0]), g: parseInt(rgb2[1]), b: parseInt(rgb2[2]) };
|
|
||||||
}
|
|
||||||
|
|
||||||
elements.juice.tick = function(pixel){
|
elements.juice.tick = function(pixel){
|
||||||
for(let i = 0; i < squareCoords.length; i++){
|
for(let i = 0; i < squareCoords.length; i++){
|
||||||
let x = pixel.x+squareCoords[i][0], y = pixel.y+squareCoords[i][1];
|
let x = pixel.x+squareCoords[i][0], y = pixel.y+squareCoords[i][1];
|
||||||
if(!isEmpty(x,y) && !outOfBounds(x,y) && pixelMap[x][y].element == pixel.element && Math.random() < 0.005){
|
if(!isEmpty(x,y) && !outOfBounds(x,y) && pixelMap[x][y].element == pixel.element && Math.random() < 0.005){
|
||||||
colorMix(pixel, pixelMap[x][y]);
|
colorMix(pixel, pixelMap[x][y]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elements.juice.onMix = function(pixel){
|
elements.juice.onMix = function(pixel){
|
||||||
for(let i = 0; i < squareCoords.length; i++){
|
for(let i = 0; i < squareCoords.length; i++){
|
||||||
let x = pixel.x+squareCoords[i][0], y = pixel.y+squareCoords[i][1];
|
let x = pixel.x+squareCoords[i][0], y = pixel.y+squareCoords[i][1];
|
||||||
if(!isEmpty(x,y) && !outOfBounds(x,y) && pixelMap[x][y].element == pixel.element && Math.random() < 0.5){
|
if(!isEmpty(x,y) && !outOfBounds(x,y) && pixelMap[x][y].element == pixel.element && Math.random() < 0.5){
|
||||||
colorMix(pixel, pixelMap[x][y]);
|
colorMix(pixel, pixelMap[x][y]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elements.fruit_milk.tick = function(pixel){
|
elements.fruit_milk.tick = function(pixel){
|
||||||
for(let i = 0; i < squareCoords.length; i++){
|
for(let i = 0; i < squareCoords.length; i++){
|
||||||
let x = pixel.x+squareCoords[i][0], y = pixel.y+squareCoords[i][1];
|
let x = pixel.x+squareCoords[i][0], y = pixel.y+squareCoords[i][1];
|
||||||
if(!isEmpty(x,y) && !outOfBounds(x,y) && pixelMap[x][y].element == pixel.element && Math.random() < 0.005){
|
if(!isEmpty(x,y) && !outOfBounds(x,y) && pixelMap[x][y].element == pixel.element && Math.random() < 0.005){
|
||||||
colorMix(pixel, pixelMap[x][y]);
|
colorMix(pixel, pixelMap[x][y]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elements.fruit_milk.onMix = function(pixel){
|
elements.fruit_milk.onMix = function(pixel){
|
||||||
for(let i = 0; i < squareCoords.length; i++){
|
for(let i = 0; i < squareCoords.length; i++){
|
||||||
let x = pixel.x+squareCoords[i][0], y = pixel.y+squareCoords[i][1];
|
let x = pixel.x+squareCoords[i][0], y = pixel.y+squareCoords[i][1];
|
||||||
if(!isEmpty(x,y) && !outOfBounds(x,y) && pixelMap[x][y].element == pixel.element && Math.random() < 0.5){
|
if(!isEmpty(x,y) && !outOfBounds(x,y) && pixelMap[x][y].element == pixel.element && Math.random() < 0.5){
|
||||||
colorMix(pixel, pixelMap[x][y]);
|
colorMix(pixel, pixelMap[x][y]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function normalize(obj){
|
|
||||||
return `rgb(${obj.r},${obj.g},${obj.b})`;
|
|
||||||
}
|
|
||||||
|
|
||||||
elements.milk.reactions.juice = {func: function(p1, p2){
|
elements.milk.reactions.juice = {func: function(p1, p2){
|
||||||
let rgb = interpolateRgb(getRGB(p1.color), getRGB(p2.color), 0.25);
|
let rgb = interpolateRgb(getRGB(p1.color), getRGB(p2.color), 0.25);
|
||||||
changePixel(p1, "fruit_milk");
|
changePixel(p1, "fruit_milk");
|
||||||
changePixel(p2, "fruit_milk");
|
changePixel(p2, "fruit_milk");
|
||||||
p1.color = rgb;
|
p1.color = rgb;
|
||||||
p2.color = rgb;
|
p2.color = rgb;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
elements.juice.reactions.carbon_dioxide = { func: function(p1,p2){
|
elements.juice.reactions.carbon_dioxide = { func: function(p1,p2){
|
||||||
let rgb = interpolateRgb(getRGB(p1.color), getRGB(elements.water.color), 0.2);
|
let rgb = interpolateRgb(getRGB(p1.color), getRGB(elements.water.color), 0.2);
|
||||||
changePixel(p1, "soda");
|
changePixel(p1, "soda");
|
||||||
changePixel(p2, "foam");
|
changePixel(p2, "foam");
|
||||||
p1.color = rgb;
|
p1.color = rgb;
|
||||||
p2.color = rgb;
|
p2.color = rgb;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elements.juice.reactions.seltzer = { func: function(p1,p2){
|
elements.juice.reactions.seltzer = { func: function(p1,p2){
|
||||||
let rgb = interpolateRgb(getRGB(p1.color), getRGB(p2.color), 0.5);
|
let rgb = interpolateRgb(getRGB(p1.color), getRGB(p2.color), 0.5);
|
||||||
changePixel(p1, "soda");
|
changePixel(p1, "soda");
|
||||||
changePixel(p2, "foam");
|
changePixel(p2, "foam");
|
||||||
p1.color = rgb;
|
p1.color = rgb;
|
||||||
p2.color = rgb;
|
p2.color = rgb;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
elements.milk.reactions.soda = {
|
elements.milk.reactions.soda = {
|
||||||
func: function(p1,p2){
|
func: function(p1,p2){
|
||||||
let rgb = interpolateRgb(getRGB(p1.color), getRGB(p2.color), 0.5);
|
let rgb = interpolateRgb(getRGB(p1.color), getRGB(p2.color), 0.5);
|
||||||
changePixel(p1, "pilk");
|
changePixel(p1, "pilk");
|
||||||
|
|
@ -827,9 +906,9 @@ elements.milk.reactions.soda = {
|
||||||
p1.color = rgb;
|
p1.color = rgb;
|
||||||
p2.color = rgb;
|
p2.color = rgb;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
elements.seed_maker = {
|
elements.seed_maker = {
|
||||||
behavior: behaviors.WALL,
|
behavior: behaviors.WALL,
|
||||||
category: "machines",
|
category: "machines",
|
||||||
tick: function(pixel){
|
tick: function(pixel){
|
||||||
|
|
@ -846,9 +925,9 @@ elements.seed_maker = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
elements.ethylene = {
|
elements.ethylene = {
|
||||||
behavior: behaviors.GAS,
|
behavior: behaviors.GAS,
|
||||||
category: "gases",
|
category: "gases",
|
||||||
reactionCatalysts: {
|
reactionCatalysts: {
|
||||||
|
|
@ -880,8 +959,8 @@ elements.ethylene = {
|
||||||
pixel.color = ["#fffffc", "#f7f7f2", "#eaebe6", "#ededed", "#f7f7f2", "#f2f2f2"][Math.floor(Math.random()*6)];
|
pixel.color = ["#fffffc", "#f7f7f2", "#eaebe6", "#ededed", "#f7f7f2", "#f2f2f2"][Math.floor(Math.random()*6)];
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
elements.propylene = {
|
elements.propylene = {
|
||||||
behavior: behaviors.GAS,
|
behavior: behaviors.GAS,
|
||||||
category: "gases",
|
category: "gases",
|
||||||
reactionCatalysts: {
|
reactionCatalysts: {
|
||||||
|
|
@ -909,15 +988,15 @@ elements.propylene = {
|
||||||
pixel.color = ["#fffffc", "#f7f7f2", "#eaebe6", "#ededed", "#f7f7f2", "#f2f2f2"][Math.floor(Math.random()*6)];
|
pixel.color = ["#fffffc", "#f7f7f2", "#eaebe6", "#ededed", "#f7f7f2", "#f2f2f2"][Math.floor(Math.random()*6)];
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
elements.propane.reactionCatalysts = {
|
elements.propane.reactionCatalysts = {
|
||||||
aluminum: {e2: "hydrogen", product: "propylene", chance: 0.035},
|
aluminum: {e2: "hydrogen", product: "propylene", chance: 0.035},
|
||||||
gallium: {e2: "hydrogen", product: "propylene", chance: 0.025},
|
gallium: {e2: "hydrogen", product: "propylene", chance: 0.025},
|
||||||
};
|
};
|
||||||
elements.propane.tick = function(pixel){
|
elements.propane.tick = function(pixel){
|
||||||
catalyse(pixel);
|
catalyse(pixel);
|
||||||
}
|
}
|
||||||
runAfterAutogen(()=>{
|
runAfterAutogen(()=>{
|
||||||
let r;
|
let r;
|
||||||
if(settings.cleargases){
|
if(settings.cleargases){
|
||||||
if(settings.bg != undefined){
|
if(settings.bg != undefined){
|
||||||
|
|
@ -928,8 +1007,8 @@ runAfterAutogen(()=>{
|
||||||
};
|
};
|
||||||
elements.ethylene.color = r;
|
elements.ethylene.color = r;
|
||||||
elements.propylene.color = r;
|
elements.propylene.color = r;
|
||||||
})
|
})
|
||||||
function catalyse(pixel){
|
function catalyse(pixel){
|
||||||
let rC = elements[pixel.element].reactionCatalysts;
|
let rC = elements[pixel.element].reactionCatalysts;
|
||||||
let neighbors = [];
|
let neighbors = [];
|
||||||
let p = [];
|
let p = [];
|
||||||
|
|
@ -961,30 +1040,30 @@ function catalyse(pixel){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elements.orange = new fruit("orange", ['#FA9A14', '#E88D0F', '#F0963D', '#F4810E'], ['#FFDA0B', '#FFEA09', '#FFD609', '#FCC921'], "tree");
|
elements.orange = new fruit("orange", ['#FA9A14', '#E88D0F', '#F0963D', '#F4810E'], ['#FFDA0B', '#FFEA09', '#FFD609', '#FCC921'], "tree");
|
||||||
elements.orange_seed = new treeSeed("orange", ['#EEE9C7', '#F4F1D0', '#E8E4C4', '#DBD5AF']);
|
elements.orange_seed = new treeSeed("orange", ['#EEE9C7', '#F4F1D0', '#E8E4C4', '#DBD5AF']);
|
||||||
elements.kiwi = new fruit("kiwi", ['#886002', '#7D5B0D', '#876412', '#97620F'], ['#7DB410', '#86BC1B', '#95CE22', '#91CF12'], "vine");
|
elements.kiwi = new fruit("kiwi", ['#886002', '#7D5B0D', '#876412', '#97620F'], ['#7DB410', '#86BC1B', '#95CE22', '#91CF12'], "vine");
|
||||||
elements.kiwi_seed = new vineSeed("kiwi", ['#3E2A01', '#392804', '#473307', '#1E1500']);
|
elements.kiwi_seed = new vineSeed("kiwi", ['#3E2A01', '#392804', '#473307', '#1E1500']);
|
||||||
elements.raspberry = new fruit("raspberry", ['#FF201C', '#EF3D3A', '#FA5350', '#DF3E3B'], ['#FF4450', '#F43643', '#DF2C38', '#E92344'], "bush");
|
elements.raspberry = new fruit("raspberry", ['#FF201C', '#EF3D3A', '#FA5350', '#DF3E3B'], ['#FF4450', '#F43643', '#DF2C38', '#E92344'], "bush");
|
||||||
elements.raspberry_seed = new bushSeed("raspberry", ['#572600', '#4C2506', '#592E0D', '#5E3211']);
|
elements.raspberry_seed = new bushSeed("raspberry", ['#572600', '#4C2506', '#592E0D', '#5E3211']);
|
||||||
elements.blueberry = new fruit("blueberry", ['#322954', '#3F3366', '#2B1B5E', '#4C3C81'], ['#51042C', '#550E33', '#420D28', '#520F32'], "bush", ['#78573A', '#72492D', '#7D5438', '#704F3A']);
|
elements.blueberry = new fruit("blueberry", ['#322954', '#3F3366', '#2B1B5E', '#4C3C81'], ['#51042C', '#550E33', '#420D28', '#520F32'], "bush", ['#78573A', '#72492D', '#7D5438', '#704F3A']);
|
||||||
elements.blackberry = new fruit("blackberry", ['#1A013A', '#1E073A', '#3D0A49', '#33043F'], ['#DC5F5F', '#D76D6D', '#BF6363', '#B05D5D'], "bush", ['#DA7878', '#C87B7B', '#AD6161', '#915656']);
|
elements.blackberry = new fruit("blackberry", ['#1A013A', '#1E073A', '#3D0A49', '#33043F'], ['#DC5F5F', '#D76D6D', '#BF6363', '#B05D5D'], "bush", ['#DA7878', '#C87B7B', '#AD6161', '#915656']);
|
||||||
elements.blackberry.bloomColor = ["#f5f5f5", "#ede8ec", "#ebdfe8", "#f7f2f6", "#ffffff"];
|
elements.blackberry.bloomColor = ["#f5f5f5", "#ede8ec", "#ebdfe8", "#f7f2f6", "#ffffff"];
|
||||||
elements.strawberry = new fruit("strawberry", ['#FE3030', '#E93030', '#DE1F1F', '#CE0B0B'], ['#EA5C46', '#E24B34', '#CE5A48', '#E7604B'], "vine", ['#B27F65', '#AA7358', '#A27553', '#AF8B62'], false, true);
|
elements.strawberry = new fruit("strawberry", ['#FE3030', '#E93030', '#DE1F1F', '#CE0B0B'], ['#EA5C46', '#E24B34', '#CE5A48', '#E7604B'], "vine", ['#B27F65', '#AA7358', '#A27553', '#AF8B62'], false, true);
|
||||||
elements.pear = new fruit("pear", ["#F1F8A7", "#DCE398", "#E3EE7E", "#D6E07F"], ["#F6F9D5", "#F6F9D5", "#E8ECC6", "#E8ECC0"], "tree", ["#3B1C01", "#3E2107", "#3A1C02"]);
|
elements.pear = new fruit("pear", ["#F1F8A7", "#DCE398", "#E3EE7E", "#D6E07F"], ["#F6F9D5", "#F6F9D5", "#E8ECC6", "#E8ECC0"], "tree", ["#3B1C01", "#3E2107", "#3A1C02"]);
|
||||||
elements.mango = new fruit("mango", ["#F74E3E", "#E95D51", "#EE853B", "#D77026", "#F8BF46", "#F8B524", "#95C408", "#A5CD2D"], ["#FFC905", "#FFD605", "#FFE205", "#FFF305", "#FCE118"], "tree", ["#E8EABB", "#E3E5BA", "#EAEDC0", "#E8EAB1", "#D8DBA5"]);
|
elements.mango = new fruit("mango", ["#F74E3E", "#E95D51", "#EE853B", "#D77026", "#F8BF46", "#F8B524", "#95C408", "#A5CD2D"], ["#FFC905", "#FFD605", "#FFE205", "#FFF305", "#FCE118"], "tree", ["#E8EABB", "#E3E5BA", "#EAEDC0", "#E8EAB1", "#D8DBA5"]);
|
||||||
elements.lemon = new fruit("lemon", ["#FCF924", "#FCF924", "#EEEA1A", "#F6F212", "#FBF70B"], ["#F6F373", "#EEEC77", "#E3E267", "#F3F18B"], "tree", ["#F8F7B2", "#E9E9B1", "#E9E8A7", "#F1EFA4"]);
|
elements.lemon = new fruit("lemon", ["#FCF924", "#FCF924", "#EEEA1A", "#F6F212", "#FBF70B"], ["#F6F373", "#EEEC77", "#E3E267", "#F3F18B"], "tree", ["#F8F7B2", "#E9E9B1", "#E9E8A7", "#F1EFA4"]);
|
||||||
elements.plum = new fruit("plum", ["#67486E", "#705476", "#634A69", "#785281"], ["#D58D77", "#DC9984", "#CA8D7A", "#CF816A"], "tree", ["#A08C5D", "#907D50", "#9B8551", "#AA9563"]);
|
elements.plum = new fruit("plum", ["#67486E", "#705476", "#634A69", "#785281"], ["#D58D77", "#DC9984", "#CA8D7A", "#CF816A"], "tree", ["#A08C5D", "#907D50", "#9B8551", "#AA9563"]);
|
||||||
elements.plum.bloomColor = ["#ffb3df", "#ffa6da", "#ffbde3", "#ffd1ec"];
|
elements.plum.bloomColor = ["#ffb3df", "#ffa6da", "#ffbde3", "#ffd1ec"];
|
||||||
elements.peach = new fruit("peach", ["#F76856", "#EA5D4A", "#EA6D4A", "#E5785A", "#FE824A", "#EE7A45", "#FAA543", "#F59D39", "#FF744D"], ["#F86F1F", "#EC742F", "#EC832F", "#EC9A2F", "#ECA62F"], "tree", ["#735940", "#7B5C3D", "#7D5935"]);
|
elements.peach = new fruit("peach", ["#F76856", "#EA5D4A", "#EA6D4A", "#E5785A", "#FE824A", "#EE7A45", "#FAA543", "#F59D39", "#FF744D"], ["#F86F1F", "#EC742F", "#EC832F", "#EC9A2F", "#ECA62F"], "tree", ["#735940", "#7B5C3D", "#7D5935"]);
|
||||||
elements.peach.bloomColor = ["#ffb3df", "#ffa6da", "#ffbde3", "#ffd1ec"];
|
elements.peach.bloomColor = ["#ffb3df", "#ffa6da", "#ffbde3", "#ffd1ec"];
|
||||||
elements.apricot = new fruit("apricot", ["#F5A61F", "#F5A61F", "#EA9B12", "#F8A109"], ["#F2B016", "#F2AD0C", "#FBB81E", "#FFB301"], "tree", ["#735940", "#7B5C3D", "#7D5935"]);
|
elements.apricot = new fruit("apricot", ["#F5A61F", "#F5A61F", "#EA9B12", "#F8A109"], ["#F2B016", "#F2AD0C", "#FBB81E", "#FFB301"], "tree", ["#735940", "#7B5C3D", "#7D5935"]);
|
||||||
elements.apricot.bloomColor = ["#fff0fb", "#ffffff", "#fadef3", "#fcd9f4"];
|
elements.apricot.bloomColor = ["#fff0fb", "#ffffff", "#fadef3", "#fcd9f4"];
|
||||||
elements.avocado = new fruit("avocado", ["#3c9419", "#348514", "#367a1b", "#2f7d10"], ["#cff74a", "#caf244", "#c1e649", "#b3d640"], "tree", ["#4d290a", "#4d2b0d", "#63360f", "#572d09"]);
|
elements.avocado = new fruit("avocado", ["#3c9419", "#348514", "#367a1b", "#2f7d10"], ["#cff74a", "#caf244", "#c1e649", "#b3d640"], "tree", ["#4d290a", "#4d2b0d", "#63360f", "#572d09"]);
|
||||||
elements.avocado.bloomColor = ["#e3ff9c", "#e1ff96", "#e6ffa6", "#e1faa2"];
|
elements.avocado.bloomColor = ["#e3ff9c", "#e1ff96", "#e6ffa6", "#e1faa2"];
|
||||||
elements.avocado.breakInto = "guacamole";
|
elements.avocado.breakInto = "guacamole";
|
||||||
elements.guacamole = {
|
elements.guacamole = {
|
||||||
color: ["#cff74a", "#caf244", "#c1e649", "#b3d640"],
|
color: ["#cff74a", "#caf244", "#c1e649", "#b3d640"],
|
||||||
behavior: behaviors.LIQUID,
|
behavior: behaviors.LIQUID,
|
||||||
viscosity: 1350,
|
viscosity: 1350,
|
||||||
|
|
@ -1005,38 +1084,38 @@ elements.guacamole = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
runAfterAutogen(()=>{settingsMenu.innerHTML += `
|
runAfterAutogen(()=>{settingsMenu.innerHTML += `
|
||||||
<span setting="cleargases" class="setting-span multisetting" title="Default: ON">
|
<span setting="cleargases" class="setting-span multisetting" title="Default: ON">
|
||||||
<input type="button" value="Clear Gases" id="settingLabel-clearGases" class="toggleInput" onclick="toggleInput(this,'cleargases',false); r = undefined;" state="1">
|
<input type="button" value="Clear Gases" id="settingLabel-clearGases" class="toggleInput" onclick="toggleInput(this,'cleargases',false); r = undefined;" state="1">
|
||||||
</span>`;});
|
</span>`;});
|
||||||
elements.cocoa = new fruit("cocoa", ["#b09533", "#ad9439", "#b39736", "#99732c", "#ab8338", "#ad8231"], ["#826a3e", "#634f28", "#634b1f", "#5c461c"], "tree", ["#826a3e", "#634f28", "#634b1f", "#5c461c"]);
|
elements.cocoa = new fruit("cocoa", ["#b09533", "#ad9439", "#b39736", "#99732c", "#ab8338", "#ad8231"], ["#826a3e", "#634f28", "#634b1f", "#5c461c"], "tree", ["#826a3e", "#634f28", "#634b1f", "#5c461c"]);
|
||||||
elements.cocoa.breakInto = "cocoa_seed";
|
elements.cocoa.breakInto = "cocoa_seed";
|
||||||
elements.cocoa_seed.name = "CocoaBean";
|
elements.cocoa_seed.name = "CocoaBean";
|
||||||
elements.cocoa_seed.breakInto = undefined;
|
elements.cocoa_seed.breakInto = undefined;
|
||||||
elements.cocoa_seed.tempHigh = 125;
|
elements.cocoa_seed.tempHigh = 125;
|
||||||
elements.cocoa_seed.stateHigh = "roasted_cocoa_bean";
|
elements.cocoa_seed.stateHigh = "roasted_cocoa_bean";
|
||||||
elements.roasted_cocoa_bean = {
|
elements.roasted_cocoa_bean = {
|
||||||
category: "food",
|
category: "food",
|
||||||
behavior: behaviors.POWDER,
|
behavior: behaviors.POWDER,
|
||||||
extract: "melted_cocoa_butter",
|
extract: "melted_cocoa_butter",
|
||||||
color: ["#2b1b01", "#291a02", "#211503", "#211503"],
|
color: ["#2b1b01", "#291a02", "#211503", "#211503"],
|
||||||
breakInto: "cocoa_powder",
|
breakInto: "cocoa_powder",
|
||||||
}
|
}
|
||||||
elements.cocoa_powder = {
|
elements.cocoa_powder = {
|
||||||
category: "food",
|
category: "food",
|
||||||
behavior: behaviors.POWDER,
|
behavior: behaviors.POWDER,
|
||||||
color: ["#3b2604", "#332104", "#402802", "#301e01"],
|
color: ["#3b2604", "#332104", "#402802", "#301e01"],
|
||||||
}
|
}
|
||||||
elements.cocoa_butter = {
|
elements.cocoa_butter = {
|
||||||
behavior: behaviors.STURDYPOWDER,
|
behavior: behaviors.STURDYPOWDER,
|
||||||
tempHigh: 36,
|
tempHigh: 36,
|
||||||
color: ["#feffe8", "#f4f5dc", "#fcfce1", "#feffed", "#feffd6"],
|
color: ["#feffe8", "#f4f5dc", "#fcfce1", "#feffed", "#feffd6"],
|
||||||
category: "food",
|
category: "food",
|
||||||
isFood: true,
|
isFood: true,
|
||||||
stateHigh: "melted_cocoa_butter",
|
stateHigh: "melted_cocoa_butter",
|
||||||
}
|
}
|
||||||
elements.melted_cocoa_butter = {
|
elements.melted_cocoa_butter = {
|
||||||
behavior: behaviors.LIQUID,
|
behavior: behaviors.LIQUID,
|
||||||
color: ["#fff082", "#e3d676", "#f2e57e", "#fff07d"],
|
color: ["#fff082", "#e3d676", "#f2e57e", "#fff07d"],
|
||||||
tempLow: 35,
|
tempLow: 35,
|
||||||
|
|
@ -1048,8 +1127,8 @@ elements.melted_cocoa_butter = {
|
||||||
isFood: true,
|
isFood: true,
|
||||||
viscosity: 750,
|
viscosity: 750,
|
||||||
temp: 36,
|
temp: 36,
|
||||||
};
|
};
|
||||||
elements.extractor = {
|
elements.extractor = {
|
||||||
category: "machines",
|
category: "machines",
|
||||||
behavior: behaviors.WALL,
|
behavior: behaviors.WALL,
|
||||||
tick: function(pixel){
|
tick: function(pixel){
|
||||||
|
|
@ -1061,8 +1140,8 @@ elements.extractor = {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
movable: false,
|
movable: false,
|
||||||
}
|
}
|
||||||
elements.pineapple_seed = {
|
elements.pineapple_seed = {
|
||||||
behavior: behaviors.POWDER,
|
behavior: behaviors.POWDER,
|
||||||
color: ["#242000", "#1f1c00", "#1a1701", "#1f1c01"],
|
color: ["#242000", "#1f1c00", "#1a1701", "#1f1c01"],
|
||||||
category: "life",
|
category: "life",
|
||||||
|
|
@ -1084,8 +1163,8 @@ elements.pineapple_seed = {
|
||||||
}
|
}
|
||||||
pixel.age++;
|
pixel.age++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elements.unripe_fruit = {
|
elements.unripe_fruit = {
|
||||||
category: "life",
|
category: "life",
|
||||||
breakInto: ["poison", "sugar_water", "dirty_water"],
|
breakInto: ["poison", "sugar_water", "dirty_water"],
|
||||||
color: ["#7ed934", "#78d42c", "#7cdb2e", "#7bde2a"],
|
color: ["#7ed934", "#78d42c", "#7cdb2e", "#7bde2a"],
|
||||||
|
|
@ -1100,16 +1179,16 @@ elements.unripe_fruit = {
|
||||||
}
|
}
|
||||||
pixel.age++;
|
pixel.age++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elements.pineapple = {
|
elements.pineapple = {
|
||||||
category: "food",
|
category: "food",
|
||||||
breakInto: "juice",
|
breakInto: "juice",
|
||||||
bloomColor: ["#ff6682", "#ff6e88", "#ff6198", "#de73a5"],
|
bloomColor: ["#ff6682", "#ff6e88", "#ff6198", "#de73a5"],
|
||||||
color: ["#ffe712", "#f0d802", "#f2db05", "#d9c409"],
|
color: ["#ffe712", "#f0d802", "#f2db05", "#d9c409"],
|
||||||
breakIntoColor: ["#fafa2a", "#f2f23d", "#f7f748", "#eded26"],
|
breakIntoColor: ["#fafa2a", "#f2f23d", "#f7f748", "#eded26"],
|
||||||
isFood: true,
|
isFood: true,
|
||||||
}
|
}
|
||||||
elements.sugarcane = {
|
elements.sugarcane = {
|
||||||
category: "life",
|
category: "life",
|
||||||
extract: "sugar_water",
|
extract: "sugar_water",
|
||||||
color: ["#60d10f", "#5abf11", "#66cc1d", "#78ed24"],
|
color: ["#60d10f", "#5abf11", "#66cc1d", "#78ed24"],
|
||||||
|
|
@ -1141,8 +1220,8 @@ elements.sugarcane = {
|
||||||
}
|
}
|
||||||
pixel.age++;
|
pixel.age++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elements.sugarcane_seed = {
|
elements.sugarcane_seed = {
|
||||||
category: "life",
|
category: "life",
|
||||||
behavior: behaviors.POWDER,
|
behavior: behaviors.POWDER,
|
||||||
color: ["#f0e07a", "#e0d277", "#e3ca71", "#d9ba77"],
|
color: ["#f0e07a", "#e0d277", "#e3ca71", "#d9ba77"],
|
||||||
|
|
@ -1158,11 +1237,11 @@ elements.sugarcane_seed = {
|
||||||
}
|
}
|
||||||
pixel.age++;
|
pixel.age++;
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
elements.watermelon = new fruit("watermelon", ["#0e6614", "#065c0c", "#03700b", "#109119", "#098f12"], ["#ff4242", "#ed2f2f", "#ff2e2e", "#ed2828"]);
|
elements.watermelon = new fruit("watermelon", ["#0e6614", "#065c0c", "#03700b", "#109119", "#098f12"], ["#ff4242", "#ed2f2f", "#ff2e2e", "#ed2828"]);
|
||||||
elements.watermelon.bloomColor = ["#e9ed11", "#f1f50a", "#fbff19", "#fbff29"];
|
elements.watermelon.bloomColor = ["#e9ed11", "#f1f50a", "#fbff19", "#fbff29"];
|
||||||
elements.watermelon.behavior = behaviors.WALL;
|
elements.watermelon.behavior = behaviors.WALL;
|
||||||
elements.watermelon_seed = {
|
elements.watermelon_seed = {
|
||||||
behavior: behaviors.POWDER,
|
behavior: behaviors.POWDER,
|
||||||
color: ["#5e4a22", "#423417", "#241b0b", "#1f1709", "#120e05"],
|
color: ["#5e4a22", "#423417", "#241b0b", "#1f1709", "#120e05"],
|
||||||
category: "life",
|
category: "life",
|
||||||
|
|
@ -1192,9 +1271,9 @@ elements.watermelon_seed = {
|
||||||
}
|
}
|
||||||
pixel.age++;
|
pixel.age++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elements.tomato.bloomColor = ["#edd93e", "#fae334", "#e6dc22", "#f5ec3d"];
|
elements.tomato.bloomColor = ["#edd93e", "#fae334", "#e6dc22", "#f5ec3d"];
|
||||||
elements.banana_seed = {
|
elements.banana_seed = {
|
||||||
behavior: [['XX', 'XX', 'XX'],['XX', 'XX', 'XX'],['M2', 'M1 AND ST:wood', 'M2']],
|
behavior: [['XX', 'XX', 'XX'],['XX', 'XX', 'XX'],['M2', 'M1 AND ST:wood', 'M2']],
|
||||||
color: ["#121211", "#121211", "#0f0f0e", "#171716"],
|
color: ["#121211", "#121211", "#0f0f0e", "#171716"],
|
||||||
category: "life",
|
category: "life",
|
||||||
|
|
@ -1240,17 +1319,17 @@ elements.banana_seed = {
|
||||||
}
|
}
|
||||||
pixel.age++;
|
pixel.age++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elements.dead_plant.behavior = [["XX","XX","XX"],["XX","CH:dirt%0.015","XX"],["M2","M1","M2"]];
|
elements.dead_plant.behavior = [["XX","XX","XX"],["XX","CH:dirt%0.015","XX"],["M2","M1","M2"]];
|
||||||
elements.banana = {
|
elements.banana = {
|
||||||
category: "food",
|
category: "food",
|
||||||
breakInto: "juice",
|
breakInto: "juice",
|
||||||
bloomColor: ["#6e2942", "#63293e", "#703249", "#82314f"],
|
bloomColor: ["#6e2942", "#63293e", "#703249", "#82314f"],
|
||||||
color: ["#e8de20", "#f2e824", "#f0e626", "#ebe01c", "#f0e51a"],
|
color: ["#e8de20", "#f2e824", "#f0e626", "#ebe01c", "#f0e51a"],
|
||||||
breakIntoColor: ["#f2f0cb", "#f0eec5", "#f2f0c4"],
|
breakIntoColor: ["#f2f0cb", "#f0eec5", "#f2f0c4"],
|
||||||
isFood: true,
|
isFood: true,
|
||||||
};
|
};
|
||||||
elements.coconut = {
|
elements.coconut = {
|
||||||
behavior: [['XX', 'XX', 'XX'],['XX', 'XX', 'XX'],['M2', 'M1 AND ST:wood', 'M2']],
|
behavior: [['XX', 'XX', 'XX'],['XX', 'XX', 'XX'],['M2', 'M1 AND ST:wood', 'M2']],
|
||||||
color: ["#291706", "#382007", "#2e1905", "#361d05", "#361e06"],
|
color: ["#291706", "#382007", "#2e1905", "#361d05", "#361e06"],
|
||||||
category: "food",
|
category: "food",
|
||||||
|
|
@ -1305,8 +1384,8 @@ elements.coconut = {
|
||||||
}
|
}
|
||||||
pixel.age++;
|
pixel.age++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elements.coconut_oil = {
|
elements.coconut_oil = {
|
||||||
behavior: behaviors.SOLID,
|
behavior: behaviors.SOLID,
|
||||||
color: ["#f0efed", "#edeceb", "#e6e4e3", "#ebe9e8"],
|
color: ["#f0efed", "#edeceb", "#e6e4e3", "#ebe9e8"],
|
||||||
category: "food",
|
category: "food",
|
||||||
|
|
@ -1318,8 +1397,8 @@ elements.coconut_oil = {
|
||||||
tempHigh: 24,
|
tempHigh: 24,
|
||||||
stateHigh: "melted_coconut_oil",
|
stateHigh: "melted_coconut_oil",
|
||||||
state: "solid",
|
state: "solid",
|
||||||
}
|
}
|
||||||
elements.melted_coconut_oil = {
|
elements.melted_coconut_oil = {
|
||||||
behavior: behaviors.LIQUID,
|
behavior: behaviors.LIQUID,
|
||||||
color: ["#f0f0eb", "#e6e5d5", "#f5f4e6", "#f7f7e6", "#ededdd"],
|
color: ["#f0f0eb", "#e6e5d5", "#f5f4e6", "#f7f7e6", "#ededdd"],
|
||||||
viscosity: 750,
|
viscosity: 750,
|
||||||
|
|
@ -1332,8 +1411,8 @@ elements.melted_coconut_oil = {
|
||||||
},
|
},
|
||||||
tempLow: 23,
|
tempLow: 23,
|
||||||
stateLow: "coconut_oil"
|
stateLow: "coconut_oil"
|
||||||
}
|
}
|
||||||
elements.coconut_water = {
|
elements.coconut_water = {
|
||||||
color: ["#8dd6d9", "#8cd9db", "#82d6d9"],
|
color: ["#8dd6d9", "#8cd9db", "#82d6d9"],
|
||||||
behavior: behaviors.LIQUID,
|
behavior: behaviors.LIQUID,
|
||||||
isFood: true,
|
isFood: true,
|
||||||
|
|
@ -1341,8 +1420,8 @@ elements.coconut_water = {
|
||||||
state: "liquid",
|
state: "liquid",
|
||||||
tempHigh: 100,
|
tempHigh: 100,
|
||||||
stateHigh: ["sugar", "steam", "steam", "steam", "potassium_salt", "salt", "epsom_salt", "steam", "steam", "steam"]
|
stateHigh: ["sugar", "steam", "steam", "steam", "potassium_salt", "salt", "epsom_salt", "steam", "steam", "steam"]
|
||||||
}
|
}
|
||||||
elements.morning_glory_seed = {
|
elements.morning_glory_seed = {
|
||||||
behavior: behaviors.VINEFRUIT,
|
behavior: behaviors.VINEFRUIT,
|
||||||
bloomColors: [["#f783f0", "#fa8cf3", "#fa96f3", "#f590ee"], ["#8d40f7", "#9a52ff", "#8041d9", "#7e3ade"], ["#ed5365", "#f0485b", "#f55b6d", "#eb3d51"], ["#f53d49", "#fa4652", "#f54e59", "#f23a46"], ["#f53d49", "#fa8cf3", "#f55b6d", "#f23a46"]],
|
bloomColors: [["#f783f0", "#fa8cf3", "#fa96f3", "#f590ee"], ["#8d40f7", "#9a52ff", "#8041d9", "#7e3ade"], ["#ed5365", "#f0485b", "#f55b6d", "#eb3d51"], ["#f53d49", "#fa4652", "#f54e59", "#f23a46"], ["#f53d49", "#fa8cf3", "#f55b6d", "#f23a46"]],
|
||||||
color: ["#5c5036", "#473e29", "#4f4631", "#fcf2b8"],
|
color: ["#5c5036", "#473e29", "#4f4631", "#fcf2b8"],
|
||||||
|
|
@ -1376,10 +1455,10 @@ elements.morning_glory_seed = {
|
||||||
}
|
}
|
||||||
pixel.age++;
|
pixel.age++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elements.apricot_seed.tempHigh = 175;
|
elements.apricot_seed.tempHigh = 175;
|
||||||
elements.apricot_seed.stateHigh = "almond";
|
elements.apricot_seed.stateHigh = "almond";
|
||||||
elements.almond = {
|
elements.almond = {
|
||||||
color: ["#ab9450", "#b3994d", "#a18943", "#a18c43", "#a18d47"],
|
color: ["#ab9450", "#b3994d", "#a18943", "#a18c43", "#a18d47"],
|
||||||
behavior: behaviors.POWDER,
|
behavior: behaviors.POWDER,
|
||||||
state: "solid",
|
state: "solid",
|
||||||
|
|
@ -1398,8 +1477,8 @@ elements.almond = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elements.almond_extract = {
|
elements.almond_extract = {
|
||||||
color: ["#cfccbe", "#d6d4c7", "#c9c7bb", "#ccc9b8"],
|
color: ["#cfccbe", "#d6d4c7", "#c9c7bb", "#ccc9b8"],
|
||||||
behavior: behaviors.LIQUID,
|
behavior: behaviors.LIQUID,
|
||||||
isFood: true,
|
isFood: true,
|
||||||
|
|
@ -1414,8 +1493,8 @@ elements.almond_extract = {
|
||||||
burnTime: 15,
|
burnTime: 15,
|
||||||
fireColor: ['#80acf0', '#96cdfe', '#bee6d4'],
|
fireColor: ['#80acf0', '#96cdfe', '#bee6d4'],
|
||||||
burnInto: ["fragrance", "smoke", "smoke"],
|
burnInto: ["fragrance", "smoke", "smoke"],
|
||||||
}
|
}
|
||||||
elements.frozen_almond_extract = {
|
elements.frozen_almond_extract = {
|
||||||
color: ["#cfccbe", "#d6d4c7", "#c9c7bb", "#ccc9b8"],
|
color: ["#cfccbe", "#d6d4c7", "#c9c7bb", "#ccc9b8"],
|
||||||
behavior: behaviors.SOLID,
|
behavior: behaviors.SOLID,
|
||||||
isFood: true,
|
isFood: true,
|
||||||
|
|
@ -1424,9 +1503,9 @@ elements.frozen_almond_extract = {
|
||||||
density: 865,
|
density: 865,
|
||||||
tempHigh: -117,
|
tempHigh: -117,
|
||||||
stateHigh: "almond_extract",
|
stateHigh: "almond_extract",
|
||||||
}
|
}
|
||||||
|
|
||||||
elements.onion = {
|
elements.onion = {
|
||||||
category: "food",
|
category: "food",
|
||||||
color: ["#dbaa5a", "#cc9b4b", "#bd9048", "#faebb4", "#fcf5d9", "#f2e9c7", "#7d2d50", "#ad3d6e", "#c25182"],
|
color: ["#dbaa5a", "#cc9b4b", "#bd9048", "#faebb4", "#fcf5d9", "#f2e9c7", "#7d2d50", "#ad3d6e", "#c25182"],
|
||||||
state: "solid",
|
state: "solid",
|
||||||
|
|
@ -1482,8 +1561,8 @@ elements.onion = {
|
||||||
}
|
}
|
||||||
pixel.age++;
|
pixel.age++;
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
elements.onion_seed = {
|
elements.onion_seed = {
|
||||||
behavior: behaviors.POWDER,
|
behavior: behaviors.POWDER,
|
||||||
color: ["#0f0f0f", "#0f0f0f", "#0a0a0a", "#0a0a0a"],
|
color: ["#0f0f0f", "#0f0f0f", "#0a0a0a", "#0a0a0a"],
|
||||||
category: "life",
|
category: "life",
|
||||||
|
|
@ -1501,4 +1580,46 @@ elements.onion_seed = {
|
||||||
changePixel(pixel, "onion");
|
changePixel(pixel, "onion");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
elements.grape.reactions.sugar_water = {elem2: "wine", chance: 0.0006};
|
||||||
|
elements.grape.reactions.water = {elem2: "wine", chance: 0.00006};
|
||||||
|
elements.wine = {
|
||||||
|
density: 992,
|
||||||
|
color: ["#381b30", "#402137", "#261321", "#38192f"],
|
||||||
|
behavior: behaviors.LIQUID,
|
||||||
|
category: "liquids",
|
||||||
|
state: "liquid",
|
||||||
|
properties: {
|
||||||
|
alcChance: 0.13,
|
||||||
|
},
|
||||||
|
tick: function(pixel){
|
||||||
|
if(Math.random() < 0.00025){
|
||||||
|
pixel.alcChance += 0.01;
|
||||||
|
}
|
||||||
|
if(pixel.temp >70){
|
||||||
|
let chanceMulti = (pixel.temp-70)/20;
|
||||||
|
let chance = (pixel.alcChance/100)*chanceMulti;
|
||||||
|
for(let coords of squareCoords){
|
||||||
|
let x = pixel.x+coords[0], y = pixel.y+coords[1];
|
||||||
|
if(isEmpty(x,y) && !outOfBounds(x,y) && Math.random() < chance){
|
||||||
|
createPixel("alcohol_gas", x,y);
|
||||||
|
if(Math.random() < 0.5){
|
||||||
|
let rgb = getRGB(pixel.color);
|
||||||
|
for(let key in rgb){
|
||||||
|
rgb[key] += 10;
|
||||||
|
rgb[key] = Math.max(rgb[key], 0);
|
||||||
|
}
|
||||||
|
changePixel(pixel, "juice");
|
||||||
|
|
||||||
|
pixel.color = noiseify(RGBToHex(rgb), 6);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
tempHigh: 100,
|
||||||
|
stateHigh: ["sugar", "carbon_dioxide", "steam", "alcohol_gas"],
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue