new mod
* cell that makes a lot of heat * meta-cancer * cells that eat gold
This commit is contained in:
parent
58151e2e14
commit
7358d8ff8f
|
|
@ -0,0 +1,314 @@
|
|||
goldObject = {
|
||||
gold: 1,
|
||||
gold_coin: 1,
|
||||
gold_fairy: 3
|
||||
};
|
||||
|
||||
goldObjectNameArray = Object.keys(goldObject);
|
||||
|
||||
elements.cell_1 = {
|
||||
color: ["#bbee00","#eeee00","#cfee00"],
|
||||
behavior: [
|
||||
"XX|CL%0.5|XX",
|
||||
"CL%0.5|HT:1%2|CL%0.5",
|
||||
"M2%10|M1|M2%10",
|
||||
],
|
||||
uwu: 0,
|
||||
properties: {
|
||||
uwu: 0
|
||||
},
|
||||
tick: function(pixel) {
|
||||
pixel.uwu = 0;
|
||||
for (let i = -1; i < 2; i++) { //neighbor count
|
||||
for (let j = -1; j < 2; j++) {
|
||||
if (!isEmpty(pixel.x+j,pixel.y+i) && !outOfBounds(pixel.x+j,pixel.y+i)) {
|
||||
if (pixelMap[pixel.x+j][pixel.y+i].element == pixel.element) {
|
||||
pixel.uwu += 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
pixel.uwu -= 1; //exclude self
|
||||
|
||||
var tempGrowthDecrease = null;
|
||||
if(pixel.temp < 70) {
|
||||
tempGrowthDecrease = 0;
|
||||
} else if(pixel.temp > 100) {
|
||||
tempGrowthDecrease = 70;
|
||||
} else {
|
||||
tempGrowthDecrease = pixel.temp - 70;
|
||||
}
|
||||
|
||||
if(pixel.uwu == undefined || pixel.uwu == null || isNaN(pixel.uwu)) {
|
||||
uwu = 0;
|
||||
} else {
|
||||
var tempGain = pixel.uwu / 48;
|
||||
var chanceGain = pixel.uwu / 96;
|
||||
};
|
||||
if(Math.random() < ( (2 + chanceGain) - (tempGrowthDecrease / 30) )) {
|
||||
pixel.temp += tempGain;
|
||||
};
|
||||
},
|
||||
reactions: {
|
||||
"infection": { "elem1":"cancer", "chance":0.01 },
|
||||
"blood": { "elem1":"blood", "chance":0.01 },
|
||||
"antibody": { "elem1":"antibody", "chance":0.01 },
|
||||
"sugar": { "elem2":"cell", "chance":0.03 },
|
||||
"sugar_water": { "elem2":"cell", "chance":0.04 },
|
||||
"alcohol": { "elem1":[null,"dna"], "chance":0.02 },
|
||||
"poison": { "elem1":null, "chance":0.02 },
|
||||
"oxygen": { "elem2":"carbon_dioxide", "chance":0.05 },
|
||||
"ammonia": { "elem2":"nitrogen", "chance":0.05 },
|
||||
},
|
||||
tempHigh: 122,
|
||||
stateHigh: "steam",
|
||||
tempLow: -6,
|
||||
stateLow: "ice",
|
||||
state: "solid",
|
||||
density: 1000.2,
|
||||
category: "life",
|
||||
breakInto: ["water","dna","dna","dna"]
|
||||
};
|
||||
|
||||
elements.cell_2 = {
|
||||
color: ["#32280b","#5a4711","#87660c"],
|
||||
behavior: [
|
||||
"XX|CL%1.8|XX",
|
||||
"CL%1.8|XX|CL%1.8",
|
||||
"M2%5|M1|M2%5",
|
||||
],
|
||||
reactions: {
|
||||
"cancer": { "elem2":"cell_2", "chance":0.035 },
|
||||
"cell": { "elem2":"cell_2", "chance":0.001 },
|
||||
"frog": { "elem2":"cell_2", "chance":0.001 },
|
||||
"fish": { "elem2":"cell_2", "chance":0.001 },
|
||||
"rat": { "elem2":"cell_2", "chance":0.001 },
|
||||
"bird": { "elem2":"cell_2", "chance":0.001 },
|
||||
"sugar": { "elem2":"cell_2", "chance":0.035 },
|
||||
"sugar_water": { "elem2":"cell_2", "chance":0.045 },
|
||||
"alcohol": { "elem1":[null,"dna"], "chance":0.012 },
|
||||
"poison": { "elem1":[null,null,"poison","poison","poison","dna","dirty_water"], "chance":0.03 },
|
||||
"proton": { "elem1":[null,"cancer"], "chance":0.04 },
|
||||
},
|
||||
tempHigh: 80,
|
||||
stateHigh: ["steam","plague"],
|
||||
state: "solid",
|
||||
density: 1000.17,
|
||||
category: "life",
|
||||
breakInto: ["dirty_water","dna","dna","dna","dna"]
|
||||
};
|
||||
|
||||
elements.cell_3 = {
|
||||
color: ["#bbee00","#eeee00","#cfee00"],
|
||||
behavior: [
|
||||
"XX|CL%0.5|XX",
|
||||
"CL%0.5|HT:1%2|CL%0.5",
|
||||
"M2%10|M1|M2%10",
|
||||
],
|
||||
uwu: 0,
|
||||
properties: {
|
||||
uwu: 0
|
||||
},
|
||||
tick: function(pixel) {
|
||||
pixel.uwu = 0;
|
||||
for (let i = -1; i < 2; i++) { //neighbor count
|
||||
for (let j = -1; j < 2; j++) {
|
||||
if (!isEmpty(pixel.x+j,pixel.y+i) && !outOfBounds(pixel.x+j,pixel.y+i)) {
|
||||
if (pixelMap[pixel.x+j][pixel.y+i].element == pixel.element) {
|
||||
pixel.uwu += 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
pixel.uwu -= 1; //exclude self
|
||||
|
||||
var tempGrowthDecrease = null;
|
||||
if(pixel.temp < 70) {
|
||||
tempGrowthDecrease = 0;
|
||||
} else if(pixel.temp > 100) {
|
||||
tempGrowthDecrease = 70;
|
||||
} else {
|
||||
tempGrowthDecrease = pixel.temp - 70;
|
||||
}
|
||||
|
||||
if(pixel.uwu == undefined || pixel.uwu == null || isNaN(pixel.uwu)) {
|
||||
uwu = 0;
|
||||
} else {
|
||||
var tempGain = pixel.uwu / 48;
|
||||
var chanceGain = pixel.uwu / 96;
|
||||
};
|
||||
if(Math.random() < ( (2 + chanceGain) - (tempGrowthDecrease / 30) )) {
|
||||
pixel.temp += tempGain;
|
||||
};
|
||||
},
|
||||
reactions: {
|
||||
"infection": { "elem1":"cancer", "chance":0.01 },
|
||||
"blood": { "elem1":"blood", "chance":0.01 },
|
||||
"antibody": { "elem1":"antibody", "chance":0.01 },
|
||||
"sugar": { "elem2":"cell", "chance":0.03 },
|
||||
"sugar_water": { "elem2":"cell", "chance":0.04 },
|
||||
"alcohol": { "elem1":[null,"dna"], "chance":0.02 },
|
||||
"poison": { "elem1":null, "chance":0.02 },
|
||||
"oxygen": { "elem2":"carbon_dioxide", "chance":0.05 },
|
||||
"ammonia": { "elem2":"nitrogen", "chance":0.05 },
|
||||
},
|
||||
tempHigh: 122,
|
||||
stateHigh: "steam",
|
||||
tempLow: -6,
|
||||
stateLow: "ice",
|
||||
state: "solid",
|
||||
density: 1000.2,
|
||||
category: "life",
|
||||
breakInto: ["water","dna","dna","dna"]
|
||||
};
|
||||
|
||||
elements.cell_3 = {
|
||||
color: ["#eeee00","#eecc00","#dddd00"],
|
||||
behavior: [
|
||||
"XX|CL%0|XX", //CL%0 for display purposes
|
||||
"CL%0|XX|CL%0",
|
||||
"M2%10|M1|M2%10",
|
||||
],
|
||||
reactions: {
|
||||
"infection": { "elem1":"cancer", "chance":0.01 },
|
||||
"blood": { "elem1":"blood", "chance":0.01 },
|
||||
"antibody": { "elem1":"antibody", "chance":0.01 },
|
||||
"sugar": { "elem2":"cell", "chance":0.03 },
|
||||
"sugar_water": { "elem2":"cell", "chance":0.04 },
|
||||
"alcohol": { "elem1":[null,"dna"], "chance":0.02 },
|
||||
"poison": { "elem1":null, "chance":0.02 },
|
||||
"oxygen": { "elem2":"carbon_dioxide", "chance":0.05 },
|
||||
"ammonia": { "elem2":"nitrogen", "chance":0.05 },
|
||||
},
|
||||
tempHigh: 102,
|
||||
stateHigh: "steam",
|
||||
tempLow: -2,
|
||||
stateLow: "ice",
|
||||
state: "solid",
|
||||
density: 1000.1,
|
||||
category: "life",
|
||||
breakInto: ["water","dna","dna","dna"],
|
||||
gold: 0,
|
||||
properties: {
|
||||
gold: 0
|
||||
},
|
||||
tick: function(pixel) {
|
||||
var pX = pixel.x
|
||||
var pY = pixel.y
|
||||
var baseEatRate = 1;
|
||||
var eatRate = baseEatRate + (2 * pixel.gold * 0.01);
|
||||
if(Math.random() < eatRate/100) {
|
||||
var randomNeighborNumber = Math.floor(Math.random() * 4)
|
||||
var oX = adjacentCoords[randomNeighborNumber][0];
|
||||
var oY = adjacentCoords[randomNeighborNumber][1];
|
||||
var checkPosX = pX+oX;
|
||||
var checkPosY = pY+oY;
|
||||
|
||||
if(!isEmpty(checkPosX,checkPosY,true)) {
|
||||
if(goldObjectNameArray.includes(pixelMap[checkPosX][checkPosY].element)) {
|
||||
pixel.gold += goldObject[pixelMap[checkPosX][checkPosY].element];
|
||||
deletePixel(checkPosX,checkPosY);
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
var baseGrowthRate = 0.5;
|
||||
var growthRate = baseGrowthRate + (pixel.gold * 0.025);
|
||||
|
||||
if(pixel.gold > 150) {
|
||||
var chance = (pixel.gold - 150) / 20
|
||||
var baseRadius = 10
|
||||
var radius = Math.max(20,Math.round((baseRadius + (pixel.gold / 25))))
|
||||
if(Math.random() < (chance / 100)) {
|
||||
explodeAt(pX,pY,10,"gold_coin");
|
||||
};
|
||||
};
|
||||
|
||||
if(Math.random() < growthRate/100) {
|
||||
var randomNeighborNumber = Math.floor(Math.random() * 4)
|
||||
var oX = adjacentCoords[randomNeighborNumber][0];
|
||||
var oY = adjacentCoords[randomNeighborNumber][1];
|
||||
var checkPosX = pX+oX;
|
||||
var checkPosY = pY+oY;
|
||||
|
||||
if(isEmpty(checkPosX,checkPosY,false)) {
|
||||
var halfGold1 = pixel.gold / 2;
|
||||
var halfGold2 = pixel.gold / 2;
|
||||
if(halfGold1 % 1 == 0.5) {
|
||||
halfGold1 = Math.ceil(halfGold1);
|
||||
halfGold2 = Math.floor(halfGold2);
|
||||
};
|
||||
createPixel(pixel.element,checkPosX,checkPosY);
|
||||
newPixel = pixelMap[checkPosX][checkPosY];
|
||||
pixel.gold = halfGold1;
|
||||
newPixel.gold = halfGold2;
|
||||
};
|
||||
};
|
||||
|
||||
},
|
||||
reactions: {
|
||||
"infection": { "elem1":"cancer", "chance":0.01 },
|
||||
"blood": { "elem1":"blood", "chance":0.01 },
|
||||
"antibody": { "elem1":"antibody", "chance":0.01 },
|
||||
"sugar": { "elem2":"cell", "chance":0.03 },
|
||||
"sugar_water": { "elem2":"cell", "chance":0.04 },
|
||||
"alcohol": { "elem1":[null,"dna"], "chance":0.02 },
|
||||
"poison": { "elem1":null, "chance":0.02 },
|
||||
"oxygen": { "elem2":"carbon_dioxide", "chance":0.05 },
|
||||
"ammonia": { "elem2":"nitrogen", "chance":0.05 },
|
||||
},
|
||||
tempHigh: 122,
|
||||
stateHigh: "steam",
|
||||
tempLow: -6,
|
||||
stateLow: "ice",
|
||||
state: "solid",
|
||||
density: 1000.2,
|
||||
category: "life",
|
||||
breakInto: ["water","dna","dna","dna"]
|
||||
};
|
||||
|
||||
if(enabledMods.includes("mods/fey_and_more.js")) {
|
||||
|
||||
elements.gold_fairy = {
|
||||
name: "gold fairy",
|
||||
color: ["#cfa65b","#e6df63","#faf673"],
|
||||
behavior: [
|
||||
"XX|M1|M1",
|
||||
"XX|FX%5|XX",
|
||||
"XX|CR:gold_coin%0.25 AND CR:fairy_dust%0.005 AND M1|M1",
|
||||
],
|
||||
state: "solid",
|
||||
category: "fey"
|
||||
};
|
||||
|
||||
elements.fairy.reactions.gold = { elem1: "gold_fairy", "elem2": null };
|
||||
elements.fairy.reactions.gold_coin = { elem1: "gold_fairy", "elem2": null };
|
||||
if(!elements.gold.reactions) {
|
||||
elements.gold.reactions = {};
|
||||
};
|
||||
if(!elements.gold_coin.reactions) {
|
||||
elements.gold_coin.reactions = {};
|
||||
};
|
||||
elements.gold.reactions.fairy = { elem1: null, elem2: "gold_fairy" };
|
||||
elements.gold_coin.reactions.fairy = { elem1: null, elem2: "gold_fairy" };
|
||||
|
||||
};
|
||||
|
||||
runAfterLoad(function() {
|
||||
if(enabledMods.includes("mods/fey_and_more.js")) {
|
||||
//eList rebuilding {
|
||||
eLists.FAIRY.push("gold_fairy");
|
||||
|
||||
elements.iron.behavior = [
|
||||
"XX|DL:"+eLists.FAIRY+"|XX",
|
||||
"DL:"+eLists.FAIRY+"|XX|DL:"+eLists.FAIRY+"",
|
||||
"XX|DL:"+eLists.FAIRY+"|XX"
|
||||
];
|
||||
elements.silver.behavior = [
|
||||
"XX|DL:"+eLists.FAIRY+"|XX",
|
||||
"DL:"+eLists.FAIRY+"|XX|DL:"+eLists.FAIRY+"",
|
||||
"XX|DL:"+eLists.FAIRY+"|XX"
|
||||
];
|
||||
//}
|
||||
};
|
||||
});
|
||||
Loading…
Reference in New Issue