From bc0e1e4229469c0a7928e6c6e3f005f4859a34cf Mon Sep 17 00:00:00 2001
From: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com>
Date: Sun, 3 Mar 2024 20:33:48 +0000
Subject: [PATCH 01/32] Update lost_souls.js - deleted lag by square scream
Signed-off-by: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com>
From 392704bf33ee4b06978a6c367b3d7f9f486fa9ae Mon Sep 17 00:00:00 2001
From: SquareScreamYT <134925668+SquareScreamYT@users.noreply.github.com>
Date: Mon, 4 Mar 2024 20:23:31 +0800
Subject: [PATCH 02/32] onione
---
mods/aChefsDream.js | 122 +++++++++++++++++++++++++++++++++++++++++---
1 file changed, 115 insertions(+), 7 deletions(-)
diff --git a/mods/aChefsDream.js b/mods/aChefsDream.js
index 14a2e690..c34e914d 100644
--- a/mods/aChefsDream.js
+++ b/mods/aChefsDream.js
@@ -2,7 +2,7 @@
Created by SquareScreamYT <@918475812884344852> and RealerRaddler <@914371295561535508>
Thanks to Alice <@697799964985786450>, nousernamefound <@316383921346707468>, Adora the Transfem <@778753696804765696> and Fioushemastor <@738828785482203189> for helping :)
-v1.8
+v1.9
me trying to come up with stuff not in plants.js:
@@ -282,6 +282,14 @@ Changelog (v1.8)
+Changelog (v1.9)
+ - added onion
+ - added cut onion
+ - added fried onion
+
+
+
+
*/
/*
@@ -316,19 +324,27 @@ elements.knife = {
if(cutInto instanceof Array) { cutInto = cutInto[Math.floor(Math.random() * cutInto.length)] };
//change pixel into the (chosen) element
//changePixel(pixel, cutInto)
+
+ var cutIntoEmit = elements[pixel.element].cutIntoEmit;
+ if (!cutIntoEmit) { return };
+ if(cutIntoEmit instanceof Array) { cutIntoEmit = cutIntoEmit[Math.floor(Math.random() * cutIntoEmit.length)] };
+ var thiselement = pixel.element;
if (shiftDown) {
if (Math.random() < 0.5) {
+ changePixel(pixel, cutInto)
+ if (elements[thiselement].cutIntoEmit && Math.random() < 0.5 && isEmpty(pixel.x,pixel.y-1)) {
+ createPixel(elements[thiselement].cutIntoEmit,pixel.x,pixel.y-1);
+ }
}
}
else if (!shiftDown) {
if (Math.random() < 0.1) {
changePixel(pixel, cutInto)
+ if (elements[thiselement].cutIntoEmit && Math.random() < 0.5 && isEmpty(pixel.x,pixel.y-1)) {
+ createPixel(elements[thiselement].cutIntoEmit,pixel.x,pixel.y-1);
+ }
}
}
- var thiselement = pixel.element;
- if (elements[thiselement].cutIntoEmit && Math.random() < 0.1 && isEmpty(pixel.x,pixel.y-1)) {
- createPixel(pixel.x,pixel.y-1,elements[thiselement].cutIntoEmit);
- }
},
category:"tools",
canPlace: false,
@@ -3687,8 +3703,6 @@ elements.cookie = {
elements.nut_oil.name = "cooking_oil"
-elements.fire.temp = 130
-
elements.bread.behavior = behaviors.SUPPORT
elements.toast.behavior = behaviors.SUPPORT
@@ -5019,3 +5033,97 @@ if ([pixel.element].stain < 0 && [pixel.element] != "soap" && [pixel.element] !=
[pixel.element].stain = [pixel.element].stain/10
}
*/
+elements.onion = {
+ color: "#731066",
+ behavior: behaviors.STURDYPOWDER,
+ category:"food",
+ tempHigh: 100,
+ stateHigh: "steam",
+ burn:65,
+ burnTime:60,
+ burnInto: "steam",
+ state: "solid",
+ density: 1050,
+ cutInto: "cut_onion",
+ cutIntoEmit: "stench",
+}
+elements.cut_onion = {
+ color: "#dcc5ed",
+ behavior: behaviors.STURDYPOWDER,
+ category:"food",
+ tempHigh: 100,
+ stateHigh: "steam",
+ burn:65,
+ burnTime:60,
+ burnInto: "steam",
+ state: "solid",
+ density: 1050,
+ hidden: true,
+ reactions:{ "nut_oil": {elem1:"fried_onion", tempMin: 70, chance:10}}
+}
+elements.fried_onion = {
+ color: "#cf9344",
+ behavior: behaviors.POWDER,
+ category:"food",
+ tempHigh: 500,
+ stateHigh: "ash",
+ burn:65,
+ burnTime:60,
+ burnInto: "ash",
+ state: "solid",
+ density: 1050,
+ hidden: true,
+}
+
+elements.onion_seed = {
+ color: "#1a0e02",
+ tick: function(pixel) {
+ if (isEmpty(pixel.x,pixel.y+1)) {
+ movePixel(pixel,pixel.x,pixel.y+1);
+ }
+ else {
+ if (Math.random() < 0.2 && pixel.age > 50 && pixel.temp < 100) {
+ if (!outOfBounds(pixel.x,pixel.y+1)) {
+ var dirtPixel = pixelMap[pixel.x][pixel.y+1];
+ if (dirtPixel.element === "dirt" || dirtPixel.element === "mud" || dirtPixel.element === "sand" || dirtPixel.element === "wet_sand" || dirtPixel.element === "clay_soil" || dirtPixel.element === "mycelium") {
+ changePixel(dirtPixel,"root");
+ }
+ }
+ if (isEmpty(pixel.x,pixel.y-2) && isEmpty(pixel.x,pixel.y-1) && isEmpty(pixel.x+1,pixel.y-1) && isEmpty(pixel.x-1,pixel.y-1) && isEmpty(pixel.x+1,pixel.y) && isEmpty(pixel.x-1,pixel.y)) {
+ createPixel("onion",pixel.x,pixel.y-1);
+ createPixel("onion",pixel.x+1,pixel.y-1);
+ createPixel("onion",pixel.x-1,pixel.y-1);
+ createPixel("onion",pixel.x,pixel.y-2);
+ createPixel("onion",pixel.x+1,pixel.y);
+ createPixel("onion",pixel.x-1,pixel.y);
+ if (isEmpty(pixel.x+1,pixel.y-3) && isEmpty(pixel.x-1,pixel.y-3)) {
+ createPixel("plant",pixel.x-1,pixel.y-3);
+ createPixel("plant",pixel.x+1,pixel.y-3);
+ changePixel(pixel,"onion");
+ }
+ }
+ }
+ pixel.age++;
+ }
+ doDefaults(pixel);
+ },
+ properties: {
+ "age":0
+ },
+ tempHigh: 100,
+ stateHigh: "dead_plant",
+ tempLow: -2,
+ stateLow: "frozen_plant",
+ burn: 65,
+ burnTime: 15,
+ category: "life",
+ state: "solid",
+ density: 1500,
+ cooldown: defaultCooldown,
+ seed: true,
+ behavior: [
+ "XX|XX|XX",
+ "XX|XX|XX",
+ "XX|M1|XX",
+ ],
+}
From 0f68cc8096aada5ad1602d8b78e6d77651d292f2 Mon Sep 17 00:00:00 2001
From: GGod <46885632+GGodPL@users.noreply.github.com>
Date: Mon, 4 Mar 2024 14:58:33 +0100
Subject: [PATCH 03/32] Create maze.js
---
mods/maze.js | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 81 insertions(+)
create mode 100644 mods/maze.js
diff --git a/mods/maze.js b/mods/maze.js
new file mode 100644
index 00000000..07d592a1
--- /dev/null
+++ b/mods/maze.js
@@ -0,0 +1,81 @@
+{
+const inBounds = (x, y, width, height) => x >= 0 && x < width && y >= 0 && y < height;
+
+const getRandomValue = (min, max) => Math.floor(Math.random() * (max - min) + min);
+
+const generateMaze = (w, h, originX, originY) => {
+ const map = [];
+ for (let i = 0; i < w; i++) {
+ map[i] = [];
+ for (let j = 0; j < w; j++) {
+ map[i][j] = 0;
+ }
+ }
+
+ const stack = [];
+ let current = [];
+
+ const start = [w - 2, h - 2];
+
+ stack.push(start);
+ current = start;
+
+ while (stack.length > 0) {
+ const [x, y] = current;
+ const neighbors = [
+ inBounds(x, y + 2, w, h) ? [x, y + 2, 0, 1] : null,
+ inBounds(x, y - 2, w, h) ? [x, y - 2, 0, -1] : null,
+ inBounds(x + 2, y, w, h) ? [x + 2, y, 1, 0] : null,
+ inBounds(x - 2, y, w, h) ? [x - 2, y, -1, 0] : null
+ ].filter(a => a != null && map[a[0]][a[1]] == 0);
+
+ if (neighbors.length == 0) {
+ const cell = stack.pop();
+ current = cell;
+ continue;
+ }
+
+ const next = neighbors[getRandomValue(0, neighbors.length)];
+
+ const [offsetX, offsetY] = next.slice(2);
+
+ map[x + offsetX][y + offsetY] = 1;
+ map[x + offsetX * 2][y + offsetY * 2] = 1;
+
+ stack.push([x, y]);
+
+ current = [next[0], next[1]];
+ }
+
+ for (let i = 0; i <= w; i++) {
+ for (let j = 0; j <= h; j++) {
+ const x = i + originX;
+ const y = j + originY;
+ if (pixelMap[x][y]) deletePixel(x, y);
+ if (i == 0 || j == 0) createPixel("wall", x, y);
+ else if (map[i - 1][j - 1] == 0) createPixel("wall", x, y);
+ if ((i == 1 && j == 0) || (i == w - 1 && j == h)) deletePixel(x, y);
+ }
+ }
+}
+
+elements.maze = {
+ color: "#760144",
+ category: "special",
+ tool: (_) => {},
+ onMouseDown: () => {
+ if (outOfBounds(Math.floor(mousePos.x - mouseSize / 2) + 1, Math.floor(mousePos.y - mouseSize / 2) + 1) || outOfBounds(Math.floor(mousePos.x - mouseSize / 2) + mouseSize, Math.floor(mousePos.y - mouseSize / 2) + mouseSize)) return;
+ generateMaze(mouseSize - 1, mouseSize - 1, Math.floor(mousePos.x - mouseSize / 2) + 1, Math.floor(mousePos.y - mouseSize / 2) + 1)
+ }
+}
+
+runAfterLoadList.push(() => {
+ if (!enabledMods.includes("mods/editTools.js")) {
+ document.addEventListener("mousedown", (ev) => {
+ if (elements[currentElement].onMouseDown) {
+ elements[currentElement].onMouseDown();
+ }
+ })
+ }
+})
+}
\ No newline at end of file
From fc02a5fc6723f312d5d7e928d5f63c5bee621de9 Mon Sep 17 00:00:00 2001
From: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com>
Date: Mon, 4 Mar 2024 18:32:41 +0000
Subject: [PATCH 04/32] Update 1.1 - soups.js
Signed-off-by: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com>
---
mods/soups.js | 28 +++++++++++++++++++++-------
1 file changed, 21 insertions(+), 7 deletions(-)
diff --git a/mods/soups.js b/mods/soups.js
index 19152bf5..0459bb18 100644
--- a/mods/soups.js
+++ b/mods/soups.js
@@ -4,25 +4,31 @@
// added seasoning
// added seasoned_water
+// 1.1 update - soup update
+// adds soup
+// changed seasoning to a SUPPORT behaviour
+// seasoned water at high temp is soup
+// changed seasoning density
+
elements.seasoning = {
color: "#876461",
- behavior: behaviors.POWDER,
+ behavior: behaviors.SUPPORT,
category: "food",
- tempHigh: 900,
- stateHigh: "salt",
+ tempHigh: 9000,
+ stateHigh: "ash",
state: "solid",
reactions: {
- "water": { elem1: "null", elem2: "seasoned_water" },
- "salt_water": { elem1: "null", elem2: "seasoned_water" },
+ "water": { elem1: "seasoned_water", elem2: "null" },
+ "salt_water": { elem1: "seasoned_water", elem2: "null" },
},
- density: 2,
+ density: 3000,
};
elements.seasoned_water = {
color: "#73d627",
behavior: behaviors.LIQUID,
tempHigh: 100,
- stateHigh: "steam",
+ stateHigh: "soup",
tempLow: 0,
stateLow: "ice",
category: "liquids",
@@ -88,3 +94,11 @@ elements.seasoned_water = {
stain: -0.9,
extinguish: true
};
+
+elements.soup = {
+ color: "#e8c238",
+ behavior: behaviors.LIQUID,
+ category: "food",
+ state: "solid",
+ density: 7000,
+};
From cb829b78b4c97dfd3460d2ce870c214c73af36a1 Mon Sep 17 00:00:00 2001
From: Jayd-Rubies <155784127+Jayd-Rubies@users.noreply.github.com>
Date: Mon, 4 Mar 2024 14:05:11 -0500
Subject: [PATCH 05/32] added flak cannon, flak, and flak shrapnel
---
mods/weapons.js | 58 +++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 58 insertions(+)
diff --git a/mods/weapons.js b/mods/weapons.js
index d66596a7..99831ad9 100644
--- a/mods/weapons.js
+++ b/mods/weapons.js
@@ -397,4 +397,62 @@ elements.fast_bullet_right = {
category: "ammunition",
state: "solid",
insulate: true,
+},
+elements.flak_cannon = {
+ color: "#C0C0C0",
+ behavior: behaviors.WALL,
+ behaviorOn: [
+ "XX|CR:flak|XX",
+ "XX|XX|XX",
+ "XX|XX|XX",
+ ],
+ category: "weapons",
+ state: "solid",
+ density: 1300,
+ conduct: 1,
+},
+ elements.flak = {
+ color: "#f0f0f0",
+ tick: function(pixel) {
+ if ((pixel.temp > 1000 || pixel.charge) && !pixel.burning) {
+ pixel.burning = true;
+ pixel.burnStart = pixelTicks;
+ }
+ if (pixel.burning) {
+ if (!tryMove(pixel, pixel.x, pixel.y-1)) {
+ // tryMove again to the top left or top right
+ tryMove(pixel, pixel.x+(Math.random() < 0.5 ? -1 : 1), pixel.y-1);
+ }
+ if (pixelTicks-pixel.burnStart > 50 && Math.random() < 0.005) {
+ explodeAt(pixel.x, pixel.y, 10, "flak_shrapnel");
+ }
+ }
+ else {
+ if (!tryMove(pixel, pixel.x, pixel.y+1)) {
+ // tryMove again to the bottom left or bottom right
+ tryMove(pixel, pixel.x+(Math.random() < 0.5 ? -1 : 1), pixel.y+1);
+ }
+ }
+ doDefaults(pixel);
+ },
+ burn: 90,
+ burnTime: 100,
+ density: 2000,
+ conduct: 1,
+ state: "solid",
+ category: "ammunition"
+},
+ elements.flak_shrapnel = {
+ color: "#71797E",
+ behavior: [
+ "XX|XX|XX",
+ "XX|EX:5 %10|XX",
+ "M2|M1|M2",
+ ],
+ burn: 90,
+ burnTime: 100,
+ density: 2000,
+ conduct: 1,
+ state: "solid",
+ category: "ammunition"
}
\ No newline at end of file
From f6735aea4b107b87083cb9d226d00e1f9602c955 Mon Sep 17 00:00:00 2001
From: Ilikepizza2006 <146470829+Ilikepizza2006@users.noreply.github.com>
Date: Mon, 4 Mar 2024 22:01:45 +0100
Subject: [PATCH 06/32] Update 2.0
---
mods/pizzasstuff.js | 227 ++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 218 insertions(+), 9 deletions(-)
diff --git a/mods/pizzasstuff.js b/mods/pizzasstuff.js
index 7e4fb53b..cc28b4ce 100644
--- a/mods/pizzasstuff.js
+++ b/mods/pizzasstuff.js
@@ -1,5 +1,5 @@
elements.freeze_ray = {
- color: ["#9ae4f5","#84d6e8"],
+ color: ["#8cf9ff","#5c59ff"],
tick: function(pixel) {
var x = pixel.x;
for (var y = pixel.y; y < height; y++) {
@@ -9,7 +9,7 @@ elements.freeze_ray = {
if (isEmpty(x, y)) {
if (Math.random() > 0.05) { continue }
createPixel("flash", x, y);
- pixelMap[x][y].color = "#aedbe6";
+ pixelMap[x][y].color = "#96b6ff";
pixelMap[x][y].temp = -257;
}
else {
@@ -29,6 +29,38 @@ elements.freeze_ray = {
noMix: true
};
+elements.devil_ray = {
+ color: ["#ba0000","#8f0000"],
+ tick: function(pixel) {
+ var x = pixel.x;
+ for (var y = pixel.y+1; y < height; y++) {
+ if (outOfBounds(x, y)) {
+ break;
+ }
+ if (isEmpty(x, y)) {
+ if (Math.random() > 0.1) { continue }
+ createPixel("flash", x, y);
+ pixelMap[x][y].color = ["#990000"];
+ }
+ else {
+ if (elements[pixelMap[x][y].element].id === elements.flash.id) { continue }
+ if (elements[pixelMap[x][y].element].id === elements.god_ray.id) { break }
+ if (!elements[pixelMap[x][y].element].isGas && isEmpty(x, y-1)) {
+ createPixel("curse", x, y-1);
+ }
+ if (Math.random() > 0.1) { continue }
+ elements.bless.tool(pixelMap[x][y])
+ }
+ }
+ deletePixel(pixel.x, pixel.y);
+ },
+ category: "energy",
+ state: "gas",
+ density: 1,
+ excludeRandom: true,
+ noMix: true
+};
+
elements.beer = {
color: ["#ffc43d","#ffc43d"],
behavior: behaviors.LIQUID,
@@ -197,7 +229,7 @@ elements.frozen_chocolate_yogurt = {
temp: 0,
};
-elements.cooking_oil = {
+elements.frying_oil = {
color: "#c4ab4f",
behavior: behaviors.LIQUID,
category: "liquids",
@@ -447,7 +479,7 @@ elements.moss = {
stateHigh: "dead_plant",
tempLow: -4,
stateLow: "frozen_plant",
-
+ alias: "mercedes benz",
reactions: {
"dna": { elem1: "moth", elem2: null },
}
@@ -469,6 +501,126 @@ elements.moth = {
stateLow: "dead_bug",
};
+elements.holy_fire = {
+ color: ["#FEFFF8","#FFF0CE","#FFE792"],
+ behavior: [
+ "M1|M1|M1",
+ "M2|CH:bless%8|M2",
+ "XX|M2|XX",
+ ],
+ reactions: {
+ "fire": { elem1: "bless", elem2: "bless" },
+ "plasma": { elem1: "light", elem2: "light" }
+ },
+ temp:750,
+ tempLow:200,
+ tempHigh:1200,
+ stateLow: "bless",
+ stateHigh: "bless",
+ category: "energy",
+ state: "gas",
+ density: 0.1,
+ ignoreAir: true
+};
+
+elements.curse = {
+ color: ["#d27979","#bf4040","#752727"],
+ tool: function(pixel) {
+ if (elements.bless.ignore.indexOf(pixel.element) !== -1) { return; }
+ if (pixel.burning) { // stop burning
+ delete pixel.burning;
+ delete pixel.burnStart;
+ }
+ if (pixel.temp > 100) {
+ pixel.temp = (pixel.temp+100)/2;
+ pixelTempCheck(pixel);
+ if (pixel.del) {return}
+ }
+ if (pixel.temp < -200) {
+ pixel.temp = (pixel.temp-200)/2;
+ pixelTempCheck(pixel);
+ if (pixel.del) {return}
+ }
+ if (pixel.origColor) {
+ pixel.color = "rgb("+pixel.origColor.join(",")+")";
+ delete pixel.origColor;
+ }
+ if (pixel.charge) {
+ delete pixel.charge;
+ pixel.chargeCD = 16;
+ }
+ if (elements.bless.reactions[pixel.element] && Math.random()<0.25) {
+ var r = elements.bless.reactions[pixel.element];
+ var elem2 = r.elem2;
+ if (elem2 !== undefined) {
+ if (Array.isArray(elem2)) { elem2 = elem2[Math.floor(Math.random()*elem2.length)]; }
+ if (elem2 === null) { deletePixel(pixel.x,pixel.y) }
+ else { changePixel(pixel, elem2); }
+ }
+ if (r.func) { r.func(pixel,pixel) }
+ }
+ },
+ ignore: ["sun"],
+ behavior: [
+ "M2|M1|M2",
+ "M1|DL%25|M1",
+ "M2|M1|M2",
+ ],
+ reactions: {
+ "cell": { elem2: "cancer" },
+ "iron": { elem2: "rust" },
+ "copper": { elem2: "oxidized_copper" },
+ "antibody": { elem2:["blood",null] },
+ "antibody_ice": { elem2:"blood_ice" },
+ "dirty_water": { elem2: "water" },
+ "dna": { elem2: "plague" },
+ "antibody": { elem2: ["infection",null] },
+ "infection": { elem2: ["infection",null] },
+ "antidote": { elem2: "poison" },
+ "meat": { elem2: "rotten_meat" },
+ "cheese": { elem2: "rotten_cheese" },
+ "oxygen": { elem2: "carbon_dioxide" },
+ "hydrogen": { elem2: "acid_gas" },
+ "cloud": { elem2: "fire_cloud" },
+ "perfume": { elem2: "liquid_stench" },
+ "fragrance": { elem2: "stench" },
+ "seltzer": { elem2: "soda" },
+ "cloud": { elem2: "smog" },
+ "water": { elem2: "broth" },
+ "bless": { elem2: "plasma" },
+ "metal_scrap": { elem2: "grenade" },
+ "smoke": { elem2: "greek_fire" },
+ "rock": { elem2: "uranium", chance: 0.01},
+ "magma": { elem2: "molten_uranium", chance: 0.01},
+ "ice": { elem2: "ice_nine", chance: 0.01},
+ "frog": { elem2: "frozen_frog" },
+ "worm": { elem2: "frozen_worm" },
+ "rock": { elem2: "molten_thermite", chance: 0.01},
+ "glass": { elem2: "rad_glass", chance: 0.2 },
+ "shard": { elem2: "rad_shard", chance: 0.2 },
+ "steam": { elem2: "rad_steam", chance: 0.2 },
+ "rain_cloud": { elem2: "rad_cloud", chance: 0.2 },
+ "ball": { elem2: "ball", chance: 0.2 },
+ "bone": { elem2: "bone_marrow", chance: 0.2 },
+ "plant": { elem2: "dead_plant" },
+ "rock": { elem2: "rock", chance: 0.01 },
+ "magma": { elem2: "molten_slag", chance: 0.01 },
+ "light": { elem2: "laser", chance: 0.2 },
+ "flash": { elem2: "light", chance: 0.2 },
+ "wood": { elem2: "torch", chance: 0.01 },
+ "gold": { elem2: "lead", chance: 0.2 },
+ "molten_gold": { elem2: "molten_lead", chance: 0.2 },
+ "grass": { elem2: null },
+ "rainbow": { elem2: "static" },
+ },
+ temp:20,
+ state: "gas",
+ density: 0.001,
+ canPlace: true,
+ category: "energy",
+ stain: -0.5
+};
+
elements.parrot = {
color: ["#234d20","#36802d","#77ab59","#c9df8a","#f0f7da","#f90f0b","#f7ab4d","#fdfc0d","#0564b2","#60a3e6"],
behavior: behaviors.FLY,
@@ -1097,8 +1249,7 @@ elements.olive = {
behavior: behaviors.POWDER,
category: "food",
state: "solid",
- breakInto: "juice",
- breakIntoColor: ["#d1ef71","#c1d64d"],
+ breakInto: "olive_oil",
};
elements.eggplant = {
@@ -1146,6 +1297,19 @@ elements.garlic_clove = {
hidden: "TRUE",
};
+elements.carrot = {
+ color: ["#ea820b","#e89116","#e8a32b","#efb538"],
+ density: 675,
+ behavior: behaviors.POWDER,
+ category: "food",
+ state: "solid",
+ burnInto: "ash",
+ burn: 10,
+ burnTime: 300,
+ breakInto: "juice",
+ breakIntoColor: "#f1b956",
+};
+
elements.asparagus = {
color: ["#77ab56","#92bc78","#adcd9a"],
density: 675,
@@ -1215,6 +1379,16 @@ elements.whipped_cream = {
}
};
+elements.olive_oil = {
+ color: ["#efcc3f","#efd672","#f1e09a"],
+ density: 675,
+ behavior: behaviors.LIQUID,
+ category: "liquids",
+ state: "liquid",
+ burn: 10,
+ burnTime: 300,
+};
+
elements.cream_coffee = {
color: ["#dbc1ac","#967259","#634832"],
behavior: behaviors.LIQUID,
@@ -1242,7 +1416,7 @@ elements.pipis = {
};
elements.frog_bomb = {
- color: "#0f2105",
+ color: ["#0f2105","#274e13","#6aa84f"],
behavior: [
"XX|EX:10>frog|XX",
"XX|XX|XX",
@@ -1258,7 +1432,7 @@ elements.frog_bomb = {
},
elements.cash_bomb = {
- color: "#665411",
+ color: ["#e69138","#f1c232","#f6b26b"],
behavior: [
"XX|EX:10>gold_coin|XX",
"XX|XX|XX",
@@ -1274,18 +1448,41 @@ elements.cash_bomb = {
},
elements.pi_pis = {
- color: ["#007299","003849"],
+ color: ["#0b5394","#073763","#3d85c6"],
behavior: [
"XX|EX:10>pipis|XX",
"XX|XX|XX",
"M2|M1 AND EX:10>pipis|M2",
],
+ behaviorOn: [
+ "XX|XX|XX",
+ "XX|EX:6>metal_scrap,fire,fire,fire%1|XX",
+ "XX|XX|XX",
+ ],
category: "weapons",
state: "solid",
density: 1300,
tempHigh: 1455.5,
stateHigh: "molten_steel",
excludeRandom: true,
+ conduct: 1,
+ cooldown: defaultCooldown,
+ nocheer: true
+},
+
+elements.holy_hand_grenade = {
+ color: ["#ffd966","#ffc000","#fff2cc"],
+ behavior: [
+ "XX|EX:20>bless,holy_fire%1|XX",
+ "XX|XX|XX",
+ "M2|M1 AND EX:20>bless,holy_fire%1|M2",
+ ],
+ category: "weapons",
+ state: "solid",
+ density: 1300,
+ tempHigh: 1455.5,
+ stateHigh: "bless",
+ excludeRandom: true,
cooldown: defaultCooldown
},
@@ -1477,6 +1674,18 @@ elements.quartz = {
}
};
+elements.ruby = {
+ color: ["#850014","#ae001a","#e10531","#a50727","#6b0015"],
+ behavior: behaviors.POWDER,
+ category: "powders",
+ tempHigh: 900,
+ stateHigh: "carbon_dioxide",
+ state: "solid",
+ density: 3515,
+ hardness: 1,
+ alias: "Lamp Oil, Rope, Bombs, you want it? It's yours my friend, as long as you have enough rubies.",
+};
+
elements.slushy_ice = {
color: ["#f6fff9","#f3f9f9","#f6fcf9","#fefefe","#fdfffe"],
behavior: behaviors.WALL,
From e19658209d6e81fa8a80cc070381516b067ab487 Mon Sep 17 00:00:00 2001
From: BatteRaquette581 <84451047+BatteRaquette581@users.noreply.github.com>
Date: Tue, 5 Mar 2024 11:53:53 +0100
Subject: [PATCH 07/32] Add files via upload
---
mods/fine_tuned_cloner.js | 121 ++++++++++++++++++++++++++++++++++++++
1 file changed, 121 insertions(+)
create mode 100644 mods/fine_tuned_cloner.js
diff --git a/mods/fine_tuned_cloner.js b/mods/fine_tuned_cloner.js
new file mode 100644
index 00000000..5bf0f2c1
--- /dev/null
+++ b/mods/fine_tuned_cloner.js
@@ -0,0 +1,121 @@
+/*
+MIT License
+
+Copyright (c) 2024 BatteRaquette58 (a.k.a BatteRaquette581)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+
+const isFloat = /^[+-]?([0-9]+([.][0-9]*)?|[.][0-9]+)$/ // https://stackoverflow.com/questions/12643009/regular-expression-for-floating-point-numbers
+const isIDList = /^\d+(,\d+)*$/
+
+let cloner_elements = []
+// makes cloner elements ignore the new cloner, and vice versa
+const update_ignore_list = () => {
+ const hasCloner = /cloner/ // don't ask why out of all methods to detect a substring in a string, i chose regex
+ let element_keys = Object.keys(elements)
+ cloner_elements = element_keys.filter(element => hasCloner.test(element)) // all elements with "cloner" in their name
+ if (element_keys.includes("liquid_void")) // support for liquid_void.js
+ cloner_elements.push("liquid_void")
+ if (element_keys.includes("destroyable_cloner")) // support for nousersthings.js
+ cloner_elements.push("destroyable_cloner")
+ cloner_elements.forEach(element => {
+ if (elements[element].ignore == null)
+ elements[element].ignore = []
+ elements[element].ignore.push("fine_tuned_cloner")
+ }) // add the new cloner into the ignore list of the cloners
+}
+setTimeout(update_ignore_list, 2000) // i hate the way of doing this, but it's pretty much the only way to make this work...
+
+// check if position has no pixel, if yes, create a new pixel at this position
+const try_place = (element, x, y) => {
+ let succeeded = checkForEmptyPixels(x, y)
+ if (succeeded)
+ createPixel(element, x, y)
+ return succeeded
+}
+
+let FTC_cloning_frequency = null // store cloning frequency
+let FTC_blacklist = null
+elements.fine_tuned_cloner = {
+ color: "#dddd00",
+ behavior: behaviors.WALL,
+ category: "machines",
+ state: "solid",
+ darkText: true,
+
+ onSelect: _ => {
+ let cloning_frequency = prompt("Cloning frequency (how often the cloner clones, 1 being always, 0 being never, can be decimal):")
+ if (isFloat.test(cloning_frequency)) // make sure the user isn't putting something non-numeric
+ cloning_frequency = parseFloat(cloning_frequency)
+ else {
+ alert("Cloning frequency is not a number. Try again.")
+ selectElement("unknown")
+ return
+ }
+ if (!(0 <= cloning_frequency && cloning_frequency <= 1)) { // if not 0-1
+ alert("Cloning frequency is not between 0 and 1. Try again.")
+ selectElement("unknown")
+ return
+ }
+ FTC_cloning_frequency = cloning_frequency
+
+ let blacklist = prompt("Element blacklist (element IDs that the cloner cannot clone, seperated by commas, no trailing commas, leave empty if no blacklist):")
+ if (isIDList.test(blacklist))
+ blacklist = blacklist.split(",") // split blacklist by comma, to make a list of IDs
+ else if (blacklist === "") // if empty, empty blacklist list
+ blacklist = []
+ else {
+ alert("Invalid blacklist. Try again.")
+ selectElement("unknown")
+ return
+ }
+ FTC_blacklist = blacklist
+ },
+
+ tick: pixel => {
+ if (pixel.element === "fine_tuned_cloner") {
+ if (pixel.FTC_element == null) {
+ // assign FTC variables if not done already
+ if (pixel.FTC_cloning_frequency == null)
+ pixel.FTC_cloning_frequency = FTC_cloning_frequency
+ if (pixel.FTC_blacklist == null)
+ pixel.FTC_blacklist = FTC_blacklist
+
+ let neighbors = getNeighbors(pixel)
+ if (neighbors.length > 0) { // if there's neighbors
+ neighbors.forEach(neighbor => {
+ // make sure it's not a cloner element nor a blacklist element
+ if ((!cloner_elements.includes(neighbor.element)) && (!pixel.FTC_blacklist.includes(elements[neighbor.element].id))) {
+ pixel.FTC_element = neighbor.element // set clone element
+ }
+ })
+ }
+ }
+
+ if (Math.random() < pixel.FTC_cloning_frequency && pixel.FTC_element != null) { // if cloner already has its cloning element, and it's ready to clone:
+ if (!try_place(pixel.FTC_element, pixel.x, pixel.y - 1)) // try above
+ if (!try_place(pixel.FTC_element, pixel.x - 1, pixel.y)) // try at the left
+ if (!try_place(pixel.FTC_element, pixel.x + 1, pixel.y)) // try at the right
+ if (!try_place(pixel.FTC_element, pixel.x, pixel.y + 1)) // try under
+ ; // pass, spots are already taken :p
+ }
+ }
+ },
+};
From f46480346c1bf3731e3f527754a4d70a34039f79 Mon Sep 17 00:00:00 2001
From: SquareScreamYT <134925668+SquareScreamYT@users.noreply.github.com>
Date: Tue, 5 Mar 2024 20:08:59 +0800
Subject: [PATCH 08/32] mm rice
---
mods/aChefsDream.js | 203 +++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 200 insertions(+), 3 deletions(-)
diff --git a/mods/aChefsDream.js b/mods/aChefsDream.js
index c34e914d..03848491 100644
--- a/mods/aChefsDream.js
+++ b/mods/aChefsDream.js
@@ -7,10 +7,11 @@ v1.9
me trying to come up with stuff not in plants.js:
Upcoming Features:
-- onions
- spring onions
- soy sauce
-- rice and porridge (white rice noodles)
+- white rice noodles
+- glutinous rice and rice flour
+- mochi
- seaweed and agar (makes juice into jelly)
- pigs, ham and bacon
- garlic
@@ -24,7 +25,6 @@ Upcoming Features:
- cows and beef
- celery
- marshmallows, normal, cooked and burnt
-- lime
- kiwi, guavas and lychees
- dragonfuits
- dates and figs
@@ -286,6 +286,11 @@ Changelog (v1.9)
- added onion
- added cut onion
- added fried onion
+ - added rice
+ - added porridge
+ - added cooked and burnt rice
+ - added rice plants and rice panicles
+ - added rice seeds
@@ -5127,3 +5132,195 @@ elements.onion_seed = {
"XX|M1|XX",
],
}
+elements.unhusked_rice = {
+ color: ["#c99a42","#b08638","#deb15d"],
+ behavior: [
+ "XX|XX|XX",
+ "ST:rice_panicle|XX|ST:rice_panicle",
+ "ST:rice_plant AND M2|ST:rice_panicle AND M1|ST:rice_plant AND 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 }
+ },
+ category:"food",
+ tempHigh: 65,
+ stateHigh: "cooked_rice",
+ burn:65,
+ burnTime:60,
+ burnInto: "dead_plant",
+ breakInto: "flour",
+ breakIntoColor: "#f7f1df",
+ state: "solid",
+ isFood: true,
+ density: 1050,
+ cutInto: "rice",
+}
+elements.rice = {
+ color: "#eeeed2",
+ behavior: behaviors.POWDER,
+ category:"food",
+ tempHigh: 65,
+ stateHigh: "cooked_rice",
+ burn:65,
+ burnTime:60,
+ burnInto: "dead_plant",
+ breakInto: "flour",
+ breakIntoColor: "#f7f1df",
+ state: "solid",
+ isFood: true,
+ density: 1050,
+ reactions:{
+ "water":{elem1:"porridge",elem2:"porridge",chance:3,tempMin:70}
+ }
+}
+elements.cooked_rice = {
+ color: "#eddfb9",
+ behavior: behaviors.POWDER,
+ category:"food",
+ tempHigh: 200,
+ stateHigh: "burnt_rice",
+ burn:65,
+ burnTime:60,
+ burnInto: "dead_plant",
+ breakInto: "flour",
+ breakIntoColor: "#f7f1df",
+ state: "solid",
+ isFood: true,
+ density: 1050,
+}
+elements.porridge = {
+ color: "#f2ecdc",
+ behavior: behaviors.LIQUID,
+ category:"food",
+ tempHigh: 200,
+ stateHigh: "steam",
+ viscosity: 999,
+ burn:65,
+ burnTime:60,
+ burnInto: "dead_plant",
+ state: "solid",
+ isFood: true,
+ density: 1050,
+}
+elements.burnt_rice = {
+ color: "#262217",
+ behavior: behaviors.POWDER,
+ category:"food",
+ tempHigh: 500,
+ stateHigh: "ash",
+ burn:65,
+ burnTime:60,
+ burnInto: "dead_plant",
+ state: "solid",
+ isFood: true,
+ density: 1050,
+}
+elements.rice_plant = {
+ color: "#37a825",
+ behavior: behaviors.WALL,
+ category:"life",
+ tempHigh: 100,
+ stateHigh: "steam",
+ burn:65,
+ burnTime:60,
+ burnInto: "dead_plant",
+ state: "solid",
+ density: 1050,
+ hidden: true,
+
+}
+elements.rice_seed = {
+ color: "#997a23",
+ tick: function(pixel) {
+ if (isEmpty(pixel.x,pixel.y+1)) {
+ movePixel(pixel,pixel.x,pixel.y+1);
+ }
+ else {
+ if (Math.random() < 0.2 && pixel.age > 50 && pixel.temp < 100) {
+ if (!outOfBounds(pixel.x,pixel.y+1)) {
+ var dirtPixel = pixelMap[pixel.x][pixel.y+1];
+ if (dirtPixel.element === "dirt" || dirtPixel.element === "mud" || dirtPixel.element === "sand" || dirtPixel.element === "wet_sand" || dirtPixel.element === "clay_soil" || dirtPixel.element === "mycelium") {
+ changePixel(dirtPixel,"root");
+ }
+ }
+ if (Math.random() < 0.2 && pixel.age > 50 && pixel.temp < 100) {
+ if (isEmpty(pixel.x+1,pixel.y-1) && isEmpty(pixel.x-1,pixel.y-1)&&isEmpty(pixel.x+2,pixel.y-2) && isEmpty(pixel.x-2,pixel.y-2)) {
+ createPixel("rice_plant",pixel.x+1,pixel.y-1);
+ createPixel("rice_plant",pixel.x-1,pixel.y-1);
+ createPixel("rice_plant",pixel.x+2,pixel.y-2);
+ createPixel("rice_plant",pixel.x-2,pixel.y-2);
+ pixel.leafgrown = true
+ }
+ }
+ if (Math.random() < 0.2 && pixel.age > 50 && pixel.temp < 100 && pixel.leafgrown == true) {
+ if (isEmpty(pixel.x,pixel.y-1) && isEmpty(pixel.x,pixel.y-2)&&isEmpty(pixel.x,pixel.y-3) && isEmpty(pixel.x,pixel.y-4)) {
+ movePixel(pixel,pixel.x,pixel.y-4)
+ createPixel("rice_plant",pixel.x,pixel.y+1);
+ createPixel("rice_plant",pixel.x,pixel.y+2);
+ createPixel("rice_plant",pixel.x,pixel.y+3);
+ createPixel("rice_plant",pixel.x,pixel.y+4);
+ changePixel(pixel,"rice_panicle")
+ pixel.grower = true
+ }
+ }
+ }
+ else if (pixel.age > 1000) {
+ changePixel(pixel,"unhusked_rice");
+ }
+ pixel.age++;
+ }
+ doDefaults(pixel);
+ },
+ properties: {
+ "age":0,
+ "leafgrown":false,
+ },
+ tempHigh: 100,
+ stateHigh: "dead_plant",
+ tempLow: -2,
+ stateLow: "frozen_plant",
+ burn: 65,
+ burnTime: 15,
+ category: "life",
+ state: "solid",
+ density: 2500,
+ cooldown: defaultCooldown,
+ seed: true,
+ behavior: [
+ "XX|XX|XX",
+ "XX|XX|XX",
+ "XX|M1|XX",
+ ],
+};
+elements.rice_panicle = {
+ color: "#37a825",
+ behavior: behaviors.WALL,
+ category:"life",
+ tempHigh: 100,
+ stateHigh: "steam",
+ burn:65,
+ burnTime:60,
+ burnInto: "dead_plant",
+ tick: function(pixel) {
+ if (Math.random() < 0.1) {
+ if (isEmpty(pixel.x+1,pixel.y) && isEmpty(pixel.x-1,pixel.y)) {
+ createPixel("unhusked_rice",pixel.x+1,pixel.y);
+ createPixel("unhusked_rice",pixel.x-1,pixel.y);
+ }
+ if (isEmpty(pixel.x+1,pixel.y+1) && isEmpty(pixel.x-1,pixel.y+1)) {
+ createPixel("unhusked_rice",pixel.x+1,pixel.y+1);
+ createPixel("unhusked_rice",pixel.x-1,pixel.y+1);
+ }
+ if (isEmpty(pixel.x,pixel.y-1)) {
+ createPixel("unhusked_rice",pixel.x,pixel.y-1);
+ }
+ }
+ },
+ state: "solid",
+ density: 1050,
+ hidden: true,
+
+}
From 41a1a4ca95e9cf2b71be7172dd75d05644d1f3b9 Mon Sep 17 00:00:00 2001
From: SquareScreamYT <134925668+SquareScreamYT@users.noreply.github.com>
Date: Wed, 6 Mar 2024 20:17:30 +0800
Subject: [PATCH 09/32] better rice
---
mods/aChefsDream.js | 23 +++++++++++++++++++++--
1 file changed, 21 insertions(+), 2 deletions(-)
diff --git a/mods/aChefsDream.js b/mods/aChefsDream.js
index 03848491..0898b544 100644
--- a/mods/aChefsDream.js
+++ b/mods/aChefsDream.js
@@ -5189,7 +5189,9 @@ elements.cooked_rice = {
breakIntoColor: "#f7f1df",
state: "solid",
isFood: true,
- density: 1050,
+ density: 1050,reactions:{
+ "water":{elem1:"porridge",elem2:"porridge",chance:3,tempMin:70}
+ }
}
elements.porridge = {
color: "#f2ecdc",
@@ -5246,7 +5248,23 @@ elements.rice_seed = {
changePixel(dirtPixel,"root");
}
}
- if (Math.random() < 0.2 && pixel.age > 50 && pixel.temp < 100) {
+ if(!isEmpty(pixel.x-1,pixel.y) && !isEmpty(pixel.x+1,pixel.y)){
+ if(pixelMap[pixel.x+1][pixel.y].element === "water" && pixelMap[pixel.x-1][pixel.y].element === "water"){
+ if (isEmpty(pixel.x,pixel.y-1)){
+ movePixel(pixel,pixel.x,pixel.y-1)
+ createPixel("rice_plant",pixel.x,pixel.y+1)
+ pixel.notinwater=true
+ }
+ else if (!isEmpty(pixel.x,pixel.y-1)){
+ if (pixelMap[pixel.x][pixel.y-1].element === "water") {
+ deletePixel(pixel.x,pixel.y-1)
+ movePixel(pixel,pixel.x,pixel.y-1)
+ createPixel("rice_plant",pixel.x,pixel.y+1)
+ }
+ }
+ }
+ }
+ if (Math.random() < 0.2 && pixel.age > 50 && pixel.temp < 100 && pixel.notinwater == true) {
if (isEmpty(pixel.x+1,pixel.y-1) && isEmpty(pixel.x-1,pixel.y-1)&&isEmpty(pixel.x+2,pixel.y-2) && isEmpty(pixel.x-2,pixel.y-2)) {
createPixel("rice_plant",pixel.x+1,pixel.y-1);
createPixel("rice_plant",pixel.x-1,pixel.y-1);
@@ -5277,6 +5295,7 @@ elements.rice_seed = {
properties: {
"age":0,
"leafgrown":false,
+ "notinwater":false,
},
tempHigh: 100,
stateHigh: "dead_plant",
From f357d70a86ebcf6d8818920ef2edb369c5fb4ab0 Mon Sep 17 00:00:00 2001
From: SquareScreamYT <134925668+SquareScreamYT@users.noreply.github.com>
Date: Wed, 6 Mar 2024 20:17:44 +0800
Subject: [PATCH 10/32] wasabi
---
mods/aChefsDream.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mods/aChefsDream.js b/mods/aChefsDream.js
index 0898b544..c72ddfce 100644
--- a/mods/aChefsDream.js
+++ b/mods/aChefsDream.js
@@ -8,7 +8,7 @@ me trying to come up with stuff not in plants.js:
Upcoming Features:
- spring onions
-- soy sauce
+- soy sauce/wasabi
- white rice noodles
- glutinous rice and rice flour
- mochi
From 9844929203a867d5cf07ff98e654b6a5e2bff744 Mon Sep 17 00:00:00 2001
From: DaviStudios <112717418+DaviStudios@users.noreply.github.com>
Date: Wed, 6 Mar 2024 15:12:58 +0200
Subject: [PATCH 11/32] Add files via upload
---
mods/advanced_colonies.js | 139 ++++++++++++++++++++++++++++++++++++++
1 file changed, 139 insertions(+)
create mode 100644 mods/advanced_colonies.js
diff --git a/mods/advanced_colonies.js b/mods/advanced_colonies.js
new file mode 100644
index 00000000..4fec16cf
--- /dev/null
+++ b/mods/advanced_colonies.js
@@ -0,0 +1,139 @@
+elements.male_davler = {
+ color: "#afe7ed",
+ behavior: behaviors.CRAWLER,
+ category: "davlers",
+ state: "solid",
+ tempHigh: 125,
+ stateHigh: "dead_bug",
+ reactions: {
+ "sugar": { elem2: null },
+ "meat": { elem2: null },
+ "rotten_meat": { elem2: null },
+ "cooked_meat": { elem1: "davler_remains" },
+ "dough": { elem2: null },
+ "baking_soda": { elem1: "davler_remains" }
+ }
+};
+
+elements.female_davler = {
+ color: "#c1ecf1",
+ behavior: behaviors.CRAWLER,
+ category: "davlers",
+ state: "solid",
+ tempHigh: 125,
+ stateHigh: "dead_bug",
+ reactions: {
+ "sugar": { elem2: null },
+ "meat": { elem2: null },
+ "rotten_meat": { elem2: null },
+ "cooked_meat": { elem1: "davler_remains" },
+ "dough": { elem2: null },
+ "baking_soda": { elem1: "davler_remains" }
+ }
+};
+
+elements.davler_queen = {
+ color: "#3495eb",
+ behavior: behaviors.CRAWLER,
+ category: "davlers",
+ state: "solid",
+ tempHigh: 150,
+ stateHigh: "davler_remains",
+ properties: {
+ "eaten": 0
+ },
+ tick: function(pixel) {
+ if (pixel.eaten > 2) {
+ pixel.eaten = 0
+ createPixel('larvae', pixel.x + 1, pixel.y)
+ }
+ },
+ reactions: {
+ "sugar": { elem2: null, func: function(pixel){pixel.eaten = pixel.eaten +1} },
+ "meat": { elem2: null },
+ "rotten_meat": { elem2: null },
+ "cooked_meat": { elem1: "dead_bug" },
+ "dough": { elem2: null },
+ "baking_soda": { elem1: "dead_bug" }
+ }
+};
+
+elements.larvae = {
+ color: ["#f2e9c9", "#ebd798"],
+ behavior: behaviors.POWDER,
+ category: "davlers",
+ state: "solid",
+ tempHigh: 150,
+ stateHigh: "dead_bug",
+ properties: {
+ "hatch": 300,
+ "fertilized": false
+ },
+ tick: function(pixel) {
+ if (pixel.hatch < 1) {
+ const nX = pixel.x
+ const nY = pixel.y
+ deletePixel(pixel.x, pixel.y)
+ const chance = Math.floor(Math.random() * ( 2 - 1 + 1)) + 1
+ if (chance == 1) {
+ createPixel('female_davler', nX, nY)
+ } else {
+ createPixel('male_davler', nX, nY)
+ }
+ } else {
+ if (pixel.fertilized == true) {
+ pixel.hatch = pixel.hatch - 1
+ }
+ }
+ },
+ reactions: {
+ "baking_soda": { elem1: "dead_bug" },
+ "male_davler": { func: function(pixel){pixel.fertilized = true } }
+ }
+};
+
+elements.davler_remains = {
+ color: elements.dead_bug.color,
+ behavior: behaviors.POWDER,
+ state: "solid",
+ category: "davlers",
+ reactions: {
+ "yolk": { elem2: "artificial_larvae", elem1: null }
+ }
+};
+
+elements.artificial_larvae = {
+ color: ["#f2e9c9", "#ebd798"],
+ behavior: behaviors.POWDER,
+ category: "davlers",
+ state: "solid",
+ tempHigh: 150,
+ stateHigh: "dead_bug",
+ properties: {
+ "hatch": 450,
+ "fertilized": false
+ },
+ tick: function(pixel) {
+ if (pixel.hatch < 1) {
+ const nX = pixel.x
+ const nY = pixel.y
+ deletePixel(pixel.x, pixel.y)
+ const chance = Math.floor(Math.random() * ( 4 - 1 + 1)) + 1
+ if (chance == 1) {
+ createPixel('female_davler', nX, nY)
+ } else if ( chance == 2 ) {
+ createPixel('male_davler', nX, nY)
+ } else {
+ createPixel('dead_bug', nX, nY)
+ }
+ } else {
+ if (pixel.fertilized == true) {
+ pixel.hatch = pixel.hatch - 1
+ }
+ }
+ },
+ reactions: {
+ "baking_soda": { elem1: "dead_bug" },
+ "male_davler": { func: function(pixel){pixel.fertilized = true } }
+ }
+};
\ No newline at end of file
From aae3006fcab4b98925931b6a5c8ed52ca9307220 Mon Sep 17 00:00:00 2001
From: DaviStudios <112717418+DaviStudios@users.noreply.github.com>
Date: Wed, 6 Mar 2024 15:19:19 +0200
Subject: [PATCH 12/32] Update advanced_colonies.js
---
mods/advanced_colonies.js | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/mods/advanced_colonies.js b/mods/advanced_colonies.js
index 4fec16cf..de46a7f5 100644
--- a/mods/advanced_colonies.js
+++ b/mods/advanced_colonies.js
@@ -5,6 +5,7 @@ elements.male_davler = {
state: "solid",
tempHigh: 125,
stateHigh: "dead_bug",
+ breakInto: "davler_remains",
reactions: {
"sugar": { elem2: null },
"meat": { elem2: null },
@@ -22,6 +23,7 @@ elements.female_davler = {
state: "solid",
tempHigh: 125,
stateHigh: "dead_bug",
+ breakInto: "davler_remains",
reactions: {
"sugar": { elem2: null },
"meat": { elem2: null },
@@ -39,6 +41,7 @@ elements.davler_queen = {
state: "solid",
tempHigh: 150,
stateHigh: "davler_remains",
+ breakInto: "davler_remains",
properties: {
"eaten": 0
},
@@ -65,6 +68,7 @@ elements.larvae = {
state: "solid",
tempHigh: 150,
stateHigh: "dead_bug",
+ breakInto: "yolk",
properties: {
"hatch": 300,
"fertilized": false
@@ -96,6 +100,8 @@ elements.davler_remains = {
color: elements.dead_bug.color,
behavior: behaviors.POWDER,
state: "solid",
+ tempHigh: 150,
+ stateHigh: ["ash", "fire"],
category: "davlers",
reactions: {
"yolk": { elem2: "artificial_larvae", elem1: null }
@@ -109,6 +115,7 @@ elements.artificial_larvae = {
state: "solid",
tempHigh: 150,
stateHigh: "dead_bug",
+ breakInto: "yolk",
properties: {
"hatch": 450,
"fertilized": false
@@ -136,4 +143,4 @@ elements.artificial_larvae = {
"baking_soda": { elem1: "dead_bug" },
"male_davler": { func: function(pixel){pixel.fertilized = true } }
}
-};
\ No newline at end of file
+};
From 0cc5947a045fbe4a51b919391e0356bbd29fde3a Mon Sep 17 00:00:00 2001
From: BatteRaquette581 <84451047+BatteRaquette581@users.noreply.github.com>
Date: Wed, 6 Mar 2024 20:43:33 +0100
Subject: [PATCH 13/32] Update mod-list.html
---
mod-list.html | 1 +
1 file changed, 1 insertion(+)
diff --git a/mod-list.html b/mod-list.html
index b6c4c8cf..daa35cfe 100644
--- a/mod-list.html
+++ b/mod-list.html
@@ -182,6 +182,7 @@
| Machines & Technology |
| clone_liquid.js | Adds a liquid form of cloner | Alice |
| conveyance.js | Conveyors, operated with and without electricity | Melecie |
+| fine_tuned_cloner.js | Adds a cloner that can spawn at different rates and prevent unwated cloning | BatteRaquette58 |
| flipflop.js | Toggleable switches; Explanation | Flix |
| gameOfLife.js | Conway's Game of Life on a screen | ggod |
| logicgates.js | Adds predictable electricity and logic gates | nousernamefound |
From d33e41488ed442f7c976a52ac7ffac7a82d011d6 Mon Sep 17 00:00:00 2001
From: SquareScreamYT <134925668+SquareScreamYT@users.noreply.github.com>
Date: Thu, 7 Mar 2024 08:05:08 +0800
Subject: [PATCH 14/32] hid burnt rice etc
---
mods/aChefsDream.js | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/mods/aChefsDream.js b/mods/aChefsDream.js
index c72ddfce..2c4337c5 100644
--- a/mods/aChefsDream.js
+++ b/mods/aChefsDream.js
@@ -5191,7 +5191,8 @@ elements.cooked_rice = {
isFood: true,
density: 1050,reactions:{
"water":{elem1:"porridge",elem2:"porridge",chance:3,tempMin:70}
- }
+ },
+ hidden:true
}
elements.porridge = {
color: "#f2ecdc",
@@ -5219,6 +5220,7 @@ elements.burnt_rice = {
state: "solid",
isFood: true,
density: 1050,
+ hidden: true
}
elements.rice_plant = {
color: "#37a825",
From 68267de68d1d8171dc237180b4053451c31ce9db Mon Sep 17 00:00:00 2001
From: SquareScreamYT <134925668+SquareScreamYT@users.noreply.github.com>
Date: Thu, 7 Mar 2024 08:17:18 +0800
Subject: [PATCH 15/32] rice flour i thikn
---
mods/aChefsDream.js | 75 ++++++++++++++++++++++++++++++++++++++++++---
1 file changed, 70 insertions(+), 5 deletions(-)
diff --git a/mods/aChefsDream.js b/mods/aChefsDream.js
index 2c4337c5..5ebe5b6f 100644
--- a/mods/aChefsDream.js
+++ b/mods/aChefsDream.js
@@ -4392,7 +4392,9 @@ elements.passion_fruit = {
state: "solid",
density: 1050,
cutInto: "passion_fruit_flesh",
- temp:20
+ temp:20,
+ freezeDryInto: "freeze_dried_fruits",
+ freezeDryIntoColor: "#412e6b"
}
elements.passion_fruit_flesh = {
color: "#ffe205",
@@ -5167,8 +5169,7 @@ elements.rice = {
burn:65,
burnTime:60,
burnInto: "dead_plant",
- breakInto: "flour",
- breakIntoColor: "#f7f1df",
+ breakInto: "rice_flour",
state: "solid",
isFood: true,
density: 1050,
@@ -5185,8 +5186,7 @@ elements.cooked_rice = {
burn:65,
burnTime:60,
burnInto: "dead_plant",
- breakInto: "flour",
- breakIntoColor: "#f7f1df",
+ breakInto: "rice_flour",
state: "solid",
isFood: true,
density: 1050,reactions:{
@@ -5345,3 +5345,68 @@ elements.rice_panicle = {
hidden: true,
}
+
+elements.rice_flour= {
+ color: "#f7f1df",
+ behavior: behaviors.POWDER,
+ reactions: {
+ "water": { elem1: "mochi_dough", elem2: null },
+ "salt_water": { elem1: "mochi_dough", elem2: null },
+ "sugar_water": { elem1: "mochi_dough", elem2: null },
+ "seltzer": { elem1: "mochi_dough", elem2: null },
+ "yolk": { elem1: "batter", elem2: null },
+ "yogurt": { elem1: "batter", elem2: null },
+ "milk": { elem1:"dough", elem2:null },
+ "cream": { elem1:"dough", elem2:null },
+ },
+ category: "food",
+ tempHigh: 400,
+ stateHigh: "fire",
+ burn:40,
+ burnTime:25,
+ state: "solid",
+ density: 600,
+ isFood: true
+},
+elements.mochi_dough= {
+ color: "#ebddae",
+ behavior: behaviors.STURDYPOWDER,
+ onMix: function(dough,ingredient) {
+ if (elements[ingredient.element].isFood && elements[ingredient.element].id !== elements.dough.id && elements[ingredient.element].id !== elements.flour.id && elements[ingredient.element].id !== elements.batter.id && elements[ingredient.element].id !== elements.bread.id) {
+ var rgb1 = dough.color.match(/\d+/g);
+ var rgb2 = ingredient.color.match(/\d+/g);
+ // average the colors
+ var rgb = [
+ Math.round((parseInt(rgb1[0])*10+parseInt(rgb2[0]))/11),
+ Math.round((parseInt(rgb1[1])*10+parseInt(rgb2[1]))/11),
+ Math.round((parseInt(rgb1[2])*10+parseInt(rgb2[2]))/11)
+ ];
+ // convert rgb to hex
+ var hex = RGBToHex(rgb);
+ dough.color = pixelColorPick(dough, hex);
+ }
+ },
+ category: "food",
+ tempHigh: 94,
+ stateHigh: "mochi",
+ //stateHighColorMultiplier: 0.9,
+ burn:40,
+ burnTime:25,
+ burnInto:"ash",
+ state: "solid",
+ density: 526.9,
+ isFood: true
+},
+elements.mochi = {
+ color: "#f2e2a7",
+ behavior: behaviors.STURDYPOWDER,
+ tempHigh: 400,
+ stateHigh: ["ash","steam"],
+ category: "food",
+ burn: 30,
+ burnTime: 200,
+ burnInto: ["smoke","smoke","smoke","ash"],
+ state: "solid",
+ density: 233.96,
+ isFood: true
+}
From 283d0455a43b5e6e384ab5c98e0984e777bf9b8a Mon Sep 17 00:00:00 2001
From: SquareScreamYT <134925668+SquareScreamYT@users.noreply.github.com>
Date: Thu, 7 Mar 2024 08:19:15 +0800
Subject: [PATCH 16/32] fixy fixy
---
mods/aChefsDream.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/mods/aChefsDream.js b/mods/aChefsDream.js
index 5ebe5b6f..aa478fc9 100644
--- a/mods/aChefsDream.js
+++ b/mods/aChefsDream.js
@@ -5346,7 +5346,7 @@ elements.rice_panicle = {
}
-elements.rice_flour= {
+elements.rice_flour = {
color: "#f7f1df",
behavior: behaviors.POWDER,
reactions: {
@@ -5368,7 +5368,7 @@ elements.rice_flour= {
density: 600,
isFood: true
},
-elements.mochi_dough= {
+elements.mochi_dough = {
color: "#ebddae",
behavior: behaviors.STURDYPOWDER,
onMix: function(dough,ingredient) {
From b54c9728f76d62501418b1e105d716d2e34f97f2 Mon Sep 17 00:00:00 2001
From: SquareScreamYT <134925668+SquareScreamYT@users.noreply.github.com>
Date: Thu, 7 Mar 2024 08:21:06 +0800
Subject: [PATCH 17/32] upcoming featur
---
mods/aChefsDream.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/mods/aChefsDream.js b/mods/aChefsDream.js
index aa478fc9..1e9a7c17 100644
--- a/mods/aChefsDream.js
+++ b/mods/aChefsDream.js
@@ -10,8 +10,8 @@ Upcoming Features:
- spring onions
- soy sauce/wasabi
- white rice noodles
-- glutinous rice and rice flour
-- mochi
+- matcha leaves, powder, tea
+- cacao pods
- seaweed and agar (makes juice into jelly)
- pigs, ham and bacon
- garlic
From 59da1197f4345fce6ef60ed39a9901bc4ce28b9a Mon Sep 17 00:00:00 2001
From: SquareScreamYT <134925668+SquareScreamYT@users.noreply.github.com>
Date: Thu, 7 Mar 2024 10:02:21 +0800
Subject: [PATCH 18/32] msg
---
mods/aChefsDream.js | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/mods/aChefsDream.js b/mods/aChefsDream.js
index 1e9a7c17..d6011f9e 100644
--- a/mods/aChefsDream.js
+++ b/mods/aChefsDream.js
@@ -291,6 +291,7 @@ Changelog (v1.9)
- added cooked and burnt rice
- added rice plants and rice panicles
- added rice seeds
+ - added msg
@@ -5410,3 +5411,20 @@ elements.mochi = {
density: 233.96,
isFood: true
}
+elements.monosodium_glutamate = {
+ color: "#eeeeee",
+ behavior: behaviors.POWDER,
+ reactions: {
+ "ice": { elem1:null, elem2:"salt_water", chance:0.1 },
+ "rime": { elem1:null, elem2:"salt_water", chance:0.075 },
+ "snow": { elem1:null, elem2:"salt_water", chance:0.25 },
+ "packed_snow": { elem1:null, elem2:"salt_water", chance:0.05 },
+ "packed_ice": { elem1:null, elem2:"salt_water", chance:0.01 },
+ "water": { elem2: "salt_water", elem1: null, temp2:-20 },
+ },
+ category: "food",
+ tempHigh: 801,
+ state: "solid",
+ density: 2160,
+ alias: ["msg","C5H8NNaO4"],
+}
From 83383d708f01a14ca8eba55b0f4555d91f1071ec Mon Sep 17 00:00:00 2001
From: Jayd-Rubies <155784127+Jayd-Rubies@users.noreply.github.com>
Date: Wed, 6 Mar 2024 23:46:34 -0500
Subject: [PATCH 19/32] update and new mod
---
aircrafts.js | 225 ++++++++++++++++++++++
weapons.js | 512 +++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 737 insertions(+)
create mode 100644 aircrafts.js
create mode 100644 weapons.js
diff --git a/aircrafts.js b/aircrafts.js
new file mode 100644
index 00000000..df5bb794
--- /dev/null
+++ b/aircrafts.js
@@ -0,0 +1,225 @@
+//aircrafts
+elements.fast_bullet_left = {
+ color: "#4c4e42",
+ behavior: [
+ "XX|DL|XX",
+ "XX|XX|XX",
+ "XX|DL|XX",
+ ],
+tick: function(pixel) {
+ for (var i=0; i<3; i++) {
+ if (!tryMove(pixel, pixel.x-3, pixel.y)) {
+ if (!isEmpty(pixel.x-3, pixel.y,true)) {
+ var newPixel = pixelMap[pixel.x-3][pixel.y];
+ if (newPixel.element === "fast_bullet_left") { break; }
+ if (elements[newPixel.element].state == "solid") {
+ if (Math.random() > (elements[newPixel.element].hardness || 0)) {
+ if (elements[newPixel.element].breakInto) {
+ breakPixel(newPixel);
+ }
+ else {
+ deletePixel(newPixel.x, newPixel.y);
+ }}}}
+ deletePixel(pixel.x,pixel.y);
+ break;
+ }}},
+ category: "ammunition",
+ state: "solid",
+ insulate: true,
+},
+elements.fast_bullet_right = {
+ color: "#4c4e42",
+ behavior: [
+ "XX|DL|XX",
+ "XX|XX|XX",
+ "XX|DL|XX",
+ ],
+ tick: function(pixel) {
+ for (var i=0; i<3; i++) {
+ if (!tryMove(pixel, pixel.x+3, pixel.y)) {
+ if (!isEmpty(pixel.x+3, pixel.y,true)) {
+ var newPixel = pixelMap[pixel.x+3][pixel.y];
+ if (newPixel.element === "fast_bullet_right") { break; }
+ if (elements[newPixel.element].state == "solid") {
+ if (Math.random() > (elements[newPixel.element].hardness || 0)) {
+ if (elements[newPixel.element].breakInto) {
+ breakPixel(newPixel);
+ }
+ else {
+ deletePixel(newPixel.x, newPixel.y);
+ }}}}
+ deletePixel(pixel.x,pixel.y);
+ break;
+ }}},
+ category: "ammunition",
+ state: "solid",
+ insulate: true,
+},
+elements.flak_cannon = {
+ color: "#C0C0C0",
+ behavior: behaviors.WALL,
+ behaviorOn: [
+ "XX|CR:flak|XX",
+ "XX|XX|XX",
+ "XX|XX|XX",
+ ],
+ category: "weapons",
+ state: "solid",
+ density: 1300,
+ conduct: 1,
+},
+ elements.flak = {
+ color: "#f0f0f0",
+ tick: function(pixel) {
+ if ((pixel.temp > 10 || pixel.charge) && !pixel.burning) {
+ pixel.burning = true;
+ pixel.burnStart = pixelTicks;
+ }
+ if (pixel.burning) {
+ if (!tryMove(pixel, pixel.x, pixel.y-1)) {
+ // tryMove again to the top left or top right
+ tryMove(pixel, pixel.x+(Math.random() < 0.5 ? -1 : 1), pixel.y-1);
+ }
+ if (pixelTicks-pixel.burnStart > 50 && Math.random() < 0.005) {
+ explodeAt(pixel.x, pixel.y, 10, "flak_shrapnel");
+ }
+ }
+ else {
+ if (!tryMove(pixel, pixel.x, pixel.y+1)) {
+ // tryMove again to the bottom left or bottom right
+ tryMove(pixel, pixel.x+(Math.random() < 0.5 ? -1 : 1), pixel.y+1);
+ }
+ }
+ doDefaults(pixel);
+ },
+ burn: 90,
+ burnTime: 100,
+ density: 2000,
+ conduct: 1,
+ state: "solid",
+ category: "ammunition"
+},
+ elements.flak_shrapnel = {
+ color: "#71797E",
+ behavior: [
+ "XX|XX|XX",
+ "XX|EX:5 %10|XX",
+ "M2|M1|M2",
+ ],
+ burn: 90,
+ burnTime: 100,
+ density: 2000,
+ conduct: 1,
+ state: "solid",
+ category: "ammunition"
+},
+elements.fighter_jet_left = {
+ color: "#bcc6cc",
+ behavior: [
+ "M1%0.2|M2%0.005 AND EX:5>metal_scrap|M2%0.005 AND EX:5>metal_scrap",
+ "M1 AND CR:fast_bullet_left|XX|CR:smoke AND EX:5>metal_scrap",
+ "M1%0.2|M2%0.005 AND EX:5>metal_scrap|M2%0.005 AND EX:5>metal_scrap",
+ ],
+tick: function(pixel) {
+ for (var i=0; i<2; i++) {
+ if (!tryMove(pixel, pixel.x-1, pixel.y)) {
+ if (!isEmpty(pixel.x-1, pixel.y,true)) {
+ var newPixel = pixelMap[pixel.x-1][pixel.y];
+ if (newPixel.element === "fast_bullet_left") { break; }
+ if (elements[newPixel.element].state == "solid") {
+ if (Math.random() > (elements[newPixel.element].hardness || 0)) {
+ if (elements[newPixel.element].breakInto) {
+ breakPixel(newPixel);
+ }
+ else {
+ deletePixel(newPixel.x, newPixel.y);
+ }}}}
+ deletePixel(pixel.x,pixel.y);
+ break;
+ }}},
+ category: "aircrafts",
+ breakInto: "metal_scrap"
+ },
+elements.fighter_jet_right = {
+ color: "#bcc6cc",
+ behavior: [
+ "M2%0.005 AND EX:5>metal_scrap|M2%0.005 AND EX:5>metal_scrap|M1%0.2",
+ "CR:smoke AND EX:5>metal_scrap|XX|M1 AND CR:fast_bullet_right",
+ "M2%0.005 AND EX:5>metal_scrap|M2%0.005 AND EX:5>metal_scrap|M1%0.2",
+ ],
+tick: function(pixel) {
+ for (var i=0; i<2; i++) {
+ if (!tryMove(pixel, pixel.x+1, pixel.y)) {
+ if (!isEmpty(pixel.x+1, pixel.y,true)) {
+ var newPixel = pixelMap[pixel.x+1][pixel.y];
+ if (newPixel.element === "fast_bullet_right") { break; }
+ if (elements[newPixel.element].state == "solid") {
+ if (Math.random() > (elements[newPixel.element].hardness || 0)) {
+ if (elements[newPixel.element].breakInto) {
+ breakPixel(newPixel);
+ }
+ else {
+ deletePixel(newPixel.x, newPixel.y);
+ }}}}
+ deletePixel(pixel.x,pixel.y);
+ break;
+ }}},
+ category: "aircrafts",
+ breakInto: "metal_scrap"
+ },
+elements.airliner_left = {
+ color: "#fafafa",
+ category: "aircrafts",
+ behavior: [
+ "M1%3 AND EX:7>fire,fire,fire,metal_scrap|XX|XX",
+ "M1 AND EX:7>fire,fire,fire,metal_scrap|XX|XX",
+ "M1%3 AND EX:7>fire,fire,fire,metal_scrap|XX|CR:smoke%10",
+ ],
+ burnTime: 1000,
+ burn: 40,
+ burnInto: "metal_scrap",
+ breakInto: "metal_scrap",
+ conduct: 1
+},
+elements.airliner_right = {
+ color: "#fafafa",
+ category: "aircrafts",
+ behavior: [
+ "XX|XX|M1%3 AND EX:7>fire,fire,fire,metal_scrap",
+ "XX|XX|M1 AND EX:7>fire,fire,fire,metal_scrap",
+ "CR:smoke%10|XX|M1%3 AND EX:7>fire,fire,fire,metal_scrap",
+ ],
+ burnTime: 1000,
+ burn: 40,
+ burnInto: "metal_scrap",
+ breakInto: "metal_scrap",
+ conduct: 1
+},
+elements.bomber_left = {
+ color: "#fafafa",
+ category: "aircrafts",
+ behavior: [
+ "M1%3 AND EX:7>fire,fire,fire,metal_scrap|XX|XX",
+ "M1 AND EX:7>fire,fire,fire,metal_scrap|XX|XX",
+ "M1%3 AND EX:7>fire,fire,fire,metal_scrap|XX|CR:smoke%10 AND CR:bomb",
+ ],
+ burnTime: 1000,
+ burn: 40,
+ burnInto: "metal_scrap",
+ breakInto: "metal_scrap",
+ conduct: 1
+},
+elements.bomber_right = {
+ color: "#fafafa",
+ category: "aircrafts",
+ behavior: [
+ "XX|XX|M1%3 AND EX:7>fire,fire,fire,metal_scrap",
+ "XX|XX|M1 AND EX:7>fire,fire,fire,metal_scrap",
+ "CR:smoke%10 AND CR:bomb|XX|M1%3 AND EX:7>fire,fire,fire,metal_scrap",
+ ],
+ burnTime: 1000,
+ burn: 40,
+ burnInto: "metal_scrap",
+ breakInto: "metal_scrap",
+ conduct: 1
+}
\ No newline at end of file
diff --git a/weapons.js b/weapons.js
new file mode 100644
index 00000000..3eef74c2
--- /dev/null
+++ b/weapons.js
@@ -0,0 +1,512 @@
+elements.tsar_bomba = {
+ color: "#524C41",
+ behavior: [
+ "XX|EX:150>plasma|XX",
+ "XX|XX|XX",
+ "M2|M1 AND EX:150>plasma|M2",
+ ],
+ category: "weapons",
+ state: "solid",
+ density: 1300,
+ excludeRandom: true,
+ cooldown: defaultCooldown
+},
+elements.little_boy = {
+ color: "#F5F5DC",
+ behavior: [
+ "XX|EX:20>plasma|XX",
+ "XX|XX|XX",
+ "M2|M1 AND EX:70>plasma,plasma,plasma,plasma,radiation,fallout|M2",
+ ],
+ category: "weapons",
+ state: "solid",
+ density: 500,
+ excludeRandom: true,
+ cooldown: defaultCooldown
+},
+elements.fat_man = {
+ color: ["#ffff00","#333333"],
+ behavior: [
+ "XX|EX:28>plasma|XX",
+ "XX|XX|XX",
+ "M2|M1 AND EX:98>plasma,plasma,plasma,plasma,radiation,fallout|M2",
+ ],
+ category: "weapons",
+ state: "solid",
+ density: 1000,
+ excludeRandom: true,
+ cooldown: defaultCooldown
+},
+ elements.self_propelled_bomb = {
+ color: "#71797E",
+ tick: function(pixel) {
+ if ((pixel.temp > 1000 || pixel.charge) && !pixel.burning) {
+ pixel.burning = true;
+ pixel.burnStart = pixelTicks;
+ }
+ if (pixel.burning) {
+ if (!tryMove(pixel, pixel.x, pixel.y-1)) {
+ // tryMove again to the top left or top right
+ tryMove(pixel, pixel.x+(Math.random() < 0.5 ? -1 : 1), pixel.y-1);
+ }
+ if (pixelTicks-pixel.burnStart > 50 && Math.random() < 0.1) {
+ explodeAt(pixel.x, pixel.y, 10, "bomb");
+ }
+ }
+ else {
+ if (!tryMove(pixel, pixel.x, pixel.y+1)) {
+ // tryMove again to the bottom left or bottom right
+ tryMove(pixel, pixel.x+(Math.random() < 0.5 ? -1 : 1), pixel.y+1);
+ }
+ }
+ doDefaults(pixel);
+ },
+ burn: 90,
+ burnTime: 100,
+ density: 2000,
+ conduct: 1,
+ state: "solid",
+ category: "weapons"
+},
+elements.left_missile = {
+ color: "#4c4e42",
+ behavior: [
+ "M2|EX:10|XX",
+ "M1 AND EX:10|XX|EX:10",
+ "M2|EX:10|XX",
+ ],
+ category:"ammunition",
+},
+elements.right_missile = {
+ color: "#4c4e42",
+ behavior: [
+ "XX|EX:10|M2",
+ "EX:10|XX|M1 AND EX:10",
+ "XX|EX:10|M2",
+ ],
+ category:"ammunition",
+},
+elements.up_missile = {
+ color: "#4c4e42",
+ behavior: [
+ "M2|M1 AND EX:10|M2",
+ "EX:10|XX|EX:10",
+ "XX|EX:10|XX",
+ ],
+ category:"ammunition",
+ alias: "the element that some guy try to add to my mod without my permission but when doing so fucked the behavior grid up",
+},
+ elements.cluster_munition = {
+ color: "#444444",
+ behavior: [
+ "XX|EX:10>smoke,smoke,smoke,smoke,bomb,bomb|XX",
+ "XX|XX|XX",
+ "M2|M1 AND EX:10>smoke,smoke,smoke,smoke,bomb,cluster_munition|M2",
+ ],
+ category: "weapons",
+ state: "solid",
+ density: 1300,
+},
+ elements.RL_cluster_munition = {
+ color: "#444444",
+ behavior: [
+ "XX|XX|XX",
+ "CRcluster%20|XX|CR:cluster%20",
+ "M2|M1|M2",
+ ],
+ category: "weapons",
+ state: "solid",
+ density: 1300,
+},
+ elements.cluster = {
+ color: "#444444",
+ behavior: [
+ "XX|EX:10%10|XX",
+ "XX|XX|XX",
+ "M2|M1 AND EX:10%10|M2",
+ ],
+ category: "ammunition",
+ state: "solid",
+ density: 1300,
+ hidden: true,
+},
+ elements.machine_gun_left = {
+ color: "#C0C0C0",
+ behavior: [
+ "XX|XX|XX",
+ "CR:left_bullet|XX|XX",
+ "XX|XX|XX",
+ ],
+ category: "weapons",
+ state: "solid",
+ density: 1300,
+},
+ elements.machine_gun_right = {
+ color: "#C0C0C0",
+ behavior: [
+ "XX|XX|XX",
+ "XX|XX|CR:right_bullet",
+ "XX|XX|XX",
+ ],
+ category: "weapons",
+ state: "solid",
+ density: 1300,
+},
+elements.left_bullet = {
+ color: "#4c4e42",
+ behavior: [
+ "M2|XX|XX",
+ "M1 AND EX:5|XX|XX",
+ "M2|XX|XX",
+ ],
+ category:"ammunition",
+},
+ elements.right_bullet = {
+ color: "#4c4e42",
+ behavior: [
+ "XX|XX|M2",
+ "XX|XX|M1 AND EX:5",
+ "XX|XX|M2",
+ ],
+ category:"ammunition",
+},
+ elements.e_gun_left = {
+ color: "#C0C0C0",
+ behavior: behaviors.WALL,
+ behaviorOn: [
+ "XX|XX|XX",
+ "CR:left_bullet|XX|XX",
+ "XX|XX|XX",
+ ],
+ category: "weapons",
+ state: "solid",
+ conduct: 1,
+ density: 1300,
+},
+ elements.e_gun_right = {
+ color: "#C0C0C0",
+ behavior: behaviors.WALL,
+ behaviorOn: [
+ "XX|XX|XX",
+ "XX|XX|CR:right_bullet",
+ "XX|XX|XX",
+ ],
+ category: "weapons",
+ state: "solid",
+ conduct: 1,
+ density: 1300,
+},
+ elements.auto_rocket_launcher_left = {
+ color: "#C0C0C0",
+ behavior: [
+ "XX|XX|XX",
+ "CR:left_rocket|XX|XX",
+ "XX|XX|XX",
+ ],
+ category: "weapons",
+ state: "solid",
+ density: 1300,
+},
+ elements.auto_rocket_launcher_right = {
+ color: "#C0C0C0",
+ behavior: [
+ "XX|XX|XX",
+ "XX|XX|CR:right_rocket",
+ "XX|XX|XX",
+ ],
+ category: "weapons",
+ state: "solid",
+ density: 1300,
+},
+elements.left_rocket = {
+ color: "#4c4e42",
+ behavior: [
+ "XX|XX|XX",
+ "M1 AND EX:10|XX|XX",
+ "XX|XX|XX",
+ ],
+ category:"ammunition",
+},
+ elements.right_rocket = {
+ color: "#4c4e42",
+ behavior: [
+ "XX|XX|XX",
+ "XX|XX|M1 AND EX:10",
+ "XX|XX|XX",
+ ],
+ category:"ammunition",
+},
+ elements.e_rocket_launcher_left = {
+ color: "#C0C0C0",
+ behavior: behaviors.WALL,
+ behaviorOn: [
+ "XX|XX|XX",
+ "CR:left_rocket|XX|XX",
+ "XX|XX|XX",
+ ],
+ category: "weapons",
+ state: "solid",
+ conduct: 1,
+ density: 1300,
+},
+ elements.e_rocket_launcher_right = {
+ color: "#C0C0C0",
+ behavior: behaviors.WALL,
+ behaviorOn: [
+ "XX|XX|XX",
+ "XX|XX|CR:right_rocket",
+ "XX|XX|XX",
+ ],
+ category: "weapons",
+ state: "solid",
+ conduct: 1,
+ density: 1300,
+},
+elements.gaster_blast_left = {
+ color: "#c5e9f0",
+ behavior: [
+ "DL|DL|XX",
+ "DL AND CR:gaster_blast_left%5|XX|XX",
+ "DL|DL|XX",
+ ],
+ tick: function(pixel) {
+ for (var i=0; i<3; i++) {
+ if (!tryMove(pixel, pixel.x-2, pixel.y)) {
+ if (!isEmpty(pixel.x-2, pixel.y,true)) {
+ var newPixel = pixelMap[pixel.x-2][pixel.y];
+ if (newPixel.element === "gaster_blast_left") { break; }
+ if (elements[newPixel.element].state == "gas") {
+ if (Math.random() > (elements[newPixel.element].hardness || 0)) {
+ if (elements[newPixel.element].breakInto) {
+ breakPixel(newPixel);
+ }
+ else {
+ deletePixel(newPixel.x, newPixel.y);
+ }}}}
+ deletePixel(pixel.x,pixel.y);
+ break;
+ }}},
+ category: "energy",
+ state: "gas",
+ insulate: true,
+},
+elements.gaster_blast_right = {
+ color: "#c5e9f0",
+ behavior: [
+ "XX|DL|DL",
+ "XX|XX|DL AND CR:gaster_blast_right%5",
+ "XX|DL|DL",
+ ],
+ tick: function(pixel) {
+ for (var i=0; i<3; i++) {
+ if (!tryMove(pixel, pixel.x+2, pixel.y)) {
+ if (!isEmpty(pixel.x+2, pixel.y,true)) {
+ var newPixel = pixelMap[pixel.x+2][pixel.y];
+ if (newPixel.element === "gaster_blast_right") { break; }
+ if (elements[newPixel.element].state == "gas") {
+ if (Math.random() > (elements[newPixel.element].hardness || 0)) {
+ if (elements[newPixel.element].breakInto) {
+ breakPixel(newPixel);
+ }
+ else {
+ deletePixel(newPixel.x, newPixel.y);
+ }}}}
+ deletePixel(pixel.x,pixel.y);
+ break;
+ }}},
+ category: "energy",
+ state: "gas",
+ insulate: true,
+},
+ elements.gaster_blaster_left = {
+ color: "#ffffff",
+ behavior: behaviors.WALL,
+ behaviorOn: [
+ "XX|XX|XX",
+ "CR:gaster_blast_left|XX|XX",
+ "XX|XX|XX",
+ ],
+ category: "weapons",
+ state: "solid",
+ conduct: 20,
+},
+ elements.gaster_blaster_right = {
+ color: "#ffffff",
+ behavior: behaviors.WALL,
+ behaviorOn: [
+ "XX|XX|XX",
+ "XX|XX|CR:gaster_blast_right",
+ "XX|XX|XX",
+ ],
+ category: "weapons",
+ state: "solid",
+ conduct: 20,
+},
+elements.fast_bullet_left = {
+ color: "#4c4e42",
+ behavior: [
+ "XX|DL|XX",
+ "XX|XX|XX",
+ "XX|DL|XX",
+ ],
+tick: function(pixel) {
+ for (var i=0; i<3; i++) {
+ if (!tryMove(pixel, pixel.x-3, pixel.y)) {
+ if (!isEmpty(pixel.x-3, pixel.y,true)) {
+ var newPixel = pixelMap[pixel.x-3][pixel.y];
+ if (newPixel.element === "fast_bullet_left") { break; }
+ if (elements[newPixel.element].state == "solid") {
+ if (Math.random() > (elements[newPixel.element].hardness || 0)) {
+ if (elements[newPixel.element].breakInto) {
+ breakPixel(newPixel);
+ }
+ else {
+ deletePixel(newPixel.x, newPixel.y);
+ }}}}
+ deletePixel(pixel.x,pixel.y);
+ break;
+ }}},
+ category: "ammunition",
+ state: "solid",
+ insulate: true,
+},
+elements.fast_bullet_right = {
+ color: "#4c4e42",
+ behavior: [
+ "XX|DL|XX",
+ "XX|XX|XX",
+ "XX|DL|XX",
+ ],
+ tick: function(pixel) {
+ for (var i=0; i<3; i++) {
+ if (!tryMove(pixel, pixel.x+3, pixel.y)) {
+ if (!isEmpty(pixel.x+3, pixel.y,true)) {
+ var newPixel = pixelMap[pixel.x+3][pixel.y];
+ if (newPixel.element === "fast_bullet_right") { break; }
+ if (elements[newPixel.element].state == "solid") {
+ if (Math.random() > (elements[newPixel.element].hardness || 0)) {
+ if (elements[newPixel.element].breakInto) {
+ breakPixel(newPixel);
+ }
+ else {
+ deletePixel(newPixel.x, newPixel.y);
+ }}}}
+ deletePixel(pixel.x,pixel.y);
+ break;
+ }}},
+ category: "ammunition",
+ state: "solid",
+ insulate: true,
+},
+elements.flak_cannon = {
+ color: "#C0C0C0",
+ behavior: behaviors.WALL,
+ behaviorOn: [
+ "XX|CR:flak|XX",
+ "XX|XX|XX",
+ "XX|XX|XX",
+ ],
+ category: "weapons",
+ state: "solid",
+ density: 1300,
+ conduct: 1,
+},
+ elements.flak = {
+ color: "#f0f0f0",
+ tick: function(pixel) {
+ if ((pixel.temp > 10 || pixel.charge) && !pixel.burning) {
+ pixel.burning = true;
+ pixel.burnStart = pixelTicks;
+ }
+ if (pixel.burning) {
+ if (!tryMove(pixel, pixel.x, pixel.y-1)) {
+ // tryMove again to the top left or top right
+ tryMove(pixel, pixel.x+(Math.random() < 0.5 ? -1 : 1), pixel.y-1);
+ }
+ if (pixelTicks-pixel.burnStart > 50 && Math.random() < 0.005) {
+ explodeAt(pixel.x, pixel.y, 10, "flak_shrapnel");
+ }
+ }
+ else {
+ if (!tryMove(pixel, pixel.x, pixel.y+1)) {
+ // tryMove again to the bottom left or bottom right
+ tryMove(pixel, pixel.x+(Math.random() < 0.5 ? -1 : 1), pixel.y+1);
+ }
+ }
+ doDefaults(pixel);
+ },
+ burn: 90,
+ burnTime: 100,
+ density: 2000,
+ conduct: 1,
+ state: "solid",
+ category: "ammunition"
+},
+ elements.flak_shrapnel = {
+ color: "#71797E",
+ behavior: [
+ "XX|XX|XX",
+ "XX|EX:5 %10|XX",
+ "M2|M1|M2",
+ ],
+ burn: 90,
+ burnTime: 100,
+ density: 2000,
+ conduct: 1,
+ state: "solid",
+ category: "ammunition"
+},
+elements.fighter_jet_left = {
+ color: "#bcc6cc",
+ behavior: [
+ "M1%0.2|M2%0.005 AND EX:5>metal_scrap|M2%0.005 AND EX:5>metal_scrap",
+ "M1 AND CR:fast_bullet_left|XX|CR:smoke AND EX:5>metal_scrap",
+ "M1%0.2|M2%0.005 AND EX:5>metal_scrap|M2%0.005 AND EX:5>metal_scrap",
+ ],
+tick: function(pixel) {
+ for (var i=0; i<2; i++) {
+ if (!tryMove(pixel, pixel.x-1, pixel.y)) {
+ if (!isEmpty(pixel.x-1, pixel.y,true)) {
+ var newPixel = pixelMap[pixel.x-1][pixel.y];
+ if (newPixel.element === "fast_bullet_left") { break; }
+ if (elements[newPixel.element].state == "solid") {
+ if (Math.random() > (elements[newPixel.element].hardness || 0)) {
+ if (elements[newPixel.element].breakInto) {
+ breakPixel(newPixel);
+ }
+ else {
+ deletePixel(newPixel.x, newPixel.y);
+ }}}}
+ deletePixel(pixel.x,pixel.y);
+ break;
+ }}},
+ category: "aircrafts",
+ breakInto: "metal_scrap"
+ },
+elements.fighter_jet_right = {
+ color: "#bcc6cc",
+ behavior: [
+ "M2%0.005 AND EX:5>metal_scrap|M2%0.005 AND EX:5>metal_scrap|M1%0.2",
+ "CR:smoke AND EX:5>metal_scrap|XX|M1 AND CR:fast_bullet_right",
+ "M2%0.005 AND EX:5>metal_scrap|M2%0.005 AND EX:5>metal_scrap|M1%0.2",
+ ],
+tick: function(pixel) {
+ for (var i=0; i<2; i++) {
+ if (!tryMove(pixel, pixel.x+1, pixel.y)) {
+ if (!isEmpty(pixel.x+1, pixel.y,true)) {
+ var newPixel = pixelMap[pixel.x+1][pixel.y];
+ if (newPixel.element === "fast_bullet_right") { break; }
+ if (elements[newPixel.element].state == "solid") {
+ if (Math.random() > (elements[newPixel.element].hardness || 0)) {
+ if (elements[newPixel.element].breakInto) {
+ breakPixel(newPixel);
+ }
+ else {
+ deletePixel(newPixel.x, newPixel.y);
+ }}}}
+ deletePixel(pixel.x,pixel.y);
+ break;
+ }}},
+ category: "aircrafts",
+ breakInto: "metal_scrap"
+ }
\ No newline at end of file
From fae76a5daf490ba03ee8ee62480cb78b7469dc43 Mon Sep 17 00:00:00 2001
From: Jayd-Rubies <155784127+Jayd-Rubies@users.noreply.github.com>
Date: Wed, 6 Mar 2024 23:48:10 -0500
Subject: [PATCH 20/32] Delete aircrafts.js
---
aircrafts.js | 225 ---------------------------------------------------
1 file changed, 225 deletions(-)
delete mode 100644 aircrafts.js
diff --git a/aircrafts.js b/aircrafts.js
deleted file mode 100644
index df5bb794..00000000
--- a/aircrafts.js
+++ /dev/null
@@ -1,225 +0,0 @@
-//aircrafts
-elements.fast_bullet_left = {
- color: "#4c4e42",
- behavior: [
- "XX|DL|XX",
- "XX|XX|XX",
- "XX|DL|XX",
- ],
-tick: function(pixel) {
- for (var i=0; i<3; i++) {
- if (!tryMove(pixel, pixel.x-3, pixel.y)) {
- if (!isEmpty(pixel.x-3, pixel.y,true)) {
- var newPixel = pixelMap[pixel.x-3][pixel.y];
- if (newPixel.element === "fast_bullet_left") { break; }
- if (elements[newPixel.element].state == "solid") {
- if (Math.random() > (elements[newPixel.element].hardness || 0)) {
- if (elements[newPixel.element].breakInto) {
- breakPixel(newPixel);
- }
- else {
- deletePixel(newPixel.x, newPixel.y);
- }}}}
- deletePixel(pixel.x,pixel.y);
- break;
- }}},
- category: "ammunition",
- state: "solid",
- insulate: true,
-},
-elements.fast_bullet_right = {
- color: "#4c4e42",
- behavior: [
- "XX|DL|XX",
- "XX|XX|XX",
- "XX|DL|XX",
- ],
- tick: function(pixel) {
- for (var i=0; i<3; i++) {
- if (!tryMove(pixel, pixel.x+3, pixel.y)) {
- if (!isEmpty(pixel.x+3, pixel.y,true)) {
- var newPixel = pixelMap[pixel.x+3][pixel.y];
- if (newPixel.element === "fast_bullet_right") { break; }
- if (elements[newPixel.element].state == "solid") {
- if (Math.random() > (elements[newPixel.element].hardness || 0)) {
- if (elements[newPixel.element].breakInto) {
- breakPixel(newPixel);
- }
- else {
- deletePixel(newPixel.x, newPixel.y);
- }}}}
- deletePixel(pixel.x,pixel.y);
- break;
- }}},
- category: "ammunition",
- state: "solid",
- insulate: true,
-},
-elements.flak_cannon = {
- color: "#C0C0C0",
- behavior: behaviors.WALL,
- behaviorOn: [
- "XX|CR:flak|XX",
- "XX|XX|XX",
- "XX|XX|XX",
- ],
- category: "weapons",
- state: "solid",
- density: 1300,
- conduct: 1,
-},
- elements.flak = {
- color: "#f0f0f0",
- tick: function(pixel) {
- if ((pixel.temp > 10 || pixel.charge) && !pixel.burning) {
- pixel.burning = true;
- pixel.burnStart = pixelTicks;
- }
- if (pixel.burning) {
- if (!tryMove(pixel, pixel.x, pixel.y-1)) {
- // tryMove again to the top left or top right
- tryMove(pixel, pixel.x+(Math.random() < 0.5 ? -1 : 1), pixel.y-1);
- }
- if (pixelTicks-pixel.burnStart > 50 && Math.random() < 0.005) {
- explodeAt(pixel.x, pixel.y, 10, "flak_shrapnel");
- }
- }
- else {
- if (!tryMove(pixel, pixel.x, pixel.y+1)) {
- // tryMove again to the bottom left or bottom right
- tryMove(pixel, pixel.x+(Math.random() < 0.5 ? -1 : 1), pixel.y+1);
- }
- }
- doDefaults(pixel);
- },
- burn: 90,
- burnTime: 100,
- density: 2000,
- conduct: 1,
- state: "solid",
- category: "ammunition"
-},
- elements.flak_shrapnel = {
- color: "#71797E",
- behavior: [
- "XX|XX|XX",
- "XX|EX:5 %10|XX",
- "M2|M1|M2",
- ],
- burn: 90,
- burnTime: 100,
- density: 2000,
- conduct: 1,
- state: "solid",
- category: "ammunition"
-},
-elements.fighter_jet_left = {
- color: "#bcc6cc",
- behavior: [
- "M1%0.2|M2%0.005 AND EX:5>metal_scrap|M2%0.005 AND EX:5>metal_scrap",
- "M1 AND CR:fast_bullet_left|XX|CR:smoke AND EX:5>metal_scrap",
- "M1%0.2|M2%0.005 AND EX:5>metal_scrap|M2%0.005 AND EX:5>metal_scrap",
- ],
-tick: function(pixel) {
- for (var i=0; i<2; i++) {
- if (!tryMove(pixel, pixel.x-1, pixel.y)) {
- if (!isEmpty(pixel.x-1, pixel.y,true)) {
- var newPixel = pixelMap[pixel.x-1][pixel.y];
- if (newPixel.element === "fast_bullet_left") { break; }
- if (elements[newPixel.element].state == "solid") {
- if (Math.random() > (elements[newPixel.element].hardness || 0)) {
- if (elements[newPixel.element].breakInto) {
- breakPixel(newPixel);
- }
- else {
- deletePixel(newPixel.x, newPixel.y);
- }}}}
- deletePixel(pixel.x,pixel.y);
- break;
- }}},
- category: "aircrafts",
- breakInto: "metal_scrap"
- },
-elements.fighter_jet_right = {
- color: "#bcc6cc",
- behavior: [
- "M2%0.005 AND EX:5>metal_scrap|M2%0.005 AND EX:5>metal_scrap|M1%0.2",
- "CR:smoke AND EX:5>metal_scrap|XX|M1 AND CR:fast_bullet_right",
- "M2%0.005 AND EX:5>metal_scrap|M2%0.005 AND EX:5>metal_scrap|M1%0.2",
- ],
-tick: function(pixel) {
- for (var i=0; i<2; i++) {
- if (!tryMove(pixel, pixel.x+1, pixel.y)) {
- if (!isEmpty(pixel.x+1, pixel.y,true)) {
- var newPixel = pixelMap[pixel.x+1][pixel.y];
- if (newPixel.element === "fast_bullet_right") { break; }
- if (elements[newPixel.element].state == "solid") {
- if (Math.random() > (elements[newPixel.element].hardness || 0)) {
- if (elements[newPixel.element].breakInto) {
- breakPixel(newPixel);
- }
- else {
- deletePixel(newPixel.x, newPixel.y);
- }}}}
- deletePixel(pixel.x,pixel.y);
- break;
- }}},
- category: "aircrafts",
- breakInto: "metal_scrap"
- },
-elements.airliner_left = {
- color: "#fafafa",
- category: "aircrafts",
- behavior: [
- "M1%3 AND EX:7>fire,fire,fire,metal_scrap|XX|XX",
- "M1 AND EX:7>fire,fire,fire,metal_scrap|XX|XX",
- "M1%3 AND EX:7>fire,fire,fire,metal_scrap|XX|CR:smoke%10",
- ],
- burnTime: 1000,
- burn: 40,
- burnInto: "metal_scrap",
- breakInto: "metal_scrap",
- conduct: 1
-},
-elements.airliner_right = {
- color: "#fafafa",
- category: "aircrafts",
- behavior: [
- "XX|XX|M1%3 AND EX:7>fire,fire,fire,metal_scrap",
- "XX|XX|M1 AND EX:7>fire,fire,fire,metal_scrap",
- "CR:smoke%10|XX|M1%3 AND EX:7>fire,fire,fire,metal_scrap",
- ],
- burnTime: 1000,
- burn: 40,
- burnInto: "metal_scrap",
- breakInto: "metal_scrap",
- conduct: 1
-},
-elements.bomber_left = {
- color: "#fafafa",
- category: "aircrafts",
- behavior: [
- "M1%3 AND EX:7>fire,fire,fire,metal_scrap|XX|XX",
- "M1 AND EX:7>fire,fire,fire,metal_scrap|XX|XX",
- "M1%3 AND EX:7>fire,fire,fire,metal_scrap|XX|CR:smoke%10 AND CR:bomb",
- ],
- burnTime: 1000,
- burn: 40,
- burnInto: "metal_scrap",
- breakInto: "metal_scrap",
- conduct: 1
-},
-elements.bomber_right = {
- color: "#fafafa",
- category: "aircrafts",
- behavior: [
- "XX|XX|M1%3 AND EX:7>fire,fire,fire,metal_scrap",
- "XX|XX|M1 AND EX:7>fire,fire,fire,metal_scrap",
- "CR:smoke%10 AND CR:bomb|XX|M1%3 AND EX:7>fire,fire,fire,metal_scrap",
- ],
- burnTime: 1000,
- burn: 40,
- burnInto: "metal_scrap",
- breakInto: "metal_scrap",
- conduct: 1
-}
\ No newline at end of file
From df972c777982ed7c629ff33b142a4e6169778735 Mon Sep 17 00:00:00 2001
From: Jayd-Rubies <155784127+Jayd-Rubies@users.noreply.github.com>
Date: Wed, 6 Mar 2024 23:48:28 -0500
Subject: [PATCH 21/32] Delete weapons.js
---
weapons.js | 512 -----------------------------------------------------
1 file changed, 512 deletions(-)
delete mode 100644 weapons.js
diff --git a/weapons.js b/weapons.js
deleted file mode 100644
index 3eef74c2..00000000
--- a/weapons.js
+++ /dev/null
@@ -1,512 +0,0 @@
-elements.tsar_bomba = {
- color: "#524C41",
- behavior: [
- "XX|EX:150>plasma|XX",
- "XX|XX|XX",
- "M2|M1 AND EX:150>plasma|M2",
- ],
- category: "weapons",
- state: "solid",
- density: 1300,
- excludeRandom: true,
- cooldown: defaultCooldown
-},
-elements.little_boy = {
- color: "#F5F5DC",
- behavior: [
- "XX|EX:20>plasma|XX",
- "XX|XX|XX",
- "M2|M1 AND EX:70>plasma,plasma,plasma,plasma,radiation,fallout|M2",
- ],
- category: "weapons",
- state: "solid",
- density: 500,
- excludeRandom: true,
- cooldown: defaultCooldown
-},
-elements.fat_man = {
- color: ["#ffff00","#333333"],
- behavior: [
- "XX|EX:28>plasma|XX",
- "XX|XX|XX",
- "M2|M1 AND EX:98>plasma,plasma,plasma,plasma,radiation,fallout|M2",
- ],
- category: "weapons",
- state: "solid",
- density: 1000,
- excludeRandom: true,
- cooldown: defaultCooldown
-},
- elements.self_propelled_bomb = {
- color: "#71797E",
- tick: function(pixel) {
- if ((pixel.temp > 1000 || pixel.charge) && !pixel.burning) {
- pixel.burning = true;
- pixel.burnStart = pixelTicks;
- }
- if (pixel.burning) {
- if (!tryMove(pixel, pixel.x, pixel.y-1)) {
- // tryMove again to the top left or top right
- tryMove(pixel, pixel.x+(Math.random() < 0.5 ? -1 : 1), pixel.y-1);
- }
- if (pixelTicks-pixel.burnStart > 50 && Math.random() < 0.1) {
- explodeAt(pixel.x, pixel.y, 10, "bomb");
- }
- }
- else {
- if (!tryMove(pixel, pixel.x, pixel.y+1)) {
- // tryMove again to the bottom left or bottom right
- tryMove(pixel, pixel.x+(Math.random() < 0.5 ? -1 : 1), pixel.y+1);
- }
- }
- doDefaults(pixel);
- },
- burn: 90,
- burnTime: 100,
- density: 2000,
- conduct: 1,
- state: "solid",
- category: "weapons"
-},
-elements.left_missile = {
- color: "#4c4e42",
- behavior: [
- "M2|EX:10|XX",
- "M1 AND EX:10|XX|EX:10",
- "M2|EX:10|XX",
- ],
- category:"ammunition",
-},
-elements.right_missile = {
- color: "#4c4e42",
- behavior: [
- "XX|EX:10|M2",
- "EX:10|XX|M1 AND EX:10",
- "XX|EX:10|M2",
- ],
- category:"ammunition",
-},
-elements.up_missile = {
- color: "#4c4e42",
- behavior: [
- "M2|M1 AND EX:10|M2",
- "EX:10|XX|EX:10",
- "XX|EX:10|XX",
- ],
- category:"ammunition",
- alias: "the element that some guy try to add to my mod without my permission but when doing so fucked the behavior grid up",
-},
- elements.cluster_munition = {
- color: "#444444",
- behavior: [
- "XX|EX:10>smoke,smoke,smoke,smoke,bomb,bomb|XX",
- "XX|XX|XX",
- "M2|M1 AND EX:10>smoke,smoke,smoke,smoke,bomb,cluster_munition|M2",
- ],
- category: "weapons",
- state: "solid",
- density: 1300,
-},
- elements.RL_cluster_munition = {
- color: "#444444",
- behavior: [
- "XX|XX|XX",
- "CRcluster%20|XX|CR:cluster%20",
- "M2|M1|M2",
- ],
- category: "weapons",
- state: "solid",
- density: 1300,
-},
- elements.cluster = {
- color: "#444444",
- behavior: [
- "XX|EX:10%10|XX",
- "XX|XX|XX",
- "M2|M1 AND EX:10%10|M2",
- ],
- category: "ammunition",
- state: "solid",
- density: 1300,
- hidden: true,
-},
- elements.machine_gun_left = {
- color: "#C0C0C0",
- behavior: [
- "XX|XX|XX",
- "CR:left_bullet|XX|XX",
- "XX|XX|XX",
- ],
- category: "weapons",
- state: "solid",
- density: 1300,
-},
- elements.machine_gun_right = {
- color: "#C0C0C0",
- behavior: [
- "XX|XX|XX",
- "XX|XX|CR:right_bullet",
- "XX|XX|XX",
- ],
- category: "weapons",
- state: "solid",
- density: 1300,
-},
-elements.left_bullet = {
- color: "#4c4e42",
- behavior: [
- "M2|XX|XX",
- "M1 AND EX:5|XX|XX",
- "M2|XX|XX",
- ],
- category:"ammunition",
-},
- elements.right_bullet = {
- color: "#4c4e42",
- behavior: [
- "XX|XX|M2",
- "XX|XX|M1 AND EX:5",
- "XX|XX|M2",
- ],
- category:"ammunition",
-},
- elements.e_gun_left = {
- color: "#C0C0C0",
- behavior: behaviors.WALL,
- behaviorOn: [
- "XX|XX|XX",
- "CR:left_bullet|XX|XX",
- "XX|XX|XX",
- ],
- category: "weapons",
- state: "solid",
- conduct: 1,
- density: 1300,
-},
- elements.e_gun_right = {
- color: "#C0C0C0",
- behavior: behaviors.WALL,
- behaviorOn: [
- "XX|XX|XX",
- "XX|XX|CR:right_bullet",
- "XX|XX|XX",
- ],
- category: "weapons",
- state: "solid",
- conduct: 1,
- density: 1300,
-},
- elements.auto_rocket_launcher_left = {
- color: "#C0C0C0",
- behavior: [
- "XX|XX|XX",
- "CR:left_rocket|XX|XX",
- "XX|XX|XX",
- ],
- category: "weapons",
- state: "solid",
- density: 1300,
-},
- elements.auto_rocket_launcher_right = {
- color: "#C0C0C0",
- behavior: [
- "XX|XX|XX",
- "XX|XX|CR:right_rocket",
- "XX|XX|XX",
- ],
- category: "weapons",
- state: "solid",
- density: 1300,
-},
-elements.left_rocket = {
- color: "#4c4e42",
- behavior: [
- "XX|XX|XX",
- "M1 AND EX:10|XX|XX",
- "XX|XX|XX",
- ],
- category:"ammunition",
-},
- elements.right_rocket = {
- color: "#4c4e42",
- behavior: [
- "XX|XX|XX",
- "XX|XX|M1 AND EX:10",
- "XX|XX|XX",
- ],
- category:"ammunition",
-},
- elements.e_rocket_launcher_left = {
- color: "#C0C0C0",
- behavior: behaviors.WALL,
- behaviorOn: [
- "XX|XX|XX",
- "CR:left_rocket|XX|XX",
- "XX|XX|XX",
- ],
- category: "weapons",
- state: "solid",
- conduct: 1,
- density: 1300,
-},
- elements.e_rocket_launcher_right = {
- color: "#C0C0C0",
- behavior: behaviors.WALL,
- behaviorOn: [
- "XX|XX|XX",
- "XX|XX|CR:right_rocket",
- "XX|XX|XX",
- ],
- category: "weapons",
- state: "solid",
- conduct: 1,
- density: 1300,
-},
-elements.gaster_blast_left = {
- color: "#c5e9f0",
- behavior: [
- "DL|DL|XX",
- "DL AND CR:gaster_blast_left%5|XX|XX",
- "DL|DL|XX",
- ],
- tick: function(pixel) {
- for (var i=0; i<3; i++) {
- if (!tryMove(pixel, pixel.x-2, pixel.y)) {
- if (!isEmpty(pixel.x-2, pixel.y,true)) {
- var newPixel = pixelMap[pixel.x-2][pixel.y];
- if (newPixel.element === "gaster_blast_left") { break; }
- if (elements[newPixel.element].state == "gas") {
- if (Math.random() > (elements[newPixel.element].hardness || 0)) {
- if (elements[newPixel.element].breakInto) {
- breakPixel(newPixel);
- }
- else {
- deletePixel(newPixel.x, newPixel.y);
- }}}}
- deletePixel(pixel.x,pixel.y);
- break;
- }}},
- category: "energy",
- state: "gas",
- insulate: true,
-},
-elements.gaster_blast_right = {
- color: "#c5e9f0",
- behavior: [
- "XX|DL|DL",
- "XX|XX|DL AND CR:gaster_blast_right%5",
- "XX|DL|DL",
- ],
- tick: function(pixel) {
- for (var i=0; i<3; i++) {
- if (!tryMove(pixel, pixel.x+2, pixel.y)) {
- if (!isEmpty(pixel.x+2, pixel.y,true)) {
- var newPixel = pixelMap[pixel.x+2][pixel.y];
- if (newPixel.element === "gaster_blast_right") { break; }
- if (elements[newPixel.element].state == "gas") {
- if (Math.random() > (elements[newPixel.element].hardness || 0)) {
- if (elements[newPixel.element].breakInto) {
- breakPixel(newPixel);
- }
- else {
- deletePixel(newPixel.x, newPixel.y);
- }}}}
- deletePixel(pixel.x,pixel.y);
- break;
- }}},
- category: "energy",
- state: "gas",
- insulate: true,
-},
- elements.gaster_blaster_left = {
- color: "#ffffff",
- behavior: behaviors.WALL,
- behaviorOn: [
- "XX|XX|XX",
- "CR:gaster_blast_left|XX|XX",
- "XX|XX|XX",
- ],
- category: "weapons",
- state: "solid",
- conduct: 20,
-},
- elements.gaster_blaster_right = {
- color: "#ffffff",
- behavior: behaviors.WALL,
- behaviorOn: [
- "XX|XX|XX",
- "XX|XX|CR:gaster_blast_right",
- "XX|XX|XX",
- ],
- category: "weapons",
- state: "solid",
- conduct: 20,
-},
-elements.fast_bullet_left = {
- color: "#4c4e42",
- behavior: [
- "XX|DL|XX",
- "XX|XX|XX",
- "XX|DL|XX",
- ],
-tick: function(pixel) {
- for (var i=0; i<3; i++) {
- if (!tryMove(pixel, pixel.x-3, pixel.y)) {
- if (!isEmpty(pixel.x-3, pixel.y,true)) {
- var newPixel = pixelMap[pixel.x-3][pixel.y];
- if (newPixel.element === "fast_bullet_left") { break; }
- if (elements[newPixel.element].state == "solid") {
- if (Math.random() > (elements[newPixel.element].hardness || 0)) {
- if (elements[newPixel.element].breakInto) {
- breakPixel(newPixel);
- }
- else {
- deletePixel(newPixel.x, newPixel.y);
- }}}}
- deletePixel(pixel.x,pixel.y);
- break;
- }}},
- category: "ammunition",
- state: "solid",
- insulate: true,
-},
-elements.fast_bullet_right = {
- color: "#4c4e42",
- behavior: [
- "XX|DL|XX",
- "XX|XX|XX",
- "XX|DL|XX",
- ],
- tick: function(pixel) {
- for (var i=0; i<3; i++) {
- if (!tryMove(pixel, pixel.x+3, pixel.y)) {
- if (!isEmpty(pixel.x+3, pixel.y,true)) {
- var newPixel = pixelMap[pixel.x+3][pixel.y];
- if (newPixel.element === "fast_bullet_right") { break; }
- if (elements[newPixel.element].state == "solid") {
- if (Math.random() > (elements[newPixel.element].hardness || 0)) {
- if (elements[newPixel.element].breakInto) {
- breakPixel(newPixel);
- }
- else {
- deletePixel(newPixel.x, newPixel.y);
- }}}}
- deletePixel(pixel.x,pixel.y);
- break;
- }}},
- category: "ammunition",
- state: "solid",
- insulate: true,
-},
-elements.flak_cannon = {
- color: "#C0C0C0",
- behavior: behaviors.WALL,
- behaviorOn: [
- "XX|CR:flak|XX",
- "XX|XX|XX",
- "XX|XX|XX",
- ],
- category: "weapons",
- state: "solid",
- density: 1300,
- conduct: 1,
-},
- elements.flak = {
- color: "#f0f0f0",
- tick: function(pixel) {
- if ((pixel.temp > 10 || pixel.charge) && !pixel.burning) {
- pixel.burning = true;
- pixel.burnStart = pixelTicks;
- }
- if (pixel.burning) {
- if (!tryMove(pixel, pixel.x, pixel.y-1)) {
- // tryMove again to the top left or top right
- tryMove(pixel, pixel.x+(Math.random() < 0.5 ? -1 : 1), pixel.y-1);
- }
- if (pixelTicks-pixel.burnStart > 50 && Math.random() < 0.005) {
- explodeAt(pixel.x, pixel.y, 10, "flak_shrapnel");
- }
- }
- else {
- if (!tryMove(pixel, pixel.x, pixel.y+1)) {
- // tryMove again to the bottom left or bottom right
- tryMove(pixel, pixel.x+(Math.random() < 0.5 ? -1 : 1), pixel.y+1);
- }
- }
- doDefaults(pixel);
- },
- burn: 90,
- burnTime: 100,
- density: 2000,
- conduct: 1,
- state: "solid",
- category: "ammunition"
-},
- elements.flak_shrapnel = {
- color: "#71797E",
- behavior: [
- "XX|XX|XX",
- "XX|EX:5 %10|XX",
- "M2|M1|M2",
- ],
- burn: 90,
- burnTime: 100,
- density: 2000,
- conduct: 1,
- state: "solid",
- category: "ammunition"
-},
-elements.fighter_jet_left = {
- color: "#bcc6cc",
- behavior: [
- "M1%0.2|M2%0.005 AND EX:5>metal_scrap|M2%0.005 AND EX:5>metal_scrap",
- "M1 AND CR:fast_bullet_left|XX|CR:smoke AND EX:5>metal_scrap",
- "M1%0.2|M2%0.005 AND EX:5>metal_scrap|M2%0.005 AND EX:5>metal_scrap",
- ],
-tick: function(pixel) {
- for (var i=0; i<2; i++) {
- if (!tryMove(pixel, pixel.x-1, pixel.y)) {
- if (!isEmpty(pixel.x-1, pixel.y,true)) {
- var newPixel = pixelMap[pixel.x-1][pixel.y];
- if (newPixel.element === "fast_bullet_left") { break; }
- if (elements[newPixel.element].state == "solid") {
- if (Math.random() > (elements[newPixel.element].hardness || 0)) {
- if (elements[newPixel.element].breakInto) {
- breakPixel(newPixel);
- }
- else {
- deletePixel(newPixel.x, newPixel.y);
- }}}}
- deletePixel(pixel.x,pixel.y);
- break;
- }}},
- category: "aircrafts",
- breakInto: "metal_scrap"
- },
-elements.fighter_jet_right = {
- color: "#bcc6cc",
- behavior: [
- "M2%0.005 AND EX:5>metal_scrap|M2%0.005 AND EX:5>metal_scrap|M1%0.2",
- "CR:smoke AND EX:5>metal_scrap|XX|M1 AND CR:fast_bullet_right",
- "M2%0.005 AND EX:5>metal_scrap|M2%0.005 AND EX:5>metal_scrap|M1%0.2",
- ],
-tick: function(pixel) {
- for (var i=0; i<2; i++) {
- if (!tryMove(pixel, pixel.x+1, pixel.y)) {
- if (!isEmpty(pixel.x+1, pixel.y,true)) {
- var newPixel = pixelMap[pixel.x+1][pixel.y];
- if (newPixel.element === "fast_bullet_right") { break; }
- if (elements[newPixel.element].state == "solid") {
- if (Math.random() > (elements[newPixel.element].hardness || 0)) {
- if (elements[newPixel.element].breakInto) {
- breakPixel(newPixel);
- }
- else {
- deletePixel(newPixel.x, newPixel.y);
- }}}}
- deletePixel(pixel.x,pixel.y);
- break;
- }}},
- category: "aircrafts",
- breakInto: "metal_scrap"
- }
\ No newline at end of file
From c66d61c366d323e603529638933a80ab736bc952 Mon Sep 17 00:00:00 2001
From: Jayd-Rubies <155784127+Jayd-Rubies@users.noreply.github.com>
Date: Wed, 6 Mar 2024 23:49:10 -0500
Subject: [PATCH 22/32] new mod
made a mistake with the previous commit
---
mods/aircrafts.js | 225 ++++++++++++++++++++++++++++++++++++++++++++++
mods/weapons.js | 72 +++++++++++++--
2 files changed, 288 insertions(+), 9 deletions(-)
create mode 100644 mods/aircrafts.js
diff --git a/mods/aircrafts.js b/mods/aircrafts.js
new file mode 100644
index 00000000..df5bb794
--- /dev/null
+++ b/mods/aircrafts.js
@@ -0,0 +1,225 @@
+//aircrafts
+elements.fast_bullet_left = {
+ color: "#4c4e42",
+ behavior: [
+ "XX|DL|XX",
+ "XX|XX|XX",
+ "XX|DL|XX",
+ ],
+tick: function(pixel) {
+ for (var i=0; i<3; i++) {
+ if (!tryMove(pixel, pixel.x-3, pixel.y)) {
+ if (!isEmpty(pixel.x-3, pixel.y,true)) {
+ var newPixel = pixelMap[pixel.x-3][pixel.y];
+ if (newPixel.element === "fast_bullet_left") { break; }
+ if (elements[newPixel.element].state == "solid") {
+ if (Math.random() > (elements[newPixel.element].hardness || 0)) {
+ if (elements[newPixel.element].breakInto) {
+ breakPixel(newPixel);
+ }
+ else {
+ deletePixel(newPixel.x, newPixel.y);
+ }}}}
+ deletePixel(pixel.x,pixel.y);
+ break;
+ }}},
+ category: "ammunition",
+ state: "solid",
+ insulate: true,
+},
+elements.fast_bullet_right = {
+ color: "#4c4e42",
+ behavior: [
+ "XX|DL|XX",
+ "XX|XX|XX",
+ "XX|DL|XX",
+ ],
+ tick: function(pixel) {
+ for (var i=0; i<3; i++) {
+ if (!tryMove(pixel, pixel.x+3, pixel.y)) {
+ if (!isEmpty(pixel.x+3, pixel.y,true)) {
+ var newPixel = pixelMap[pixel.x+3][pixel.y];
+ if (newPixel.element === "fast_bullet_right") { break; }
+ if (elements[newPixel.element].state == "solid") {
+ if (Math.random() > (elements[newPixel.element].hardness || 0)) {
+ if (elements[newPixel.element].breakInto) {
+ breakPixel(newPixel);
+ }
+ else {
+ deletePixel(newPixel.x, newPixel.y);
+ }}}}
+ deletePixel(pixel.x,pixel.y);
+ break;
+ }}},
+ category: "ammunition",
+ state: "solid",
+ insulate: true,
+},
+elements.flak_cannon = {
+ color: "#C0C0C0",
+ behavior: behaviors.WALL,
+ behaviorOn: [
+ "XX|CR:flak|XX",
+ "XX|XX|XX",
+ "XX|XX|XX",
+ ],
+ category: "weapons",
+ state: "solid",
+ density: 1300,
+ conduct: 1,
+},
+ elements.flak = {
+ color: "#f0f0f0",
+ tick: function(pixel) {
+ if ((pixel.temp > 10 || pixel.charge) && !pixel.burning) {
+ pixel.burning = true;
+ pixel.burnStart = pixelTicks;
+ }
+ if (pixel.burning) {
+ if (!tryMove(pixel, pixel.x, pixel.y-1)) {
+ // tryMove again to the top left or top right
+ tryMove(pixel, pixel.x+(Math.random() < 0.5 ? -1 : 1), pixel.y-1);
+ }
+ if (pixelTicks-pixel.burnStart > 50 && Math.random() < 0.005) {
+ explodeAt(pixel.x, pixel.y, 10, "flak_shrapnel");
+ }
+ }
+ else {
+ if (!tryMove(pixel, pixel.x, pixel.y+1)) {
+ // tryMove again to the bottom left or bottom right
+ tryMove(pixel, pixel.x+(Math.random() < 0.5 ? -1 : 1), pixel.y+1);
+ }
+ }
+ doDefaults(pixel);
+ },
+ burn: 90,
+ burnTime: 100,
+ density: 2000,
+ conduct: 1,
+ state: "solid",
+ category: "ammunition"
+},
+ elements.flak_shrapnel = {
+ color: "#71797E",
+ behavior: [
+ "XX|XX|XX",
+ "XX|EX:5 %10|XX",
+ "M2|M1|M2",
+ ],
+ burn: 90,
+ burnTime: 100,
+ density: 2000,
+ conduct: 1,
+ state: "solid",
+ category: "ammunition"
+},
+elements.fighter_jet_left = {
+ color: "#bcc6cc",
+ behavior: [
+ "M1%0.2|M2%0.005 AND EX:5>metal_scrap|M2%0.005 AND EX:5>metal_scrap",
+ "M1 AND CR:fast_bullet_left|XX|CR:smoke AND EX:5>metal_scrap",
+ "M1%0.2|M2%0.005 AND EX:5>metal_scrap|M2%0.005 AND EX:5>metal_scrap",
+ ],
+tick: function(pixel) {
+ for (var i=0; i<2; i++) {
+ if (!tryMove(pixel, pixel.x-1, pixel.y)) {
+ if (!isEmpty(pixel.x-1, pixel.y,true)) {
+ var newPixel = pixelMap[pixel.x-1][pixel.y];
+ if (newPixel.element === "fast_bullet_left") { break; }
+ if (elements[newPixel.element].state == "solid") {
+ if (Math.random() > (elements[newPixel.element].hardness || 0)) {
+ if (elements[newPixel.element].breakInto) {
+ breakPixel(newPixel);
+ }
+ else {
+ deletePixel(newPixel.x, newPixel.y);
+ }}}}
+ deletePixel(pixel.x,pixel.y);
+ break;
+ }}},
+ category: "aircrafts",
+ breakInto: "metal_scrap"
+ },
+elements.fighter_jet_right = {
+ color: "#bcc6cc",
+ behavior: [
+ "M2%0.005 AND EX:5>metal_scrap|M2%0.005 AND EX:5>metal_scrap|M1%0.2",
+ "CR:smoke AND EX:5>metal_scrap|XX|M1 AND CR:fast_bullet_right",
+ "M2%0.005 AND EX:5>metal_scrap|M2%0.005 AND EX:5>metal_scrap|M1%0.2",
+ ],
+tick: function(pixel) {
+ for (var i=0; i<2; i++) {
+ if (!tryMove(pixel, pixel.x+1, pixel.y)) {
+ if (!isEmpty(pixel.x+1, pixel.y,true)) {
+ var newPixel = pixelMap[pixel.x+1][pixel.y];
+ if (newPixel.element === "fast_bullet_right") { break; }
+ if (elements[newPixel.element].state == "solid") {
+ if (Math.random() > (elements[newPixel.element].hardness || 0)) {
+ if (elements[newPixel.element].breakInto) {
+ breakPixel(newPixel);
+ }
+ else {
+ deletePixel(newPixel.x, newPixel.y);
+ }}}}
+ deletePixel(pixel.x,pixel.y);
+ break;
+ }}},
+ category: "aircrafts",
+ breakInto: "metal_scrap"
+ },
+elements.airliner_left = {
+ color: "#fafafa",
+ category: "aircrafts",
+ behavior: [
+ "M1%3 AND EX:7>fire,fire,fire,metal_scrap|XX|XX",
+ "M1 AND EX:7>fire,fire,fire,metal_scrap|XX|XX",
+ "M1%3 AND EX:7>fire,fire,fire,metal_scrap|XX|CR:smoke%10",
+ ],
+ burnTime: 1000,
+ burn: 40,
+ burnInto: "metal_scrap",
+ breakInto: "metal_scrap",
+ conduct: 1
+},
+elements.airliner_right = {
+ color: "#fafafa",
+ category: "aircrafts",
+ behavior: [
+ "XX|XX|M1%3 AND EX:7>fire,fire,fire,metal_scrap",
+ "XX|XX|M1 AND EX:7>fire,fire,fire,metal_scrap",
+ "CR:smoke%10|XX|M1%3 AND EX:7>fire,fire,fire,metal_scrap",
+ ],
+ burnTime: 1000,
+ burn: 40,
+ burnInto: "metal_scrap",
+ breakInto: "metal_scrap",
+ conduct: 1
+},
+elements.bomber_left = {
+ color: "#fafafa",
+ category: "aircrafts",
+ behavior: [
+ "M1%3 AND EX:7>fire,fire,fire,metal_scrap|XX|XX",
+ "M1 AND EX:7>fire,fire,fire,metal_scrap|XX|XX",
+ "M1%3 AND EX:7>fire,fire,fire,metal_scrap|XX|CR:smoke%10 AND CR:bomb",
+ ],
+ burnTime: 1000,
+ burn: 40,
+ burnInto: "metal_scrap",
+ breakInto: "metal_scrap",
+ conduct: 1
+},
+elements.bomber_right = {
+ color: "#fafafa",
+ category: "aircrafts",
+ behavior: [
+ "XX|XX|M1%3 AND EX:7>fire,fire,fire,metal_scrap",
+ "XX|XX|M1 AND EX:7>fire,fire,fire,metal_scrap",
+ "CR:smoke%10 AND CR:bomb|XX|M1%3 AND EX:7>fire,fire,fire,metal_scrap",
+ ],
+ burnTime: 1000,
+ burn: 40,
+ burnInto: "metal_scrap",
+ breakInto: "metal_scrap",
+ conduct: 1
+}
\ No newline at end of file
diff --git a/mods/weapons.js b/mods/weapons.js
index 99831ad9..3eef74c2 100644
--- a/mods/weapons.js
+++ b/mods/weapons.js
@@ -345,11 +345,11 @@ elements.gaster_blast_right = {
elements.fast_bullet_left = {
color: "#4c4e42",
behavior: [
- "DL|DL|XX",
- "DL|XX|XX",
- "DL|DL|XX",
+ "XX|DL|XX",
+ "XX|XX|XX",
+ "XX|DL|XX",
],
- tick: function(pixel) {
+tick: function(pixel) {
for (var i=0; i<3; i++) {
if (!tryMove(pixel, pixel.x-3, pixel.y)) {
if (!isEmpty(pixel.x-3, pixel.y,true)) {
@@ -373,9 +373,9 @@ elements.fast_bullet_left = {
elements.fast_bullet_right = {
color: "#4c4e42",
behavior: [
- "XX|DL|DL",
- "XX|XX|DL",
- "XX|DL|DL",
+ "XX|DL|XX",
+ "XX|XX|XX",
+ "XX|DL|XX",
],
tick: function(pixel) {
for (var i=0; i<3; i++) {
@@ -414,7 +414,7 @@ elements.flak_cannon = {
elements.flak = {
color: "#f0f0f0",
tick: function(pixel) {
- if ((pixel.temp > 1000 || pixel.charge) && !pixel.burning) {
+ if ((pixel.temp > 10 || pixel.charge) && !pixel.burning) {
pixel.burning = true;
pixel.burnStart = pixelTicks;
}
@@ -455,4 +455,58 @@ elements.flak_cannon = {
conduct: 1,
state: "solid",
category: "ammunition"
-}
\ No newline at end of file
+},
+elements.fighter_jet_left = {
+ color: "#bcc6cc",
+ behavior: [
+ "M1%0.2|M2%0.005 AND EX:5>metal_scrap|M2%0.005 AND EX:5>metal_scrap",
+ "M1 AND CR:fast_bullet_left|XX|CR:smoke AND EX:5>metal_scrap",
+ "M1%0.2|M2%0.005 AND EX:5>metal_scrap|M2%0.005 AND EX:5>metal_scrap",
+ ],
+tick: function(pixel) {
+ for (var i=0; i<2; i++) {
+ if (!tryMove(pixel, pixel.x-1, pixel.y)) {
+ if (!isEmpty(pixel.x-1, pixel.y,true)) {
+ var newPixel = pixelMap[pixel.x-1][pixel.y];
+ if (newPixel.element === "fast_bullet_left") { break; }
+ if (elements[newPixel.element].state == "solid") {
+ if (Math.random() > (elements[newPixel.element].hardness || 0)) {
+ if (elements[newPixel.element].breakInto) {
+ breakPixel(newPixel);
+ }
+ else {
+ deletePixel(newPixel.x, newPixel.y);
+ }}}}
+ deletePixel(pixel.x,pixel.y);
+ break;
+ }}},
+ category: "aircrafts",
+ breakInto: "metal_scrap"
+ },
+elements.fighter_jet_right = {
+ color: "#bcc6cc",
+ behavior: [
+ "M2%0.005 AND EX:5>metal_scrap|M2%0.005 AND EX:5>metal_scrap|M1%0.2",
+ "CR:smoke AND EX:5>metal_scrap|XX|M1 AND CR:fast_bullet_right",
+ "M2%0.005 AND EX:5>metal_scrap|M2%0.005 AND EX:5>metal_scrap|M1%0.2",
+ ],
+tick: function(pixel) {
+ for (var i=0; i<2; i++) {
+ if (!tryMove(pixel, pixel.x+1, pixel.y)) {
+ if (!isEmpty(pixel.x+1, pixel.y,true)) {
+ var newPixel = pixelMap[pixel.x+1][pixel.y];
+ if (newPixel.element === "fast_bullet_right") { break; }
+ if (elements[newPixel.element].state == "solid") {
+ if (Math.random() > (elements[newPixel.element].hardness || 0)) {
+ if (elements[newPixel.element].breakInto) {
+ breakPixel(newPixel);
+ }
+ else {
+ deletePixel(newPixel.x, newPixel.y);
+ }}}}
+ deletePixel(pixel.x,pixel.y);
+ break;
+ }}},
+ category: "aircrafts",
+ breakInto: "metal_scrap"
+ }
\ No newline at end of file
From 683c020fff1cfb526af4402c7b94f84c98f0f8e5 Mon Sep 17 00:00:00 2001
From: SquareScreamYT <134925668+SquareScreamYT@users.noreply.github.com>
Date: Thu, 7 Mar 2024 13:19:04 +0800
Subject: [PATCH 23/32] fixe
---
mods/aChefsDream.js | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/mods/aChefsDream.js b/mods/aChefsDream.js
index d6011f9e..4ffcf5ea 100644
--- a/mods/aChefsDream.js
+++ b/mods/aChefsDream.js
@@ -5410,7 +5410,7 @@ elements.mochi = {
state: "solid",
density: 233.96,
isFood: true
-}
+},
elements.monosodium_glutamate = {
color: "#eeeeee",
behavior: behaviors.POWDER,
@@ -5426,5 +5426,5 @@ elements.monosodium_glutamate = {
tempHigh: 801,
state: "solid",
density: 2160,
- alias: ["msg","C5H8NNaO4"],
-}
+ alias: "msg",
+},
From 7bb26d0e42e5a0870da28cb00453e6e5ef1bf682 Mon Sep 17 00:00:00 2001
From: SquareScreamYT <134925668+SquareScreamYT@users.noreply.github.com>
Date: Thu, 7 Mar 2024 15:39:33 +0800
Subject: [PATCH 24/32] remove comma
---
mods/aChefsDream.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mods/aChefsDream.js b/mods/aChefsDream.js
index 4ffcf5ea..d39a6dcd 100644
--- a/mods/aChefsDream.js
+++ b/mods/aChefsDream.js
@@ -5427,4 +5427,4 @@ elements.monosodium_glutamate = {
state: "solid",
density: 2160,
alias: "msg",
-},
+}
From 962ed9b106913ffdc841a9b2755014131c6b615c Mon Sep 17 00:00:00 2001
From: SquareScreamYT <134925668+SquareScreamYT@users.noreply.github.com>
Date: Fri, 8 Mar 2024 20:05:19 +0800
Subject: [PATCH 25/32] seaweed
---
mods/aChefsDream.js | 136 ++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 132 insertions(+), 4 deletions(-)
diff --git a/mods/aChefsDream.js b/mods/aChefsDream.js
index d39a6dcd..986a7260 100644
--- a/mods/aChefsDream.js
+++ b/mods/aChefsDream.js
@@ -12,7 +12,7 @@ Upcoming Features:
- white rice noodles
- matcha leaves, powder, tea
- cacao pods
-- seaweed and agar (makes juice into jelly)
+- agar (makes juice into jelly)
- pigs, ham and bacon
- garlic
- stainless steel
@@ -292,6 +292,10 @@ Changelog (v1.9)
- added rice plants and rice panicles
- added rice seeds
- added msg
+ - added seaweed
+ - added dried seaweed
+ - added seaweed stem and seeds
+ - fix egg and noodle bug
@@ -475,10 +479,10 @@ elements.chicken_egg = {
density: 900,
conduct: 0.1,
reactions: {
- "water": { elem1:null, elem2:"hard_boiled_egg", chance:10, tempMin:80 }
+ "water": { elem2:null, elem1:"hard_boiled_egg", chance:10, tempMin:80 }
}
};
-
+elements.water.reactions.egg = { elem1:null, elem2:"hard_boiled_egg", chance:10, tempMin:80 }
elements.frozen_chicken_egg = {
color: ["#e0d3cf","#d9cdd3"],
behavior: behaviors.POWDER,
@@ -608,7 +612,7 @@ elements.noodles = {
};
if (!elements.batter.reactions) elements.batter.reactions = {};
-elements.batter.reactions.water = {elem2: "noodles", tempMin: 70}
+elements.batter.reactions.water = {elem1: "noodles", tempMin: 70}
elements.battered_raw_chicken = {
color: ["#eacfa9", "#ecd2af"],
@@ -5428,3 +5432,127 @@ elements.monosodium_glutamate = {
density: 2160,
alias: "msg",
}
+elements.seaweed_spore = {
+ color: "#291f13",
+ tick: function(pixel) {
+ pixel.age++;
+ if (isEmpty(pixel.x,pixel.y+1)) {
+ movePixel(pixel,pixel.x,pixel.y+1);
+ }
+ else if (!isEmpty(pixel.x,pixel.y+1)){
+ if (!outOfBounds(pixel.x,pixel.y+1)) {
+ if (pixelMap[pixel.x][pixel.y+1].element === "water"){
+ swapPixels(pixel,pixelMap[pixel.x][pixel.y+1])
+ }
+ }
+ }
+ if (!outOfBounds(pixel.x,pixel.y+1)) {
+ if (!isEmpty(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.rooted = true
+ }
+ }
+ }
+ if (Math.random() < 0.1 && pixel.age > 50 && pixel.temp < 100 && pixel.rooted == true) {
+ if(!isEmpty(pixel.x,pixel.y-1)){
+ if(pixelMap[pixel.x][pixel.y-1].element === "water"){
+ //swapPixels(pixel,pixelMap[pixel.x][pixel.y-1])
+ //changePixel("seaweed_stem",pixel.x,pixel.y+1)
+ deletePixel(pixel.x,pixel.y-1)
+ movePixel(pixel,pixel.x,pixel.y-1)
+ createPixel("seaweed_stem",pixel.x,pixel.y+1)
+ if (!isEmpty(pixel.x-1,pixel.y+1) && !isEmpty(pixel.x-1,pixel.y) && !isEmpty(pixel.x+1,pixel.y) && Math.random() < 0.5){
+ if (pixelMap[pixel.x-1][pixel.y].element === "water" && pixelMap[pixel.x+1][pixel.y].element === "water" && pixelMap[pixel.x-1][pixel.y+1].element != "seaweed") {
+ deletePixel(pixel.x-1,pixel.y)
+ createPixel("seaweed",pixel.x-1,pixel.y)
+ deletePixel(pixel.x+1,pixel.y)
+ createPixel("seaweed",pixel.x+1,pixel.y)
+ }
+ }
+ }
+ }
+ if (pixel.age > 500 || isEmpty(pixel.x,pixel.y-1)) {
+ changePixel(pixel,"seaweed");
+ }
+ }
+ doDefaults(pixel);
+ },
+ properties: {
+ "age":0,
+ "rooted":false,
+ },
+ tempHigh: 100,
+ stateHigh: "dead_plant",
+ tempLow: -2,
+ stateLow: "frozen_plant",
+ burn: 65,
+ burnTime: 15,
+ category: "life",
+ state: "solid",
+ density: 2500,
+ cooldown: defaultCooldown,
+ seed: true,
+ behavior: [
+ "XX|XX|XX",
+ "XX|XX|XX",
+ "XX|M1|XX",
+ ],
+};
+elements.seaweed_stem = {
+ color: "#35702c",
+ 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: "dried_seaweed",
+ tempLow: -1.66,
+ stateLow: "frozen_plant",
+ burn:15,
+ burnTime:60,
+ burnInto: "dead_plant",
+ state: "solid",
+ density: 1050,
+}
+elements.seaweed = {
+ color: "#2e8021",
+ 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:"food",
+ tempHigh: 100,
+ stateHigh: "dried_seaweed",
+ tempLow: -1.66,
+ stateLow: "frozen_plant",
+ burn:15,
+ burnTime:60,
+ burnInto: "dead_plant",
+ state: "solid",
+ density: 997,
+}
+elements.dried_seaweed = {
+ color: "#142e13",
+ behavior: behaviors.STURDYPOWDER,
+ category:"food",
+ tempHigh: 400,
+ stateHigh: "fire",
+ burn:15,
+ burnTime:60,
+ burnInto: "dead_plant",
+ state: "solid",
+ density: 1050,
+}
From 5d9f0e9301799adf17f7c2fbd64ec1bc7cee7836 Mon Sep 17 00:00:00 2001
From: SquareScreamYT <134925668+SquareScreamYT@users.noreply.github.com>
Date: Fri, 8 Mar 2024 20:15:10 +0800
Subject: [PATCH 26/32] seaweed color
---
mods/aChefsDream.js | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/mods/aChefsDream.js b/mods/aChefsDream.js
index 986a7260..01a7927f 100644
--- a/mods/aChefsDream.js
+++ b/mods/aChefsDream.js
@@ -5400,7 +5400,8 @@ elements.mochi_dough = {
burnInto:"ash",
state: "solid",
density: 526.9,
- isFood: true
+ isFood: true,
+ hidden:true
},
elements.mochi = {
color: "#f2e2a7",
@@ -5523,7 +5524,7 @@ elements.seaweed_stem = {
density: 1050,
}
elements.seaweed = {
- color: "#2e8021",
+ color: ["#2e8021","#3e9031","#4ea041"],
behavior: behaviors.STURDYPOWDER,
reactions: {
"vinegar": { elem1:"dead_plant", elem2:null, chance:0.035 },
From 371a5d82b03d88c9a7b4133f4e5ae2499e24e5a9 Mon Sep 17 00:00:00 2001
From: SquareScreamYT <134925668+SquareScreamYT@users.noreply.github.com>
Date: Fri, 8 Mar 2024 21:10:44 +0800
Subject: [PATCH 27/32] dried seaweed color
---
mods/aChefsDream.js | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/mods/aChefsDream.js b/mods/aChefsDream.js
index 01a7927f..41b76be5 100644
--- a/mods/aChefsDream.js
+++ b/mods/aChefsDream.js
@@ -33,6 +33,7 @@ Upcoming Features:
- curry/chicken tikka masala
- raisins
- peaches
+- cucumber and eggplant
Changelog (v1.0)
- added chickens
@@ -5546,7 +5547,7 @@ elements.seaweed = {
density: 997,
}
elements.dried_seaweed = {
- color: "#142e13",
+ color: ["#142e13","#041e03"],
behavior: behaviors.STURDYPOWDER,
category:"food",
tempHigh: 400,
From 9c77c1de5f5176505acfda09903d1382061639ab Mon Sep 17 00:00:00 2001
From: SquareScreamYT <134925668+SquareScreamYT@users.noreply.github.com>
Date: Fri, 8 Mar 2024 21:11:58 +0800
Subject: [PATCH 28/32] cucumbers and eggplants suggestion
---
mods/aChefsDream.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mods/aChefsDream.js b/mods/aChefsDream.js
index 41b76be5..e5c900cd 100644
--- a/mods/aChefsDream.js
+++ b/mods/aChefsDream.js
@@ -33,7 +33,7 @@ Upcoming Features:
- curry/chicken tikka masala
- raisins
- peaches
-- cucumber and eggplant
+- cucumbers and eggplants
Changelog (v1.0)
- added chickens
From 5a7417d591c1dfc6834bd1c20f1128e11a2062b3 Mon Sep 17 00:00:00 2001
From: SquareScreamYT <134925668+SquareScreamYT@users.noreply.github.com>
Date: Fri, 8 Mar 2024 21:12:50 +0800
Subject: [PATCH 29/32] support message
---
mods/aChefsDream.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mods/aChefsDream.js b/mods/aChefsDream.js
index e5c900cd..862bddd7 100644
--- a/mods/aChefsDream.js
+++ b/mods/aChefsDream.js
@@ -4,7 +4,7 @@ Thanks to Alice <@697799964985786450>, nousernamefound <@316383921346707468>, Ad
v1.9
-me trying to come up with stuff not in plants.js:
+you can support me at me youtube: https://youtube.com/@sqec
Upcoming Features:
- spring onions
From 22b009f7d29d002b4d1a9ea43f35faaadb2f3a82 Mon Sep 17 00:00:00 2001
From: SquareScreamYT <134925668+SquareScreamYT@users.noreply.github.com>
Date: Fri, 8 Mar 2024 21:13:21 +0800
Subject: [PATCH 30/32] error me -> my
---
mods/aChefsDream.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mods/aChefsDream.js b/mods/aChefsDream.js
index 862bddd7..f3e7179d 100644
--- a/mods/aChefsDream.js
+++ b/mods/aChefsDream.js
@@ -4,7 +4,7 @@ Thanks to Alice <@697799964985786450>, nousernamefound <@316383921346707468>, Ad
v1.9
-you can support me at me youtube: https://youtube.com/@sqec
+you can support me at my youtube: https://youtube.com/@sqec
Upcoming Features:
- spring onions
From 7f2c3d8858be237bd26a8a45a1d4f9e72693d756 Mon Sep 17 00:00:00 2001
From: SquareScreamYT <134925668+SquareScreamYT@users.noreply.github.com>
Date: Sat, 9 Mar 2024 10:48:51 +0800
Subject: [PATCH 31/32] element eraser
---
mods/elementEraser.js | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
create mode 100644 mods/elementEraser.js
diff --git a/mods/elementEraser.js b/mods/elementEraser.js
new file mode 100644
index 00000000..5505fa7a
--- /dev/null
+++ b/mods/elementEraser.js
@@ -0,0 +1,19 @@
+// made by SquareScreamYT/sqec
+
+let finalEraseElement = null;
+elements.element_eraser = {
+ color: "#eeeeee",
+ onSelect: function() {
+ var answer = prompt("Please input the element you wish to delete. It will not work if you enter multiple element types while paused.",(finalEraseElement||undefined));
+ if (!answer) { return }
+ finalEraseElement = mostSimilarElement(answer);
+ },
+ tool: function(pixel) {
+ if (pixel.element === finalEraseElement) {
+ deletePixel(pixel.x,pixel.y)
+ }
+ },
+ category: "tools",
+ excludeRandom: true,
+ desc: "Input a element to erase only that element."
+}
From 7144bbc0d749b58f32079fc6ef682f18a20efd45 Mon Sep 17 00:00:00 2001
From: SquareScreamYT <134925668+SquareScreamYT@users.noreply.github.com>
Date: Sat, 9 Mar 2024 10:51:14 +0800
Subject: [PATCH 32/32] mod lsit
---
mod-list.html | 1 +
1 file changed, 1 insertion(+)
diff --git a/mod-list.html b/mod-list.html
index daa35cfe..e4121d69 100644
--- a/mod-list.html
+++ b/mod-list.html
@@ -129,6 +129,7 @@
| delete_all_of_element.js | Adds a tool that deletes every pixel of the element(s) the user clicks on | Alice |
| descriptions.js | Adds descriptions to the info page and tooltips of elements | mollthecoder |
| editTools.js | Selections, Copying, Pasting, Cutting, Shapes, and more! | ggod |
+| elementEraser.js | Adds a tool that deletes only desired element | SquareScreamYT |
| elementsManager.js | Create and edit custom elements | ggod |
| evenmoretemptools.js | Adds different temperature-modifying tools (±350/tick, NaN, and Infinity) | Alice |
| extra_element_info.js | Adds descriptions to various vanilla elements. Used to provide the functionality that desc now does before it was added to vanilla | Melecie |