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.jsAdds a liquid form of clonerAlice conveyance.jsConveyors, operated with and without electricityMelecie +fine_tuned_cloner.jsAdds a cloner that can spawn at different rates and prevent unwated cloningBatteRaquette58 flipflop.jsToggleable switches; ExplanationFlix gameOfLife.jsConway's Game of Life on a screenggod logicgates.jsAdds predictable electricity and logic gatesnousernamefound 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.jsAdds a tool that deletes every pixel of the element(s) the user clicks onAlice descriptions.jsAdds descriptions to the info page and tooltips of elementsmollthecoder editTools.jsSelections, Copying, Pasting, Cutting, Shapes, and more!ggod +elementEraser.jsAdds a tool that deletes only desired elementSquareScreamYT elementsManager.jsCreate and edit custom elementsggod evenmoretemptools.jsAdds different temperature-modifying tools (±350/tick, NaN, and Infinity)Alice extra_element_info.jsAdds descriptions to various vanilla elements. Used to provide the functionality that desc now does before it was added to vanillaMelecie