From f2d2ec023345183dc4c06ac0523cc59dc9dd5a2e Mon Sep 17 00:00:00 2001 From: guzzo86 <126430018+guzzo86@users.noreply.github.com> Date: Tue, 30 Apr 2024 01:06:44 -0400 Subject: [PATCH 01/38] Update mod-list.html --- mod-list.html | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mod-list.html b/mod-list.html index fed60b74..f454de11 100644 --- a/mod-list.html +++ b/mod-list.html @@ -225,18 +225,19 @@ Food & Cooking aChefsDream.jsAdds more foods, animals, tools and many other cooking related items. Updates can be found in this YouTube PlaylistSquareScreamYT aChefsDream_beta.jsBeta testing for aChefsDream. The code can be found on GitHubSquareScreamYT -bananas.jsAdds bananas and banana plantsAlice +bananas.jsAdds bananas and banana plantsAlice' +CherrySoda.jsAdds materials to make Cherry soda. Benzaldehyde + seltzer = Cherrysoda.guzzo86 community_desserts.jsAdds various desserts from community suggestionsTisquares +GrapeSoda.jsAdds materials to make Grape soda. Methylanthranilate + seltzer = Grapesoda.guzzo86 greenitemsandmore.jsAdds various green things, including apples and more foodzonneschijn7 ketchup_mod.jsAdds a bunch of ketchup related stuff, plus a few other condimentsNubo318 (main dev), Devi, Alice (contributors) lemonade.jsAdds lemons and lemonadepersonman / baconthemyth morefoodsmod.jsAdds more foodsClide4 pizzasstuff.jsNew animals, foods, and plants_ilikepizza_ +potato_chips.jsPotato chips.guzzo86 sbstuff.jsAdds many foodsstefanblox soups.jsAdds seasoning and souppixelegend4 weAllScreamFor.jsAdds ice cream toppingsrottenEgghead -CherrySoda.jsAdds materials to make Cherry soda. Benzaldehyde + seltzer = Cherrysoda.guzzo86 -GrapeSoda.jsAdds materials to make Grape soda. Methylanthranilate + seltzer = Grapesoda.guzzo86 Life & Nature advanced_colonies.jsAdds davlers, creatures with complex coloniesDaviStudios From 63c011b3916932a23b87599c878e48c01c2f0289 Mon Sep 17 00:00:00 2001 From: guzzo86 <126430018+guzzo86@users.noreply.github.com> Date: Tue, 30 Apr 2024 01:08:05 -0400 Subject: [PATCH 02/38] Create potato_chips.js --- mods/potato_chips.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/potato_chips.js b/mods/potato_chips.js index e0de48f1..816ad59b 100644 --- a/mods/potato_chips.js +++ b/mods/potato_chips.js @@ -4,7 +4,7 @@ elements.potato_chip = { density: 1350, color: ["#F7DD93", "#D8A44B"], category: "food", - desc: "Potato chip. Turns potato next to it into potato chip if temp is >= 104.", + desc: "Potato chip. Turns potato next to it into potato chip if temp is >= 104 - 180.", tick: function(pixel) { if(pixelTicks - pixel.start >= 15) { From 4af97a7201f158edaf92c8f5146cf7c2099f39cd Mon Sep 17 00:00:00 2001 From: guzzo86 <126430018+guzzo86@users.noreply.github.com> Date: Tue, 30 Apr 2024 01:14:55 -0400 Subject: [PATCH 03/38] Update CherrySoda.js --- mods/CherrySoda.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/CherrySoda.js b/mods/CherrySoda.js index 98475765..2561b7e7 100644 --- a/mods/CherrySoda.js +++ b/mods/CherrySoda.js @@ -65,7 +65,7 @@ elements.cherrysoda_gas = { temp: 169, } elements.cherrysoda_ice = { - color: "BF4F9C", + color: "#BF4F9C", behavior: behaviors.wALL, category: "solids", state: "solid", From 329b7f61f8de86724869b065dd988394db88fc39 Mon Sep 17 00:00:00 2001 From: guzzo86 <126430018+guzzo86@users.noreply.github.com> Date: Tue, 30 Apr 2024 16:52:44 -0400 Subject: [PATCH 04/38] Update GrapeSoda.js --- mods/GrapeSoda.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mods/GrapeSoda.js b/mods/GrapeSoda.js index 5716aeac..1d67b1db 100644 --- a/mods/GrapeSoda.js +++ b/mods/GrapeSoda.js @@ -45,7 +45,6 @@ elements.anthranilicacid = { tempLow: -98, burn: 100, burnTime: 100, - burnInto: "carbondioxide" } elements.methanolice = { @@ -68,6 +67,8 @@ elements.anthranilicacid = { stateLow: "methanol", tempLow: 64, temp: 84, + burn: 100, + burnTime: 100, } elements.methylanthranilate = { color: "#FFFBBA", From 403ebbb15cfbdc24ee1092b5f2819f5890458b62 Mon Sep 17 00:00:00 2001 From: guzzo86 <126430018+guzzo86@users.noreply.github.com> Date: Tue, 30 Apr 2024 18:16:36 -0400 Subject: [PATCH 05/38] Create customtemptools.js --- mods/customtemptools.js | 50 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 mods/customtemptools.js diff --git a/mods/customtemptools.js b/mods/customtemptools.js new file mode 100644 index 00000000..00dbcb8f --- /dev/null +++ b/mods/customtemptools.js @@ -0,0 +1,50 @@ +var ct = 100 + +elements.customtemp = { + color: ["#FF0000", "#FF6600", "#FFCC00", "#FFFF00", "#CCFF00", "#66FF00", "#00FF00", "#00FF66", "#00FFCC", "#00FFFF"], + onSelect: function() { + var answer4 = parseInt(prompt("Please input the desired temperature to reach.",(ct||undefined))); + if (!answer4) { return } + ct = answer4; + if (isNaN(answer4)) { + ct = 100 + } + }, + tool: function(pixel) { + pixel.temp = ct, + pixelTempCheck(pixel) + }, + category: "tools", +}; +elements.customheat = { + color: ["#FF0000", "#FFFFFF", "#FF0000"], + onSelect: function() { + var answer4 = parseInt(prompt("Please input the desired temperature increase per tick. (In celsius)",(ct|undefined))); + if (!answer4) { return } + ct = answer4; + if (isNaN(answer4)) { + ct = 100 + } + }, + tool: function(pixel) { + pixel.temp = pixel.temp + ct, + pixelTempCheck(pixel) + }, + category: "tools", +}; +elements.customcool = { + color: ["#0000FF", "#FFFFFF", "#0000FF"], + onSelect: function() { + var answer4 = parseInt(prompt("Please input the desired temperature decrease per tick. (In celsius)",(cc|undefined))); + if (!answer4) { return } + ct = answer4; + if (isNaN(answer4)) { + ct = 100 + } + }, + tool: function(pixel) { + pixel.temp = pixel.temp - ct, + pixelTempCheck(pixel) + }, + category: "tools", +}; From 6b6290401d3ae69dc2f03b4c0dc657f0c20f0b83 Mon Sep 17 00:00:00 2001 From: guzzo86 <126430018+guzzo86@users.noreply.github.com> Date: Tue, 30 Apr 2024 18:18:15 -0400 Subject: [PATCH 06/38] Update mod-list.html --- mod-list.html | 1 + 1 file changed, 1 insertion(+) diff --git a/mod-list.html b/mod-list.html index f454de11..41780ac0 100644 --- a/mod-list.html +++ b/mod-list.html @@ -127,6 +127,7 @@ color_tools.jsAdds tools that manipulate colorsAlice controllable_pixel_test.jsAdds a pixel that can be controlled with the keyboard keys. Read the commit description for more info. [PC ONLY]Alice cpt_alt.jsAdds a more destructive variant of the controllable pixelAlice +customtemptools.jsAdds custom input temp tools.guzzo86 debugRework.jsRevamps the Debug toolFioushemastor 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 From 5b381748f7724891162a18555236d0840f2b0c97 Mon Sep 17 00:00:00 2001 From: guzzo86 <126430018+guzzo86@users.noreply.github.com> Date: Tue, 30 Apr 2024 18:25:44 -0400 Subject: [PATCH 07/38] Update customtemptools.js --- mods/customtemptools.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mods/customtemptools.js b/mods/customtemptools.js index 00dbcb8f..62c8b239 100644 --- a/mods/customtemptools.js +++ b/mods/customtemptools.js @@ -19,7 +19,7 @@ elements.customtemp = { elements.customheat = { color: ["#FF0000", "#FFFFFF", "#FF0000"], onSelect: function() { - var answer4 = parseInt(prompt("Please input the desired temperature increase per tick. (In celsius)",(ct|undefined))); + var answer4 = parseInt(prompt("Please input the desired temperature increase per tick. (In celsius)",(ct||undefined))); if (!answer4) { return } ct = answer4; if (isNaN(answer4)) { @@ -35,7 +35,7 @@ elements.customheat = { elements.customcool = { color: ["#0000FF", "#FFFFFF", "#0000FF"], onSelect: function() { - var answer4 = parseInt(prompt("Please input the desired temperature decrease per tick. (In celsius)",(cc|undefined))); + var answer4 = parseInt(prompt("Please input the desired temperature decrease per tick. (In celsius)",(ct||undefined))); if (!answer4) { return } ct = answer4; if (isNaN(answer4)) { From 165053097161e67de3d8f10adce0ddeacc4e0bfb Mon Sep 17 00:00:00 2001 From: guzzo86 <126430018+guzzo86@users.noreply.github.com> Date: Tue, 30 Apr 2024 18:28:17 -0400 Subject: [PATCH 08/38] Update potato_chips.js --- mods/potato_chips.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/potato_chips.js b/mods/potato_chips.js index 816ad59b..c1beeb75 100644 --- a/mods/potato_chips.js +++ b/mods/potato_chips.js @@ -7,7 +7,7 @@ elements.potato_chip = { desc: "Potato chip. Turns potato next to it into potato chip if temp is >= 104 - 180.", tick: function(pixel) { - if(pixelTicks - pixel.start >= 15) { + if(pixelTicks - pixel.start >= 10) { if (!isEmpty(pixel.x, pixel.y - 1, true)) { if (pixel.temp >= 104 && pixelMap[pixel.x][pixel.y - 1].element === "potato") { changePixel(pixelMap[pixel.x][pixel.y - 1], "potato_chip"); From efe36412dce9862360c2b184f752ab0ea500b8f3 Mon Sep 17 00:00:00 2001 From: guzzo86 <126430018+guzzo86@users.noreply.github.com> Date: Thu, 2 May 2024 21:45:40 -0400 Subject: [PATCH 09/38] Update mod-list.html --- mod-list.html | 1 + 1 file changed, 1 insertion(+) diff --git a/mod-list.html b/mod-list.html index 41780ac0..c6a76044 100644 --- a/mod-list.html +++ b/mod-list.html @@ -199,6 +199,7 @@ 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 +fuel_generators.jsAdds diesel and gasoline powered generatorsguzzo86, nousernamefound/td> logicgates.jsAdds predictable electricity and logic gatesnousernamefound note_block.jsAdds musical Note BlocksAlice nousersthings.jsDestroyable machines, pipe variants, filters, and morenousernamefound From 6c89141f7b2d580ee91a79c065b77316fc41bc80 Mon Sep 17 00:00:00 2001 From: guzzo86 <126430018+guzzo86@users.noreply.github.com> Date: Fri, 3 May 2024 07:31:58 -0400 Subject: [PATCH 10/38] Update mod-list.html --- mod-list.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod-list.html b/mod-list.html index c6a76044..81b7e719 100644 --- a/mod-list.html +++ b/mod-list.html @@ -199,7 +199,7 @@ 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 -fuel_generators.jsAdds diesel and gasoline powered generatorsguzzo86, nousernamefound/td> +fuel_generators.jsAdds diesel and gasoline powered generatorsguzzo86 logicgates.jsAdds predictable electricity and logic gatesnousernamefound note_block.jsAdds musical Note BlocksAlice nousersthings.jsDestroyable machines, pipe variants, filters, and morenousernamefound From 1f5a8d1c008e5c18df3d9c87972169e998a23f39 Mon Sep 17 00:00:00 2001 From: DoobieRalsei <163950752+DoobieRalsei@users.noreply.github.com> Date: Fri, 3 May 2024 13:56:38 -0700 Subject: [PATCH 11/38] Updates scp.js --- mods/scp.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/scp.js b/mods/scp.js index a6eb71dc..4792e6f4 100644 --- a/mods/scp.js +++ b/mods/scp.js @@ -428,7 +428,7 @@ elements.plague_doctor = { createPixel("doc_head", pixel.x, pixel.y-1); pixelMap[pixel.x][pixel.y-1].color = pixel.color; pixel.element = "doc_body"; - pixelMap[pixel.x][pixel.y].color = ["#11111f","#242424"]; + pixel.color = pixelColorPick(pixel) } else { deletePixel(pixel.x, pixel.y); From f4b3b5d26cfb4ca450b5760607bea04d58e8a1d8 Mon Sep 17 00:00:00 2001 From: CarbonMonoxida <164758530+CarbonMonoxida@users.noreply.github.com> Date: Sat, 4 May 2024 19:26:37 +0700 Subject: [PATCH 12/38] Update mod-list.html change aScientistsWish main Programmer from CPU into Sobble --- mod-list.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod-list.html b/mod-list.html index fed60b74..93a4b128 100644 --- a/mod-list.html +++ b/mod-list.html @@ -156,7 +156,7 @@ Science & Chemistry alcohol.jsAdds methanol, (iso-)propanol, and butanolAlice alkahest.jsAdds the alkahest, a liquid which dissolves anythingAlice -aScientistsWish.jsAdds things that related to science, especially radiationCarbon Monoxide, CPU +aScientistsWish.jsAdds things that related to science, especially radiationCarbon Monoxide, Sobble bettermetalscrap.jsAllows metal scrap to be melted back into its original materialnousernamefound bigger_star_spawners.jsAdds spawners for larger starsAlice bioooze_and_pyrogens.jsAdds Bio-Ooze from Frackin’ Universe and several heat-producing materials from various games’ modsAlice From b38b85ead8fcdd1e3b12e1506d9cae0a61293494 Mon Sep 17 00:00:00 2001 From: ludus530 <163735402+ludus530@users.noreply.github.com> Date: Sun, 5 May 2024 09:35:22 +0200 Subject: [PATCH 13/38] cash_n_more.js adds cash and paper --- mods/cash_n_more.js | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 mods/cash_n_more.js diff --git a/mods/cash_n_more.js b/mods/cash_n_more.js new file mode 100644 index 00000000..ffe5dd21 --- /dev/null +++ b/mods/cash_n_more.js @@ -0,0 +1,37 @@ +elements.cash = { + color: "#00e600", + behavior: behaviors.POWDER, + category: "powders", +}; + +elements.paper = { + color: "#ffffff", + behavior: behaviors.SOLID, + category: "solids", +}; + +elements.shredded_paper = { + color: "#ffffff", + behavior: behaviors.POWDER, + category: "powders", +}; + +elements.shredded_cash = { + color: "#004d00", + behavior: behaviors.POWDER, + category: "powders", +}; + +elements.shredder = { + color: "#08b508", + behavior: behaviors.SOLID, + tool: function(pixel) { + if (pixel.element == "cash") { + pixel.element = "shredded_cash" + }, + if (pixel.element == "paper") { + pixel.element = "shredded_money" + } + }, + category: "tools", +}; From a3adf44dbe36fb6b4e3a1b744f5f5407d27a776d Mon Sep 17 00:00:00 2001 From: ludus530 <163735402+ludus530@users.noreply.github.com> Date: Sun, 5 May 2024 12:57:30 +0200 Subject: [PATCH 14/38] cash_n_more.js added sponges --- mods/cash_n_more.js | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/mods/cash_n_more.js b/mods/cash_n_more.js index ffe5dd21..e267a8f7 100644 --- a/mods/cash_n_more.js +++ b/mods/cash_n_more.js @@ -4,6 +4,27 @@ elements.cash = { category: "powders", }; +delete elements.paper; +delete elements.sponge; + +elements.sponge = { + color: "#ffff1a", + behavior: behaviors.SOLID, + category: "solids", + tool: function(pixel) { + if (pixel.element == "water") { + pixel.element = "wet_sponge" + } + }, +}; + +elements.wet_sponge = { + color: "#cccc00", + behavior: behaviors.SOLID, + category: "solids", +}; + + elements.paper = { color: "#ffffff", behavior: behaviors.SOLID, From e3709bfc09c439423dfd2a823084a76fdaf450a3 Mon Sep 17 00:00:00 2001 From: GGod <46885632+GGodPL@users.noreply.github.com> Date: Sun, 5 May 2024 22:05:28 +0200 Subject: [PATCH 15/38] Create colorLED.js --- mods/colorLED.js | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 mods/colorLED.js diff --git a/mods/colorLED.js b/mods/colorLED.js new file mode 100644 index 00000000..ec3a4622 --- /dev/null +++ b/mods/colorLED.js @@ -0,0 +1,38 @@ +elements.led = { + behavior: behaviors.WALL, + reactions: { + "light": {"charge1":1}, + "liquid_light": {"charge1":1}, + }, + color: "#666666", + colorOn: "#ffffff", + category: "machines", + tempHigh: 1500, + stateHigh: ["molten_glass","molten_glass","molten_glass","molten_gallium"], + conduct: 1, + breakInto: "glass_shard", + tick: (pixel) => { + if (pixel.start == pixelTicks) { + pixel.normalColor = pixel.color; + pixel.chargeColor = `rgb(${pixel.color.replace(/[rgb\(\)]/g, "").split(",").map(a => parseInt(a.trim()) + 120).join(", ")})`; + } + if (pixel.color != pixel.normalColor && !pixel.charge && !pixel.chargeCD) { + pixel.normalColor = pixel.color; + pixel.chargeColor = `rgb(${pixel.color.replace(/[rgb\(\)]/g, "").split(",").map(a => parseInt(a.trim()) + 120).join(", ")})`; + } + if (pixel.charge) { + pixel.color = pixel.chargeColor; + } else { + pixel.color = pixel.normalColor; + } + } +} + +pixelColorPick = (function() { + const oldPixelColorPick = pixelColorPick; + + return function(pixel, customColor = null) { + if (pixel.element == "led" && pixel.color && !customColor) return pixel.color; + return oldPixelColorPick.apply(this, arguments); + } +})() \ No newline at end of file From 10f3ba326b2499005b23bbe5326396319daccf9c Mon Sep 17 00:00:00 2001 From: guzzo86 <126430018+guzzo86@users.noreply.github.com> Date: Sun, 5 May 2024 19:31:58 -0400 Subject: [PATCH 16/38] Create colored_lightbulbs.js --- mods/colored_lightbulbs.js | 44 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 mods/colored_lightbulbs.js diff --git a/mods/colored_lightbulbs.js b/mods/colored_lightbulbs.js new file mode 100644 index 00000000..84f8ad85 --- /dev/null +++ b/mods/colored_lightbulbs.js @@ -0,0 +1,44 @@ +elements.colored_light_bulb = { + color: "#666666", + colorOn: "#ffffff", + behavior: behaviors.WALL, + category: "machines", + tempHigh: 1500, + stateHigh: ["molten_glass","molten_glass","molten_copper"], + conduct: 1, + breakInto: "glass_shard", + tick: function(pixel) { + if (pixel.start == pixelTicks) { + pixel.normalColor = pixel.color; + pixel.chargeColor = `rgb(${pixel.color.replace(/[rgb\(\)]/g, "").split(",").map(a => parseInt(a.trim()) + 150).join(", ")})`; + } + if (pixel.color != pixel.normalColor && !pixel.charge && !pixel.chargeCD) { + pixel.normalColor = pixel.color; + pixel.chargeColor = `rgb(${pixel.color.replace(/[rgb\(\)]/g, "").split(",").map(a => parseInt(a.trim()) + 150).join(", ")})`; + } + if (pixel.charge) { + pixel.color = pixel.chargeColor; + } else { + pixel.color = pixel.normalColor; + } + if (pixel.charge > 0) { + for (let i = 0; i < adjacentCoords.length; i++){ + let coord = adjacentCoords[i] + let x = coord[0]+pixel.x + let y = coord[1]+pixel.y + if (isEmpty(x, y)){ + //do crap to the pixel + createPixel("light", x, y,), + pixelMap[x][y].color = pixel.chargeColor + } + } + }} +} +pixelColorPick = (function() { + const oldPixelColorPick = pixelColorPick; + + return function(pixel, customColor = null) { + if (pixel.element == "colored_light_bulb" && pixel.color && !customColor) return pixel.color; + return oldPixelColorPick.apply(this, arguments); + } +})() From ac25c2051d4dfac3641459fb1732d67e259c4a75 Mon Sep 17 00:00:00 2001 From: slweeb <91897291+slweeb@users.noreply.github.com> Date: Sun, 5 May 2024 19:33:22 -0400 Subject: [PATCH 17/38] fixed inconsistency --- mod-list.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod-list.html b/mod-list.html index 93a4b128..a06fed4d 100644 --- a/mod-list.html +++ b/mod-list.html @@ -156,7 +156,7 @@ Science & Chemistry alcohol.jsAdds methanol, (iso-)propanol, and butanolAlice alkahest.jsAdds the alkahest, a liquid which dissolves anythingAlice -aScientistsWish.jsAdds things that related to science, especially radiationCarbon Monoxide, Sobble +aScientistsWish.jsAdds things that related to science, especially radiationCarbon Monoxide, salmonfishy bettermetalscrap.jsAllows metal scrap to be melted back into its original materialnousernamefound bigger_star_spawners.jsAdds spawners for larger starsAlice bioooze_and_pyrogens.jsAdds Bio-Ooze from Frackin’ Universe and several heat-producing materials from various games’ modsAlice From d6796c7ea6d1562d4228b40c14869221ae533bcd Mon Sep 17 00:00:00 2001 From: guzzo86 <126430018+guzzo86@users.noreply.github.com> Date: Sun, 5 May 2024 19:33:38 -0400 Subject: [PATCH 18/38] Update mod-list.html --- mod-list.html | 1 + 1 file changed, 1 insertion(+) diff --git a/mod-list.html b/mod-list.html index 81b7e719..e273ce68 100644 --- a/mod-list.html +++ b/mod-list.html @@ -203,6 +203,7 @@ logicgates.jsAdds predictable electricity and logic gatesnousernamefound note_block.jsAdds musical Note BlocksAlice nousersthings.jsDestroyable machines, pipe variants, filters, and morenousernamefound +colored_lightbulbs.jsAdds a light bulb that can be painted.guzzo86, ggod portal.jsAdds portals that can teleport pixelsAlice pullers.jsAdds pixels that pull pixels towards themvoidapex11 pushers.jsAdds pixels that push elements away from themAlice From 32f8ac5d896bc4722248f212df5810123d943d1d Mon Sep 17 00:00:00 2001 From: slweeb <91897291+slweeb@users.noreply.github.com> Date: Sun, 5 May 2024 19:39:20 -0400 Subject: [PATCH 19/38] Update mod-list.html --- mod-list.html | 4 ---- 1 file changed, 4 deletions(-) diff --git a/mod-list.html b/mod-list.html index 07d08604..fe276e5f 100644 --- a/mod-list.html +++ b/mod-list.html @@ -127,7 +127,6 @@ color_tools.jsAdds tools that manipulate colorsAlice controllable_pixel_test.jsAdds a pixel that can be controlled with the keyboard keys. Read the commit description for more info. [PC ONLY]Alice cpt_alt.jsAdds a more destructive variant of the controllable pixelAlice -customtemptools.jsAdds custom input temp tools.guzzo86 debugRework.jsRevamps the Debug toolFioushemastor 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 @@ -199,11 +198,9 @@ 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 -fuel_generators.jsAdds diesel and gasoline powered generatorsguzzo86 logicgates.jsAdds predictable electricity and logic gatesnousernamefound note_block.jsAdds musical Note BlocksAlice nousersthings.jsDestroyable machines, pipe variants, filters, and morenousernamefound -colored_lightbulbs.jsAdds a light bulb that can be painted.guzzo86, ggod portal.jsAdds portals that can teleport pixelsAlice pullers.jsAdds pixels that pull pixels towards themvoidapex11 pushers.jsAdds pixels that push elements away from themAlice @@ -231,7 +228,6 @@ bananas.jsAdds bananas and banana plantsAlice' CherrySoda.jsAdds materials to make Cherry soda. Benzaldehyde + seltzer = Cherrysoda.guzzo86 community_desserts.jsAdds various desserts from community suggestionsTisquares -GrapeSoda.jsAdds materials to make Grape soda. Methylanthranilate + seltzer = Grapesoda.guzzo86 greenitemsandmore.jsAdds various green things, including apples and more foodzonneschijn7 ketchup_mod.jsAdds a bunch of ketchup related stuff, plus a few other condimentsNubo318 (main dev), Devi, Alice (contributors) lemonade.jsAdds lemons and lemonadepersonman / baconthemyth From e846c8e9b202678b3679aa9953654b5f6210bb3d Mon Sep 17 00:00:00 2001 From: DoobieRalsei <163950752+DoobieRalsei@users.noreply.github.com> Date: Mon, 6 May 2024 10:42:02 -0700 Subject: [PATCH 20/38] 008 can infect meat Gave SCP 008 ability to infect meat. --- mods/scp.js | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 69 insertions(+), 1 deletion(-) diff --git a/mods/scp.js b/mods/scp.js index 4792e6f4..6dbaa773 100644 --- a/mods/scp.js +++ b/mods/scp.js @@ -6,6 +6,14 @@ window.addEventListener("load", () => { document.getElementById("elementButton-mask_body")?.remove() }) +window.addEventListener("load", () => { + document.getElementById("elementButton-008_meat")?.remove() +}) + +window.addEventListener("load", () => { + document.getElementById("elementButton-frozen_008_meat")?.remove() +}) + window.addEventListener("load", () => { document.getElementById("elementButton-zombie")?.remove() }) @@ -57,6 +65,9 @@ elements.SCP_008 = { reactions: { "head": { elem1:null, elem2:"z_head" , chance:0.5 }, "body": { elem1:null, elem2:"z_body" , chance:0.5 }, + "meat": { elem1:null, elem2:"008_meat" , chance:0.4 }, + "rotten_meat": { elem1:null, elem2:"008_meat" , chance:0.5 }, + "frozen_meat": { elem1:null, elem2:"frozen_008_meat" , chance:0.3 }, "frog": { elem2:"SCP_008" , chance:0.5 }, "ant": { elem2:"SCP_008" , chance:0.5 }, "bee": { elem2:"SCP_008" , chance:0.5 }, @@ -66,7 +77,7 @@ elements.SCP_008 = { "liquid_chlorine": { elem1: [null,null,null,null,"anomalous_essence"] , chance:0.01 }, "light": { elem1: [null,null,null,null,"anomalous_essence"] , chance:0.01 }, }, - tempHigh: 1000, + tempHigh: 750, stateHigh: [null,null,null,null,"anomalous_essence"], tempLow: -100, stateLow: "frozen_008", @@ -85,6 +96,9 @@ elements.frozen_008 = { reactions: { "head": { elem1:null, elem2:"z_head" , chance:0.4 }, "body": { elem1:null, elem2:"z_body" , chance:0.4 }, + "meat": { elem1:null, elem2:"frozen_008_meat" , chance:0.4 }, + "rotten_meat": { elem1:null, elem2:"frozen_008_meat" , chance:0.5 }, + "frozen_meat": { elem1:null, elem2:"frozen_008_meat" , chance:0.4 }, "chlorine": { elem1: [null,null,null,null,"anomalous_essence"] , chance:0.01 }, "liquid_chlorine": { elem1: [null,null,null,null,"anomalous_essence"] , chance:0.01 }, "light": { elem1: [null,null,null,null,"anomalous_essence"] , chance:0.01 }, @@ -97,6 +111,60 @@ elements.frozen_008 = { density: 95, }, +elements.008_meat = { + color: ["#b8b165","#b89765"], + behavior: [ + "XX|CR:plague,stench,stench,SCP_008,fly%0.25 AND CH:rotten_meat,meat>008_meat%1|XX", + "SP%99 AND CH:rotten_meat,meat>008_meat%1|XX|SP%99 AND CH:rotten_meat,meat>008_meat%1", + "XX|M1 AND CH:rotten_meat,meat>008_meat%1|XX", + ], + reactions: { + "water": { elem2:"dirty_water" }, + "salt_water": { elem2:"dirty_water" }, + "sugar_water": { elem2:"dirty_water" }, + "dirty_water": { elem2:"broth", tempMin:70, color2:"#d7db69" }, + "seltzer": { elem2:"dirty_water" }, + "fly": { elem1: [null,null,"SCP_008"] , elem2: ["dead_bug","dead_bug","SCP_008"] , chance:0.2}, + }, + tempHigh: 300, + stateHigh: ["SCP_008","ash","ammonia"], + tempLow: -20, + stateLow: "frozen_008_meat", + category:"scp", + hidden: true, + burn:12, + burnTime:200, + burnInto:["SCP_008","ash","ammonia"], + state: "solid", + density: 1005, + conduct: 0.1, + isFood: true +}, + +elements.frozen_008_meat = { + color: "#242424", + behavior: [ + "XX|CH:rotten_meat,frozen_meat>frozen_008_meat%1|XX", + "SP%99 AND CH:rotten_meat,frozen_meat>frozen_008_meat%1|XX|SP%99 AND CH:rotten_meat,frozen_meat>frozen_008_meat%1", + "XX|M1 AND CH:rotten_meat,frozen_meat>frozen_008_meat%1|XX", + ], + reactions: { + "water": { elem2:"dirty_water" }, + "salt_water": { elem1:"008_meat",elem2:"dirty_water" , chance:0.5 }, + "sugar_water": { elem2:"dirty_water" }, + "seltzer": { elem2:"dirty_water" }, + "fly": { elem2: ["dead_bug","dead_bug","SCP_008"] , chance:0.2}, + }, + temp: -20, + tempHigh: 10, + stateHigh: "008_meat", + category:"scp", + hidden: true, + state: "solid", + density: 1005, + conduct: 0.05, +}, + elements.possessive_mask = { color: ["#f7ead0","#faf9f6","#e9e6db"], category: "scp", From 7f001bbf6c503ef7118994ddbd635c40429add91 Mon Sep 17 00:00:00 2001 From: DoobieRalsei <163950752+DoobieRalsei@users.noreply.github.com> Date: Mon, 6 May 2024 11:54:58 -0700 Subject: [PATCH 21/38] Made Anomalous Essence rarer --- mods/scp.js | 33 +++++++++++---------------------- 1 file changed, 11 insertions(+), 22 deletions(-) diff --git a/mods/scp.js b/mods/scp.js index 6dbaa773..d8f44eab 100644 --- a/mods/scp.js +++ b/mods/scp.js @@ -1,43 +1,33 @@ window.addEventListener("load", () => { document.getElementById("elementButton-mask_head")?.remove() }) - window.addEventListener("load", () => { document.getElementById("elementButton-mask_body")?.remove() }) - window.addEventListener("load", () => { document.getElementById("elementButton-008_meat")?.remove() }) - window.addEventListener("load", () => { document.getElementById("elementButton-frozen_008_meat")?.remove() }) - window.addEventListener("load", () => { document.getElementById("elementButton-zombie")?.remove() }) - window.addEventListener("load", () => { document.getElementById("elementButton-z_head")?.remove() }) - window.addEventListener("load", () => { document.getElementById("elementButton-z_body")?.remove() }) - window.addEventListener("load", () => { document.getElementById("elementButton-REDACTED")?.remove() }) - window.addEventListener("load", () => { document.getElementById("elementButton-hyper_tickle_monster")?.remove() }) - window.addEventListener("load", () => { document.getElementById("elementButton-calm_682")?.remove() }) - window.addEventListener("load", () => { document.getElementById("elementButton-mad_682")?.remove() }) @@ -73,12 +63,12 @@ elements.SCP_008 = { "bee": { elem2:"SCP_008" , chance:0.5 }, "fish": { elem2:"SCP_008" , chance:0.5 }, "firefly": { elem2:"SCP_008" , chance:0.5 }, - "chlorine": { elem1: [null,null,null,null,"anomalous_essence"] , chance:0.01 }, - "liquid_chlorine": { elem1: [null,null,null,null,"anomalous_essence"] , chance:0.01 }, - "light": { elem1: [null,null,null,null,"anomalous_essence"] , chance:0.01 }, + "chlorine": { elem1: [null,null,null,null,null,null,null,null,"anomalous_essence"] , chance:0.01 }, + "liquid_chlorine": { elem1: [null,null,null,null,null,null,null,null,"anomalous_essence"] , chance:0.01 }, + "light": { elem1: [null,null,null,null,null,null,null,null,"anomalous_essence"] , chance:0.01 }, }, tempHigh: 750, - stateHigh: [null,null,null,null,"anomalous_essence"], + stateHigh: [null,null,null,null,null,null,null,null,"anomalous_essence"], tempLow: -100, stateLow: "frozen_008", category: "scp", @@ -99,9 +89,9 @@ elements.frozen_008 = { "meat": { elem1:null, elem2:"frozen_008_meat" , chance:0.4 }, "rotten_meat": { elem1:null, elem2:"frozen_008_meat" , chance:0.5 }, "frozen_meat": { elem1:null, elem2:"frozen_008_meat" , chance:0.4 }, - "chlorine": { elem1: [null,null,null,null,"anomalous_essence"] , chance:0.01 }, - "liquid_chlorine": { elem1: [null,null,null,null,"anomalous_essence"] , chance:0.01 }, - "light": { elem1: [null,null,null,null,"anomalous_essence"] , chance:0.01 }, + "chlorine": { elem1: [null,null,null,null,null,null,null,null,"anomalous_essence"] , chance:0.01 }, + "liquid_chlorine": { elem1: [null,null,null,null,null,null,null,null,"anomalous_essence"] , chance:0.01 }, + "light": { elem1: [null,null,null,null,null,null,null,null,"anomalous_essence"] , chance:0.01 }, }, temp: -50, tempHigh: 0, @@ -444,7 +434,7 @@ elements.black_acid = { tempLow: -58.88, burn: 30, burnTime: 10, - burnInto: ["fire","fire","fire","fire","fire","fire","fire","fire","ash","ash","anomalous_essence"], + burnInto: ["fire","fire","fire","fire","fire","fire","fire","fire","ash","ash","fire","fire","fire","fire","ash","ash","anomalous_essence"], fireColor: "#111111", state: "liquid", density: 1105, @@ -462,7 +452,7 @@ elements.SCP_055 = { category: "scp", state: "solid", tempHigh: 55055055055, - stateHigh: ["metal_scrap","smoke","smoke","anomalous_essence"], + stateHigh: ["metal_scrap","metal_scrap","smoke","smoke","smoke","smoke","smoke","smoke","smoke",null,"anomalous_essence"], }, elements.REDACTED = { @@ -888,7 +878,7 @@ elements.shy_head = { hidden: true, color: ["#f7ead0","#faf9f6","#e9e6db"], category: "scp", - breakInto: ["bone","bone","blood","bone","bone","blood","anomalous_essence"], + breakInto: ["bone","bone","blood","bone","bone","blood","bone","bone","blood","bone","bone","blood","anomalous_essence"], properties: { dead: false }, @@ -943,7 +933,6 @@ elements.shy_head = { "z_body": { elem2: ["infection","infection","rotten_meat","bone",null] }, "rat": { elem2: ["infection","rotten_meat",null]}, "frog": { elem2: ["slime",null] }, - "cell": { elem2: ["dna","water",null] }, "cancer": { elem2: ["dna","dirty_water",null], }, "blood": { elem2: null, chance:0.2 }, "bone": { elem2: null, chance:0.2 }, @@ -958,7 +947,7 @@ elements.shy_body = { hidden: true, color: ["#f7ead0","#faf9f6","#e9e6db"], category: "scp", - breakInto: ["bone","bone","blood","bone","bone","blood","anomalous_essence"], + breakInto: ["bone","bone","blood","bone","bone","blood","bone","bone","blood","bone","bone","blood","anomalous_essence"], properties: { dead: false, dir: 1, From 1c1ab275de400356ae46e5395a8090af18dd9e30 Mon Sep 17 00:00:00 2001 From: DoobieRalsei <163950752+DoobieRalsei@users.noreply.github.com> Date: Mon, 6 May 2024 12:25:23 -0700 Subject: [PATCH 22/38] Rudimentary 096 tracking --- mods/scp.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/mods/scp.js b/mods/scp.js index d8f44eab..4b801da5 100644 --- a/mods/scp.js +++ b/mods/scp.js @@ -912,7 +912,20 @@ elements.shy_head = { pixel.dead = pixelTicks; } } - } + } + if (!isEmpty(pixel.x+2, pixel.y, true) && pixelMap[pixel.x+2][pixel.y].element == "head") { + var target = pixelMap[pixel.x+2][pixel.y]; + if (target.dead) { // If target is dead, ignore + var target = null; + } + else { body.panic += 0.1; } + } + else { var target = null } + if (target.dead) { // If target is dead, ignore + var target = null; + body.panic -= 0.1; + } + // homeostasis if (pixel.temp > 37) { pixel.temp -= 1; } else if (pixel.temp < 37) { pixel.temp += 1; } From e3a80c4081d032acfc5590c6232902dd1e4d6225 Mon Sep 17 00:00:00 2001 From: DoobieRalsei <163950752+DoobieRalsei@users.noreply.github.com> Date: Mon, 6 May 2024 18:09:06 -0700 Subject: [PATCH 23/38] scp.js improved --- mods/scp.js | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/mods/scp.js b/mods/scp.js index 4b801da5..0b0273ff 100644 --- a/mods/scp.js +++ b/mods/scp.js @@ -5,10 +5,10 @@ window.addEventListener("load", () => { document.getElementById("elementButton-mask_body")?.remove() }) window.addEventListener("load", () => { - document.getElementById("elementButton-008_meat")?.remove() + document.getElementById("elementButton-infected_meat")?.remove() }) window.addEventListener("load", () => { - document.getElementById("elementButton-frozen_008_meat")?.remove() + document.getElementById("elementButton-frozen_infected_meat")?.remove() }) window.addEventListener("load", () => { document.getElementById("elementButton-zombie")?.remove() @@ -55,9 +55,9 @@ elements.SCP_008 = { reactions: { "head": { elem1:null, elem2:"z_head" , chance:0.5 }, "body": { elem1:null, elem2:"z_body" , chance:0.5 }, - "meat": { elem1:null, elem2:"008_meat" , chance:0.4 }, - "rotten_meat": { elem1:null, elem2:"008_meat" , chance:0.5 }, - "frozen_meat": { elem1:null, elem2:"frozen_008_meat" , chance:0.3 }, + "meat": { elem1:null, elem2:"infected_meat" , chance:0.4 }, + "rotten_meat": { elem1:null, elem2:"infected_meat" , chance:0.5 }, + "frozen_meat": { elem1:null, elem2:"frozen_infected_meat" , chance:0.3 }, "frog": { elem2:"SCP_008" , chance:0.5 }, "ant": { elem2:"SCP_008" , chance:0.5 }, "bee": { elem2:"SCP_008" , chance:0.5 }, @@ -86,9 +86,9 @@ elements.frozen_008 = { reactions: { "head": { elem1:null, elem2:"z_head" , chance:0.4 }, "body": { elem1:null, elem2:"z_body" , chance:0.4 }, - "meat": { elem1:null, elem2:"frozen_008_meat" , chance:0.4 }, - "rotten_meat": { elem1:null, elem2:"frozen_008_meat" , chance:0.5 }, - "frozen_meat": { elem1:null, elem2:"frozen_008_meat" , chance:0.4 }, + "meat": { elem1:null, elem2:"frozen_infected_meat" , chance:0.4 }, + "rotten_meat": { elem1:null, elem2:"frozen_infected_meat" , chance:0.5 }, + "frozen_meat": { elem1:null, elem2:"frozen_infected_meat" , chance:0.4 }, "chlorine": { elem1: [null,null,null,null,null,null,null,null,"anomalous_essence"] , chance:0.01 }, "liquid_chlorine": { elem1: [null,null,null,null,null,null,null,null,"anomalous_essence"] , chance:0.01 }, "light": { elem1: [null,null,null,null,null,null,null,null,"anomalous_essence"] , chance:0.01 }, @@ -101,12 +101,12 @@ elements.frozen_008 = { density: 95, }, -elements.008_meat = { +elements.infected_meat = { color: ["#b8b165","#b89765"], behavior: [ - "XX|CR:plague,stench,stench,SCP_008,fly%0.25 AND CH:rotten_meat,meat>008_meat%1|XX", - "SP%99 AND CH:rotten_meat,meat>008_meat%1|XX|SP%99 AND CH:rotten_meat,meat>008_meat%1", - "XX|M1 AND CH:rotten_meat,meat>008_meat%1|XX", + "XX|CR:plague,stench,stench,SCP_008,fly%0.25 AND CH:rotten_meat,meat>infected_meat%1|XX", + "SP%99 AND CH:rotten_meat,meat>infected_meat%1|XX|SP%99 AND CH:rotten_meat,meat>infected_meat%1", + "XX|M1 AND CH:rotten_meat,meat>infected_meat%1|XX", ], reactions: { "water": { elem2:"dirty_water" }, @@ -119,7 +119,7 @@ elements.008_meat = { tempHigh: 300, stateHigh: ["SCP_008","ash","ammonia"], tempLow: -20, - stateLow: "frozen_008_meat", + stateLow: "frozen_infected_meat", category:"scp", hidden: true, burn:12, @@ -131,23 +131,23 @@ elements.008_meat = { isFood: true }, -elements.frozen_008_meat = { +elements.frozen_infected_meat = { color: "#242424", behavior: [ - "XX|CH:rotten_meat,frozen_meat>frozen_008_meat%1|XX", - "SP%99 AND CH:rotten_meat,frozen_meat>frozen_008_meat%1|XX|SP%99 AND CH:rotten_meat,frozen_meat>frozen_008_meat%1", - "XX|M1 AND CH:rotten_meat,frozen_meat>frozen_008_meat%1|XX", + "XX|CH:rotten_meat,frozen_meat>frozen_infected_meat%1|XX", + "SP%99 AND CH:rotten_meat,frozen_meat>frozen_infected_meat%1|XX|SP%99 AND CH:rotten_meat,frozen_meat>frozen_infected_meat%1", + "XX|M1 AND CH:rotten_meat,frozen_meat>frozen_infected_meat%1|XX", ], reactions: { "water": { elem2:"dirty_water" }, - "salt_water": { elem1:"008_meat",elem2:"dirty_water" , chance:0.5 }, + "salt_water": { elem1:"infected_meat",elem2:"dirty_water" , chance:0.5 }, "sugar_water": { elem2:"dirty_water" }, "seltzer": { elem2:"dirty_water" }, "fly": { elem2: ["dead_bug","dead_bug","SCP_008"] , chance:0.2}, }, temp: -20, tempHigh: 10, - stateHigh: "008_meat", + stateHigh: "infected_meat", category:"scp", hidden: true, state: "solid", From 924e139e0619fdb7b792f219526afd894bcbb21a Mon Sep 17 00:00:00 2001 From: DoobieRalsei <163950752+DoobieRalsei@users.noreply.github.com> Date: Tue, 7 May 2024 09:13:12 -0700 Subject: [PATCH 24/38] =?UTF-8?q?More=20Spanish/Mas=20Espa=C3=B1ol?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Updated the Spanish translation list to have many more translations. Añadi muchos mas traducciones a la lista de Español. --- lang/es.json | 240 +++++++++++++++++++++++++-------------------------- 1 file changed, 120 insertions(+), 120 deletions(-) diff --git a/lang/es.json b/lang/es.json index 31123ab2..5d54b999 100644 --- a/lang/es.json +++ b/lang/es.json @@ -153,7 +153,7 @@ "ammonia":"amoníaco", "liquid_ammonia":"liquido_de_amoníaco", "carbon_dioxide":"dióxido_de_carbono", -"oil":"aceite ", +"oil":"aceite", "lamp_oil":"aceite_de_lampara", "propane":"propano", "methane":"metano", @@ -198,7 +198,7 @@ "slow_cloner":"clonador_lento", "clone_powder":"polvo_de_clone", "floating_cloner":"clonador_flotante", -"virus":"virus ", +"virus":"virus", "ice_nine":"hielo_nueve", "strange_matter":"asunto_extraño", "permafrost":"permafrost", @@ -241,7 +241,7 @@ "bronze":"bronce", "sterling":"libra_esterliina", "gallium":"galio", -"molten_gallium":"galion_fundido", +"molten_gallium":"galio_fundido", "gallium_gas":"gas_galio", "rose_gold":"oro_rosa", "purple_gold":"oro_purpura", @@ -277,7 +277,7 @@ "rotten_cheese":"queso_podrido", "chocolate":"chocolate", "grape":"uva", -"vinegar":"vinagre ", +"vinegar":"vinagre", "herb":"hierba", "lettuce":"lechuga", "pickle":"pepinillo", @@ -406,121 +406,121 @@ "neutron":"neutrón", "proton":"protón ", "electric":"electrico", -"uranium":"", -"molten_uranium":"", -"diamond":"", -"gold_coin":"", -"rust":"", -"oxidized_copper":"", -"alga":"", -"metal_scrap":"", -"glass_shard":"", -"rad_shard":"", -"brick_rubble":"", -"baked_clay":"", -"clay_shard":"", -"porcelain_shard":"", -"feather":"", -"confetti":"", -"glitter":"", -"bead":"", -"color_sand":"", -"borax":"", -"epsom_salt":"", -"potassium_salt":"", -"sodium_acetate":"", -"lightning":"", -"bless":"", -"god_ray":"", -"heat_ray":"", -"explosion":"", -"n_explosion":"", -"supernova":"", -"pop":"", -"cook":"", -"incinerate":"", -"room_temp":"", -"positron":"", -"tnt":"", -"c4":"", -"grenade":"", -"dynamite":"", -"gunpowder":"", -"ember":"", -"firework":"", -"fw_ember":"", -"nuke":"", -"h_bomb":"", -"dirty_bomb":"", -"emp_bomb":"", -"nitro":"", -"greek_fire":"", -"fireball":"", -"rocket":"", -"cold_bomb":"", -"hot_bomb":"", -"antimatter_bomb":"", -"party_popper":"", -"flashbang":"", -"flash":"", -"smoke_grenade":"", -"landmine":"", -"armageddon":"", -"tesla_coil":"", -"light_bulb":"", -"shocker":"", -"pressure_plate":"", -"primordial_soup":"", -"molten_slag":"", -"molten_dirt":"", -"debug":"reydeporvida", -"prop":"", -"salt_ice":"", -"sugar_ice":"", -"seltzer_ice":"", -"dirty_ice":"", -"pool_ice":"", -"blood_ice":"", -"antibody_ice":"", -"infection_ice":"", -"unknown":"", -"slime_ice":"", -"antiice":"", -"ammonia_ice":"", -"liquid_propane":"", -"methane_ice":"", -"molten_brick":"", -"acid_ice":"", -"soda_ice":"", -"molten_steel":"", -"molten_brass":"", -"molten_bronze":"", -"molten_sterling":"", -"molten_rose_gold":"", -"molten_purple_gold":"", -"molten_blue_gold":"", -"molten_electrum":"", -"molten_pyrite":"", -"broth_ice":"", -"frozen_vinegar":"", -"sauce_ice":"", -"alcohol_ice":"", -"bleach_ice":"", -"chlorine_ice":"", -"frozen_ink":"", -"tea_ice":"", -"coffee_ice":"", -"hydrogen_ice":"", -"oxygen_ice":"", -"molten_amalgam":"", -"neon_ice":"", -"cyanide_ice":"", -"molten_copper_sulfate":"", -"molten_alga":"", -"molten_metal_scrap":"", -"molten_borax":"", -"molten_epsom_salt":"", -"molten_potassium_salt":"", +"uranium":"uranio", +"molten_uranium":"uranio_fundido", +"diamond":"diamante", +"gold_coin":"moneda_de_oro", +"rust":"óxido", +"oxidized_copper":"cobre_oxidado", +"alga":"aluminio_galio", +"metal_scrap":"chatarra", +"glass_shard":"fragmento_de_vidrio", +"rad_shard":"fragmento_de_vidrio_rad", +"brick_rubble":"escombros_de_ladrillo", +"baked_clay":"arcilla_horneado", +"clay_shard":"fragmento_de_arcilla", +"porcelain_shard":"fragmento_de_porcelina", +"feather":"pluma", +"confetti":"confetti", +"glitter":"brillo", +"bead":"cuenta", +"color_sand":"arena_de_color", +"borax":"bórax", +"epsom_salt":"sal_de_epsom", +"potassium_salt":"sal_de_potassio", +"sodium_acetate":"acetato_sodio", +"lightning":"relampago", +"bless":"bendecir", +"god_ray":"rayo_de_dios", +"heat_ray":"rayo_de_calor", +"explosion":"explosión", +"n_explosion":"explosión_n", +"supernova":"supernova", +"pop":"estallido", +"cook":"cocinar", +"incinerate":"incinerar", +"room_temp":"temp_ambiente", +"positron":"positrón", +"tnt":"tnt", +"c4":"c4", +"grenade":"grenada", +"dynamite":"dinamita", +"gunpowder":"polvóra", +"ember":"ascua", +"firework":"fuego_artificiale", +"fw_ember":"ascua_fa", +"nuke":"bomba_nuclear", +"h_bomb":"bomba_h", +"dirty_bomb":"bomba_sucio", +"emp_bomb":"bomba_de_iem", +"nitro":"nitróglicerina", +"greek_fire":"fuego_griego", +"fireball":"bola_de_fuego", +"rocket":"cohete", +"cold_bomb":"bomba_de_frio", +"hot_bomb":"bomba_de_calor", +"antimatter_bomb":"bomba_antimaterio", +"party_popper":"aguafiestas", +"flashbang":"bomba_de_destello", +"flash":"destello", +"smoke_grenade":"granada_de_humo", +"landmine":"mina", +"armageddon":"armagedón", +"tesla_coil":"bobina_de_tesla", +"light_bulb":"foco", +"shocker":"choquedor", +"pressure_plate":"placa_de_presión", +"primordial_soup":"sopa_primordial", +"molten_slag":"escoria_fundido", +"molten_dirt":"tierra_fundido", +"debug":"depurar", +"prop":"prop", +"salt_ice":"hielo_de_sal", +"sugar_ice":"hielo_de_azúcar", +"seltzer_ice":"hielo_carbonado", +"dirty_ice":"hielo_sucio", +"pool_ice":"hielo_clorado", +"blood_ice":"sangre_congelado", +"antibody_ice":"anticuerpo_congelado", +"infection_ice":"infección_congelado", +"unknown":"desconocido", +"slime_ice":"limo_congelado", +"antiice":"antihielo", +"ammonia_ice":"hielo_de_ammonia", +"liquid_propane":"propano_líquido", +"methane_ice":"hielo_methano", +"molten_brick":"ladrillo_fundido", +"acid_ice":"acido_congelado", +"soda_ice":"soda_congelado", +"molten_steel":"acero_fundido", +"molten_brass":"latón_fundido", +"molten_bronze":"bronce_fundido", +"molten_sterling":"esterlina_fundido", +"molten_rose_gold":"oro_rosa_fundido", +"molten_purple_gold":"oro_purpula_fundido", +"molten_blue_gold":"oro_azúl_fundido", +"molten_electrum":"electro_fundido", +"molten_pyrite":"pirita_fundido", +"broth_ice":"caldo_congelado", +"frozen_vinegar":"vinagre_congelado", +"sauce_ice":"salsa_congelado", +"alcohol_ice":"alcohol_congelado", +"bleach_ice":"lejía_congelado", +"chlorine_ice":"cloro_congelado", +"frozen_ink":"tinta_congelado", +"tea_ice":"té_congelado", +"coffee_ice":"café_congelado", +"hydrogen_ice":"hidrógeno_congelado", +"oxygen_ice":"oxígeno_congelado", +"molten_amalgam":"amalgama_fundido", +"neon_ice":"neón_congelado", +"cyanide_ice":"ciaruno_congelado", +"molten_copper_sulfate":"cobre_sulfató_fundido", +"molten_alga":"aluminio_galio_fundido", +"molten_metal_scrap":"chatarra_fundido", +"molten_borax":"bórax_fundido", +"molten_epsom_salt":"sal_de_epsom_fundido", +"molten_potassium_salt":"sal_de_potassio_fundido", "molten_sodium_acetate":"", "frozen_nitro":"", "cured_meat": "", @@ -540,4 +540,4 @@ "blaster": "", "propane_ice": "", "molten_caustic_potash": "" -} \ No newline at end of file +} From 1d09c5e0edf16b28ba0fa1999f0e692f1a40b0a1 Mon Sep 17 00:00:00 2001 From: DoobieRalsei <163950752+DoobieRalsei@users.noreply.github.com> Date: Tue, 7 May 2024 11:46:54 -0700 Subject: [PATCH 25/38] Removed buggy 096 code --- mods/scp.js | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/mods/scp.js b/mods/scp.js index 0b0273ff..0345e2ba 100644 --- a/mods/scp.js +++ b/mods/scp.js @@ -913,19 +913,6 @@ elements.shy_head = { } } } - if (!isEmpty(pixel.x+2, pixel.y, true) && pixelMap[pixel.x+2][pixel.y].element == "head") { - var target = pixelMap[pixel.x+2][pixel.y]; - if (target.dead) { // If target is dead, ignore - var target = null; - } - else { body.panic += 0.1; } - } - else { var target = null } - if (target.dead) { // If target is dead, ignore - var target = null; - body.panic -= 0.1; - } - // homeostasis if (pixel.temp > 37) { pixel.temp -= 1; } else if (pixel.temp < 37) { pixel.temp += 1; } From b1299bd1faa7c0e511ca05414107e3e011b11867 Mon Sep 17 00:00:00 2001 From: DoobieRalsei <163950752+DoobieRalsei@users.noreply.github.com> Date: Tue, 7 May 2024 11:51:36 -0700 Subject: [PATCH 26/38] Improved 682 --- mods/scp.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mods/scp.js b/mods/scp.js index 0345e2ba..9fff32a7 100644 --- a/mods/scp.js +++ b/mods/scp.js @@ -1061,7 +1061,7 @@ elements.SCP_682 = { color: ["#424242","#75816B","#4D6B53"], behavior: [ "M2%0.5|M2%0.3|M2%0.5", - "M1%10|XX|M1%10", + "M2%10|XX|M2%10", "XX|M1|XX", ], category: "scp", @@ -1124,7 +1124,7 @@ elements.mad_682 = { color: ["#424242","#75816B","#4D6B53"], behavior: [ "M2%0.5|M2%0.3|M2%0.5", - "M1%10 AND CH:concrete>dust AND DL:dust|CH:SCP_682%0.3|M1%10 AND CH:concrete>dust AND DL:dust", + "M2%10|CH:SCP_682%0.3|M2%10", "XX|M1|XX", ], category: "scp", @@ -1150,8 +1150,8 @@ elements.mad_682 = { "lead": { elem2 : ["metal_scrap","metal_scrap","radiation"] , chance:0.3 }, "glass": { elem2 : "glass_shard" }, "wood": { elem2 : "sawdust" }, - "concrete": { elem2 : "dust" , chance:0.1 }, - "dust": { elem2 : null , chance:0.1 }, + "concrete": { elem2 : "dust" , chance:10 }, + "dust": { elem2 : null , chance:10 }, }, hidden: true, state: "solid", From f806e2b5169c2312ad663187da5dd03ca00a3cad Mon Sep 17 00:00:00 2001 From: NecroticPhantom <167430021+NecroticPhantom@users.noreply.github.com> Date: Wed, 8 May 2024 11:05:22 +0100 Subject: [PATCH 27/38] added drills.js --- mods/drills.js | 609 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 609 insertions(+) create mode 100644 mods/drills.js diff --git a/mods/drills.js b/mods/drills.js new file mode 100644 index 00000000..9cc21fdc --- /dev/null +++ b/mods/drills.js @@ -0,0 +1,609 @@ +/* Made by: Necrotic_Phantom + With help from: voidapex11 */ + +// For change log: "+" = addition, "-" = removal and "~" = change. L, R, U, D corresponds to LEFT, RIGHT, UP and DOWN +// "committed" means posted current version on github. It is a courtesy and important, especially if you're working on another person's mod at the same time as them, so you don't disrupt each other's work + +/* +===CHANGE LOG=== + Version: 1.0.0 +@Necrotic_Phantom & @voidapex11 ++ steel drill L, R, U & D ++ steel drill missile L, R, U & D ++ diamond drill L, R, U & D ++ diamond drill missile L, R, U & D ++ void drill L, R, U & D ++ void drill missile L, R, U & D ++ drills.js info (drills_info) element to 'mods' category +~ changed all element colors from gray to individual colors +~ fixed steel/diamond/void drill missile L, R, U & D drilling errors +~ fixed steel/diamond/void drill R & steel/diamond/void drill missile R crashing upon border collision +~ made steel/diamond/void drill missile L, R, U & D explode upon border contact +~ committed +*/ + +/* Future Plans (in approx order): +~ find error/fix all types of drill_RIGHT crashing game a few seconds after hitting border ++ reverse steel drill L, R, U & D ++ reverse diamond drill L, R, U & D ++ reverse void drill L, R, U & D ++ random steel drill ++ random steel drill missile ++ random reverse steel drill ++ random diamond drill ++ random diamond drill missile ++ random reverse diamond drill ++ random void drill ++ random void drill missile ++ random reverse void drill ++ programmable steel drill ++ programmable steel drill missile ++ programmable reverse steel drill ++ programmable diamond drill ++ programmable diamond drill missile ++ programmable reverse diamond drill ++ programmable void drill ++ programmable void drill missile ++ programmable reverse void drill ++ seeking steel drill ++ seeking steel drill missile ++ seeking reverse steel drill ++ seeking diamond drill ++ seeking diamond drill missile ++ seeking reverse diamond drill ++ seeking void drill ++ seeking void drill missile ++ seeking reverse void drill ++ ricochet drills??? */ + +drills_mod_desc_Colour = "#000000" +steel_drill_Colour = "#71797e" +steel_drill_missile_Colour = ["#71797e", "#ff0000"]; +diamond_drill_Colour = "#03fcec" +diamond_drill_missile_Colour = ["#03fcec", "#ff0000"]; +void_drill_Colour = "#262626" +void_drill_missile_Colour = ["#262626", "#ff0000"]; + + + +elements.drills_info = { + color: drills_mod_desc_Colour, + name: "drills.js_info", + category: "Mods", + behavior: behaviors.SELFDELETE, + maxSize: 1, + tool: function(pixel) {}, + onSelect: function(pixel) { + let info1stMod = "The drills.js mod adds different kinds of drills to a new 'drills' category.\n\nMod made by: Necrotic_Phantom. \n With help from: voidapex11." + alert(info1stMod) + return + }, +}; + + + +steel_drill_function = function(pixel, dif_x, dif_y) { + dif_x = dif_x-pixel.x + dif_y = dif_y-pixel.y + if (!outOfBounds(pixel.x+dif_x,pixel.y+dif_y)) { + pxl = pixelMap[pixel.x+dif_x][pixel.y+dif_y] + if (!isEmpty(pixel.x+dif_x,pixel.y+dif_y)) { + if (elements[pxl.element].hardness <= 0.8) { + delete pixelMap[pixel.x+dif_x][pixel.y+dif_y]; + } + }; + tryMove(pixel,pixel.x+dif_x,pixel.y+dif_y); + }; + doDefaults(pixel); +} + +elements.steel_drill_LEFT = { + color: steel_drill_Colour, + tick: function(pixel) { + steel_drill_function(pixel,pixel.x-1,pixel.y); + }, + category: "Drills", + breakInto: ["metal_scrap", "steel", "iron", "tin"], + tempHigh: 10000, + stateHigh: ["molten_steel", "molten_iron", "molten_tin"], + density: 10000, + hardness: 0.8, + conduct: 1, + state: "solid", +} + +elements.steel_drill_RIGHT = { + color: steel_drill_Colour, + tick: function(pixel) { + steel_drill_function(pixel,pixel.x+1,pixel.y); + }, + category: "Drills", + breakInto: ["metal_scrap", "steel", "iron", "tin"], + tempHigh: 10000, + stateHigh: ["molten_aluminum", "molten_steel", "molten_iron", "molten_tin"], + density: 10000, + hardness: 0.8, + conduct: 1, + state: "solid", +} + +elements.steel_drill_UP = { + color: steel_drill_Colour, + tick: function(pixel) { + steel_drill_function(pixel,pixel.x,pixel.y-1); + }, + category: "Drills", + breakInto: ["metal_scrap", "steel", "iron", "tin"], + tempHigh: 10000, + stateHigh: ["molten_aluminum", "molten_steel", "molten_iron", "molten_tin"], + density: 10000, + hardness: 0.8, + conduct: 1, + state: "solid", +} + +elements.steel_drill_DOWN = { + color: steel_drill_Colour, + tick: function(pixel) { + steel_drill_function(pixel,pixel.x,pixel.y+1); + }, + category: "Drills", + breakInto: ["metal_scrap", "steel", "iron", "tin"], + tempHigh: 10000, + stateHigh: ["molten_aluminum", "molten_steel", "molten_iron", "molten_tin"], + density: 10000, + hardness: 0.8, + conduct: 1, + state: "solid", +} + + + +steel_drill_missile_function = function(pixel, dif_x, dif_y) { + dif_x = dif_x-pixel.x + dif_y = dif_y-pixel.y + if (pixel.die <= 0) { + deletePixel(pixel.x, pixel.y) + explodeAt(pixel.x, pixel.y, 15); + return true + }; + if (!outOfBounds(pixel.x+dif_x,pixel.y+dif_y)) { + pxl = pixelMap[pixel.x+dif_x][pixel.y+dif_y] + if (!isEmpty(pixel.x+dif_x,pixel.y+dif_y)) { + pixel.primed = true + if (elements[pxl.element].hardness <= 0.8) { + delete pixelMap[pixel.x+dif_x][pixel.y+dif_y]; + } + } + else if (pixel.primed) { + pixel.die-- + return true + }; + tryMove(pixel,pixel.x+dif_x,pixel.y+dif_y); + } + else if (outOfBounds(pixel.x+dif_x, pixel.y+dif_y)) { + deletePixel(pixel.x, pixel.y) + explodeAt(pixel.x, pixel.y, 15); + }; + doDefaults(pixel); +} + +elements.steel_drill_missile_LEFT = { + color: steel_drill_missile_Colour, + properties: { + die: 5, + primed: false, + }, + tick: function(pixel) { + steel_drill_missile_function(pixel,pixel.x-1,pixel.y); + }, + category: "Drills", + density: 10000, + hardness: 0.8, + conduct: 1, + state: "solid", + maxSize: 1, +} + +elements.steel_drill_missile_RIGHT = { + color: steel_drill_missile_Colour, + properties: { + die: 5, + primed: false, + }, + tick: function(pixel) { + steel_drill_missile_function(pixel,pixel.x+1,pixel.y); + }, + category: "Drills", + density: 10000, + hardness: 0.8, + conduct: 1, + state: "solid", + maxSize: 1, +} + +elements.steel_drill_missile_UP = { + color: steel_drill_missile_Colour, + properties: { + die: 5, + primed: false, + }, + tick: function(pixel) { + steel_drill_missile_function(pixel,pixel.x,pixel.y-1); + }, + category: "Drills", + density: 10000, + hardness: 0.8, + conduct: 1, + state: "solid", + maxSize: 1, +} + +elements.steel_drill_missile_DOWN = { + color: steel_drill_missile_Colour, + properties: { + die: 5, + primed: false, + }, + tick: function(pixel) { + steel_drill_missile_function(pixel,pixel.x,pixel.y+1); + }, + category: "Drills", + density: 10000, + hardness: 0.8, + conduct: 1, + state: "solid", + maxSize: 1, +} + + + +diamond_drill_function = function(pixel, dif_x, dif_y) { + dif_x = dif_x-pixel.x + dif_y = dif_y-pixel.y + if (!outOfBounds(pixel.x+dif_x,pixel.y+dif_y)) { + pxl = pixelMap[pixel.x+dif_x][pixel.y+dif_y] + if (!isEmpty(pixel.x+dif_x,pixel.y+dif_y)) { + if (elements[pxl.element].hardness <= 0.99) { + delete pixelMap[pixel.x+dif_x][pixel.y+dif_y]; + } + }; + tryMove(pixel,pixel.x+dif_x,pixel.y+dif_y); + }; + doDefaults(pixel); +} + +elements.diamond_drill_LEFT = { + color: diamond_drill_Colour, + tick: function(pixel) { + diamond_drill_function(pixel,pixel.x-1,pixel.y); + }, + category: "Drills", + breakInto: ["metal_scrap", "diamond", "iron", "tin"], + tempHigh: 10000, + stateHigh: ["molten_aluminum", "carbon_dioxide", "molten_iron", "molten_tin"], + density: 10000, + hardness: 0.99, + conduct: 1, + state: "solid", +} + +elements.diamond_drill_RIGHT = { + color: diamond_drill_Colour, + tick: function(pixel) { + diamond_drill_function(pixel,pixel.x+1,pixel.y); + }, + category: "Drills", + breakInto: ["metal_scrap", "diamond", "iron", "tin"], + tempHigh: 10000, + stateHigh: ["molten_aluminum", "carbon_dioxide", "molten_iron", "molten_tin"], + density: 10000, + hardness: 0.99, + conduct: 1, + state: "solid", +} + +elements.diamond_drill_UP = { + color: diamond_drill_Colour, + tick: function(pixel) { + diamond_drill_function(pixel,pixel.x,pixel.y-1); + }, + category: "Drills", + breakInto: ["metal_scrap", "diamond", "iron", "tin"], + tempHigh: 10000, + stateHigh: ["molten_aluminum", "carbon_dioxide", "molten_iron", "molten_tin"], + density: 10000, + hardness: 0.99, + conduct: 1, + state: "solid", +} + +elements.diamond_drill_DOWN = { + color: diamond_drill_Colour, + tick: function(pixel) { + diamond_drill_function(pixel,pixel.x,pixel.y+1); + }, + category: "Drills", + breakInto: ["metal_scrap", "diamond", "iron", "tin"], + tempHigh: 10000, + stateHigh: ["molten_aluminum", "carbon_dioxide", "molten_iron", "molten_tin"], + density: 10000, + hardness: 0.99, + conduct: 1, + state: "solid", +} + + + +diamond_drill_missile_function = function(pixel, dif_x, dif_y) { + dif_x = dif_x-pixel.x + dif_y = dif_y-pixel.y + if (pixel.die <= 0) { + deletePixel(pixel.x, pixel.y) + explodeAt(pixel.x, pixel.y, 15); + return true + }; + if (!outOfBounds(pixel.x+dif_x,pixel.y+dif_y)) { + pxl = pixelMap[pixel.x+dif_x][pixel.y+dif_y] + if (!isEmpty(pixel.x+dif_x,pixel.y+dif_y)) { + pixel.primed = true + if (elements[pxl.element].hardness <= 0.99) { + delete pixelMap[pixel.x+dif_x][pixel.y+dif_y]; + } + } + else if (pixel.primed) { + pixel.die-- + return true + }; + tryMove(pixel,pixel.x+dif_x,pixel.y+dif_y); + } + else if (outOfBounds(pixel.x+dif_x, pixel.y+dif_y)) { + deletePixel(pixel.x, pixel.y) + explodeAt(pixel.x, pixel.y, 15); + }; + doDefaults(pixel); +} + +elements.diamond_drill_missile_LEFT = { + color: diamond_drill_missile_Colour, + properties: { + die: 5, + primed: false, + }, + tick: function(pixel) { + diamond_drill_missile_function(pixel,pixel.x-1,pixel.y); + }, + category: "Drills", + density: 10000, + hardness: 0.99, + conduct: 1, + state: "solid", + maxSize: 1, +} + +elements.diamond_drill_missile_RIGHT = { + color: diamond_drill_missile_Colour, + properties: { + die: 5, + primed: false, + }, + tick: function(pixel) { + diamond_drill_missile_function(pixel,pixel.x+1,pixel.y); + }, + category: "Drills", + density: 10000, + hardness: 0.99, + conduct: 1, + state: "solid", + maxSize: 1, +} + +elements.diamond_drill_missile_UP = { + color: diamond_drill_missile_Colour, + properties: { + die: 5, + primed: false, + }, + tick: function(pixel) { + diamond_drill_missile_function(pixel,pixel.x,pixel.y-1); + }, + category: "Drills", + density: 10000, + hardness: 0.99, + conduct: 1, + state: "solid", + maxSize: 1, +} + +elements.diamond_drill_missile_DOWN = { + color: diamond_drill_missile_Colour, + properties: { + die: 5, + primed: false, + }, + tick: function(pixel) { + diamond_drill_missile_function(pixel,pixel.x,pixel.y+1); + }, + category: "Drills", + density: 10000, + hardness: 0.99, + conduct: 1, + state: "solid", + maxSize: 1, +} + + + +void_drill_function = function(pixel, dif_x, dif_y) { + dif_x = dif_x-pixel.x + dif_y = dif_y-pixel.y + if (!outOfBounds(pixel.x+dif_x,pixel.y+dif_y)) { + pxl = pixelMap[pixel.x+dif_x][pixel.y+dif_y] + if (!isEmpty(pixel.x+dif_x,pixel.y+dif_y)) { + if (elements[pxl.element].hardness <= 1) { + delete pixelMap[pixel.x+dif_x][pixel.y+dif_y]; + } + }; + tryMove(pixel,pixel.x+dif_x,pixel.y+dif_y); + }; + doDefaults(pixel); +} + +elements.void_drill_LEFT = { + color: void_drill_Colour, + tick: function(pixel) { + void_drill_function(pixel,pixel.x-1,pixel.y); + }, + category: "Drills", + breakInto: ["metal_scrap", "void", "iron", "tin"], + tempHigh: 10000, + stateHigh: ["molten_aluminum", "void", "molten_iron", "molten_tin"], + density: 10000, + hardness: 1, + conduct: 1, + state: "solid", +} + +elements.void_drill_RIGHT = { + color: void_drill_Colour, + tick: function(pixel) { + void_drill_function(pixel,pixel.x+1,pixel.y); + }, + category: "Drills", + breakInto: ["metal_scrap", "void", "iron", "tin"], + tempHigh: 10000, + stateHigh: ["molten_aluminum", "void", "molten_iron", "molten_tin"], + density: 10000, + hardness: 1, + conduct: 1, + state: "solid", +} + +elements.void_drill_UP = { + color: void_drill_Colour, + tick: function(pixel) { + void_drill_function(pixel,pixel.x,pixel.y-1); + }, + category: "Drills", + breakInto: ["metal_scrap", "void", "iron", "tin"], + tempHigh: 10000, + stateHigh: ["molten_aluminum", "void", "molten_iron", "molten_tin"], + density: 10000, + hardness: 1, + conduct: 1, + state: "solid", +} + +elements.void_drill_DOWN = { + color: void_drill_Colour, + tick: function(pixel) { + void_drill_function(pixel,pixel.x,pixel.y+1); + }, + category: "Drills", + breakInto: ["metal_scrap", "void", "iron", "tin"], + tempHigh: 10000, + stateHigh: ["molten_aluminum", "void", "molten_iron", "molten_tin"], + density: 10000, + hardness: 1, + conduct: 1, + state: "solid", +} + + + +void_drill_missile_function = function(pixel, dif_x, dif_y) { + dif_x = dif_x-pixel.x + dif_y = dif_y-pixel.y + if (pixel.die <= 0) { + deletePixel(pixel.x, pixel.y) + explodeAt(pixel.x, pixel.y, 15); + return true + }; + if (!outOfBounds(pixel.x+dif_x,pixel.y+dif_y)) { + pxl = pixelMap[pixel.x+dif_x][pixel.y+dif_y] + if (!isEmpty(pixel.x+dif_x,pixel.y+dif_y)) { + pixel.primed = true + if (elements[pxl.element].hardness <= 1) { + delete pixelMap[pixel.x+dif_x][pixel.y+dif_y]; + } + } + else if (pixel.primed) { + pixel.die-- + return true + }; + tryMove(pixel,pixel.x+dif_x,pixel.y+dif_y); + } + else if (outOfBounds(pixel.x+dif_x, pixel.y+dif_y)) { + deletePixel(pixel.x, pixel.y) + explodeAt(pixel.x, pixel.y, 15); + }; + doDefaults(pixel); +} + +elements.void_drill_missile_LEFT = { + color: void_drill_missile_Colour, + properties: { + die: 5, + primed: false, + }, + tick: function(pixel) { + void_drill_missile_function(pixel,pixel.x-1,pixel.y); + }, + category: "Drills", + density: 10000, + hardness: 1, + conduct: 1, + state: "solid", + maxSize: 1, +} + +elements.void_drill_missile_RIGHT = { + color: void_drill_missile_Colour, + properties: { + die: 5, + primed: false, + }, + tick: function(pixel) { + void_drill_missile_function(pixel,pixel.x+1,pixel.y); + }, + category: "Drills", + density: 10000, + hardness: 1, + conduct: 1, + state: "solid", + maxSize: 1, +} + +elements.void_drill_missile_UP = { + color: void_drill_missile_Colour, + properties: { + die: 5, + primed: false, + }, + tick: function(pixel) { + void_drill_missile_function(pixel,pixel.x,pixel.y-1); + }, + category: "Drills", + density: 10000, + hardness: 1, + conduct: 1, + state: "solid", + maxSize: 1, +} + +elements.void_drill_missile_DOWN = { + color: void_drill_missile_Colour, + properties: { + die: 5, + primed: false, + }, + tick: function(pixel) { + void_drill_missile_function(pixel,pixel.x,pixel.y+1); + }, + category: "Drills", + density: 10000, + hardness: 1, + conduct: 1, + state: "solid", + maxSize: 1, +} \ No newline at end of file From 7a98c75f36ad1e18914065cc769c8d91d45230df Mon Sep 17 00:00:00 2001 From: DoobieRalsei <163950752+DoobieRalsei@users.noreply.github.com> Date: Wed, 8 May 2024 13:27:25 -0700 Subject: [PATCH 28/38] 008 can infect skin --- mods/scp.js | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 68 insertions(+), 2 deletions(-) diff --git a/mods/scp.js b/mods/scp.js index 9fff32a7..db998d13 100644 --- a/mods/scp.js +++ b/mods/scp.js @@ -4,6 +4,9 @@ window.addEventListener("load", () => { window.addEventListener("load", () => { document.getElementById("elementButton-mask_body")?.remove() }) +window.addEventListener("load", () => { + document.getElementById("elementButton-infected_skin")?.remove() +}) window.addEventListener("load", () => { document.getElementById("elementButton-infected_meat")?.remove() }) @@ -100,11 +103,73 @@ elements.frozen_008 = { state: "solid", density: 95, }, - + +elements.infected_skin = { + color: ["#11111f","#75816B","#4D6B53"], + singleColor: true, + behavior: [ + "XX|CR:stench,stench,stench,SCP_008,fly%0.15 AND CH:skin,meat>infected_skin,infected_meat%1|XX", + "CH:skin,meat>infected_skin,infected_meat%1|XX|CH:skin,meat>infected_skin,infected_meat%1", + "XX|CH:skin,meat>infected_skin,infected_meat%1|XX", + ], + tick: function(pixel) { + if (pixel.temp > 40 && Math.random() < 0.003) { + for (var i = 0; i < adjacentCoords.length; i++) { + var coords = adjacentCoords[i]; + var x = pixel.x + coords[0]; + var y = pixel.y + coords[1]; + if (isEmpty(x,y)) { + pixel.temp -= 20; + createPixel("infection",x,y) + break; + } + } + } + if (pixel.temp < 36 && Math.random() < 0.1) { + pixel.temp += 1; + } + doDefaults(pixel); + }, + reactions: { + "cell": { chance:0.01, func:function(pixel1,pixel2){ + changePixel(pixel2,"infected_skin"); + pixel2.color = pixelColorPick(pixel2,RGBToHex(pixel1.color.match(/\d+/g))) + if (pixel1.origColor) { pixel2.origColor = pixel1.origColor } + } }, + "acid": { elem1:"infection" }, + "soap": { elem1:null, elem2:null, chance:0.005 }, + "light": { stain1:"#825043" }, + "poison": { stain1:"#cc564b" }, + "poison_gas": { stain1:"#cc564b" }, + "infection": { stain1:"#cc564b" }, + "pollen": { stain1:"#cc564b" }, + "dust": { stain1:"#cc564b" }, + "flea": { stain1:"#cc564b" }, + "mushroom_spore": { stain1:"#cc564b" }, + "mushroom_stalk": { stain1:"#cc564b" }, + "chlorine": { stain1:"#cc564b" }, + "quicklime": { stain1:"#cc564b" }, + }, + category:"solids", + breakInto: [null,null,"SCP_008","infection","dust"], + temp: 37, + tempHigh: 200, + stateHigh: ["cooked_meat","cooked_meat","cooked_meat","SCP_008"], + tempLow: -18, + stateLow: "frozen_008_meat", + burn:5, + burnTime:400, + burnInto: ["cooked_meat","cooked_meat","SCP_008"], + state: "solid", + density: 1010, + conduct: 0.04, + movable: false, +}, + elements.infected_meat = { color: ["#b8b165","#b89765"], behavior: [ - "XX|CR:plague,stench,stench,SCP_008,fly%0.25 AND CH:rotten_meat,meat>infected_meat%1|XX", + "XX|CR:stench,stench,stench,SCP_008,fly%0.25 AND CH:rotten_meat,meat>infected_meat%1|XX", "SP%99 AND CH:rotten_meat,meat>infected_meat%1|XX|SP%99 AND CH:rotten_meat,meat>infected_meat%1", "XX|M1 AND CH:rotten_meat,meat>infected_meat%1|XX", ], @@ -466,6 +531,7 @@ elements.REDACTED = { ], category: "scp", state: "solid", + movable: false, }, elements.plague_doctor = { From eb5a985e5fd092afaa0c5fb04c5272d6e52fd208 Mon Sep 17 00:00:00 2001 From: Tisquares <129683151+Tisquares@users.noreply.github.com> Date: Wed, 8 May 2024 16:36:35 -0500 Subject: [PATCH 29/38] Version 2.0 of Community Desserts Added more items, changed/optimized some code, added new functions --- mods/community_desserts.js | 739 +++++++++++++++++++++++++++++++++---- 1 file changed, 672 insertions(+), 67 deletions(-) diff --git a/mods/community_desserts.js b/mods/community_desserts.js index b4ae1e81..d4e4e0c0 100644 --- a/mods/community_desserts.js +++ b/mods/community_desserts.js @@ -5,37 +5,50 @@ * * Got questions? Contact tisqbisque on Discord! * - * This version: 1.1 + * This version: 2.0 */ +// Other mods can add to this list [: +eListAdd("FRUITS",["apple","banana","blackberry","blueberry","grape","kiwi","mango","orange","peach","plum","pomegranate","rambutan","strawberry"]); +function fruitLength() { + return eLists.FRUITS.length; +} // Dulce de leche items elements.dulce_de_leche = { alias: "manjar", - color: ["#c56600","#f7a204","#ca6400","#893604"], + color: ["#c56600", "#f7a204", "#ca6400", "#893604"], category: "Community", state: "liquid", behavior: behaviors.LIQUID, reactions: { - "cream_cheese": { elem1:"dulce_de_leche", elem2:null, color1:["#DFAB73","#fbcc75","#e2aa73","#be9075"], oneway:true }, // for recipe accuracy :3 + "cream_cheese": { elem1: "dulce_de_leche", elem2: null, color1: ["#DFAB73", "#fbcc75", "#e2aa73", "#be9075"], oneway: true }, // for recipe accuracy :3 }, tempLow: -20, stateLow: "candy", tempHigh: 250, - stateHigh: ["fragrance","smoke","smoke"], + stateHigh: ["fragrance", "smoke", "smoke"], viscosity: 500, stain: 0.02, density: 1284.93, hidden: true, isFood: true, - desc: "Added in the first version of the mod.\nMade by heating Sweetened Condensed Milk at 175°C+.\nFrom undexconocidox_26419.\n" + desc: "Added in version 1.0 of Community Desserts.\nMade by heating Sweetened Condensed Milk at 175°C+.\nFrom undexconocidox_26419.\n" } elements.sweetened_condensed_milk = { - color: ["#ffe9ba","#fbd396","#fde2a9"], + alias: "sweet_milk", + color: ["#ffe9ba", "#fbd396", "#fde2a9"], category: "Community", state: "liquid", behavior: behaviors.LIQUID, + onMix: function(cmilk, jamcheck) { + if(shiftDown && elements[jamcheck.element].id === elements.jam.id && Math.random() < 0.06) { + changePixel(cmilk,"mousse"); + pixelMap[cmilk.x][cmilk.y].color = shiftColor(rgbToHex(jamcheck.color),"#272727","add"); + deletePixel(jamcheck.x,jamcheck.y); + } + }, tempLow: 0, - stateLow: ["ice_cream","sugar"], + stateLow: ["ice_cream", "sugar"], tempHigh: 175, stateHigh: "dulce_de_leche", viscosity: 5, @@ -43,29 +56,29 @@ elements.sweetened_condensed_milk = { density: 1050.83, hidden: true, isFood: true, - desc: "Added in the first version of the mod.\nMade by mixing Milk and Sugar at 85°C+.\n", + desc: "Added in version 1.0 of Community Desserts.\nMade by mixing Milk and Sugar at 85°C+.\n", } // Chocotorta items elements.cream_cheese = { - color: ["#ebe9ea","#e4dfdd","#eeeeee"], + color: ["#ebe9ea", "#e4dfdd", "#eeeeee"], category: "Community", state: "solid", behavior: behaviors.STURDYPOWDER, //reactions: { - // For future use + // For future use //}, tempHigh: 65, stateHigh: "melted_cheese", - stateHighColor: ["#fbffff","#f6f6f6"], + stateHighColor: ["#fbffff", "#f6f6f6"], hardness: 0.01, density: 980.61, hidden: true, isFood: true, - desc: "Added in the first version of the mod.\nMade by mixing Acid with Milk or Cream.\n", + desc: "Added in version 1.0 of Community Desserts.\nMade by mixing Acid with Milk or Cream at 90°C-.\n", } elements.cocoa_bean = { - color: ["#e16f51","#e28e67","#e18550","#84574d"], + color: ["#e16f51", "#e28e67", "#e18550", "#84574d"], category: "Community", state: "solid", behavior: behaviors.POWDER, @@ -78,17 +91,17 @@ elements.cocoa_bean = { stateLow: "frozen_plant", // not hidden by default // not food don't eat it - desc: "Added in the first version of the mod.\n", + desc: "Added in version 1.0 of Community Desserts.\n", } elements.cocoa_powder = { - color: ["#855344","#6d4c41","#40271d"], + color: ["#855344", "#6d4c41", "#40271d"], category: "Community", state: "solid", behavior: behaviors.POWDER, - onMix: function(powder, doughcheck) { + onMix: function (powder, doughcheck) { if (elements[doughcheck.element].id == elements.dough.id && shiftDown && Math.random() < 0.25) { - deletePixel(powder.x,powder.y); - changePixel(doughcheck,"chocolate_biscuit_dough"); + deletePixel(powder.x, powder.y); + changePixel(doughcheck, "chocolate_biscuit_dough"); } }, density: 363.5, @@ -96,7 +109,7 @@ elements.cocoa_powder = { stateHigh: "smoke", hidden: true, isFood: true, - desc: "Added in the first version of the mod.\nMade by Smashing Cocoa Bean.\n", + desc: "Added in version 1.0 of Community Desserts.\nMade by Smashing Cocoa Bean.\n", } elements.chocolate_biscuit_dough = { color: "#623727", @@ -111,7 +124,7 @@ elements.chocolate_biscuit_dough = { density: 526.9, isFood: true, hidden: true, - desc: "Added in the first version of the mod.\nMade by hard mixing Cocoa Powder with Dough.\n", + desc: "Added in version 1.0 of Community Desserts.\nMade by hard mixing Cocoa Powder with Dough.\n", } elements.chocolate_biscuit = { color: "#864B36", @@ -119,34 +132,34 @@ elements.chocolate_biscuit = { state: "solid", behavior: behaviors.STURDYPOWDER, breakInto: "crumb", - breakIntoColor: ["#af8264","#b28461","#aa7852","#a8744b"], + breakIntoColor: ["#af8264", "#b28461", "#aa7852", "#a8744b"], tempHigh: 232.2, - stateHigh: ["smoke","smoke","smoke","ash"], + stateHigh: ["smoke", "smoke", "smoke", "ash"], density: 233.96, isFood: true, hidden: true, - desc: "Added in the first version of the mod.\nMade by cooking Choco Biscuit Dough at 94°C+.\nCan be layered with other items to make chocotorta, from undexconocidox_26419.\n", + desc: "Added in version 1.0 of Community Desserts.\nMade by cooking Choco Biscuit Dough at 94°C+.\nCan be layered with other items to make chocotorta, from undexconocidox_26419.\n", } // Haupia items elements.coconut = { - color: ["#793b1e","#995c31","#5f3015"], + color: ["#793b1e", "#995c31", "#5f3015"], category: "Community", state: "solid", behavior: behaviors.POWDER, - breakInto: ["coconut_milk","tinder"], + breakInto: ["coconut_milk", "tinder"], tempHigh: 225, - stateHigh: ["steam","ash","smoke"], + stateHigh: ["steam", "ash", "smoke"], density: 822, - desc: "Added in the first version of the mod.\n", + desc: "Added in version 1.0 of Community Desserts.\n", } elements.coconut_milk = { - color: ["#f3f3f3","#e4ddcb","#f8f8f8"], + color: ["#f3f3f3", "#e4ddcb", "#f8f8f8"], category: "Community", state: "liquid", behavior: behaviors.LIQUID, reactions: { - "sugar": { elem1:null, elem2:"haupia_mix", tempMin:90 }, + "sugar": { elem1: null, elem2: "haupia_mix", tempMin: 90 }, }, tempHigh: 102, stateHigh: "steam", @@ -156,10 +169,10 @@ elements.coconut_milk = { density: 1031.33, hidden: true, isFood: true, - desc: "Added in the first version of the mod.\nMade by smashing Coconut.\n", + desc: "Added in version 1.0 of Community Desserts.\nMade by smashing Coconut.\n", } elements.haupia_mix = { - color: ["#f3f3f3","#e4ddcb","#f8f8f8"], + color: ["#f3f3f3", "#e4ddcb", "#f8f8f8"], category: "Community", state: "liquid", behavior: behaviors.LIQUID, @@ -170,55 +183,647 @@ elements.haupia_mix = { viscosity: 2.3, density: 1242.67, hidden: true, - desc: "Added in the first version of the mod.\nMade by mixing Coconut Milk and Sugar at 90°C+.\n", + desc: "Added in version 1.0 of Community Desserts.\nMade by mixing Coconut Milk and Sugar at 90°C+.\n", } elements.haupia = { - color: ["#ffffff","#f8f8f8","#f7f9f8"], + color: ["#ffffff", "#f8f8f8", "#f7f9f8"], category: "Community", state: "solid", behavior: behaviors.SUPPORT, tempHigh: 105, - stateHigh: ["steam","fragrance"], + stateHigh: ["steam", "fragrance"], density: 1300, hidden: true, isFood: true, - desc: "Added in the first version of the mod.\nMade by cooling Haupia Mix at 3°C-.\nFrom tisqbisque.\n" + desc: "Added in version 1.0 of Community Desserts.\nMade by cooling Haupia Mix at 3°C-.\nFrom tisqbisque.\n" +} + +// Pie crust items +elements.pie_crust_batter = { + alias: "pie_batter", + color: ["#efdbae", "#ffe6ab", "#eacb88"], + category: "Community", + state: "solid", + behavior: behaviors.STURDYPOWDER, + tempHigh: 180, + stateHigh: "pie_crust", + density: 233.96, + isFood: true, + hidden: true, + desc: "Added in version 2.0 of Community Desserts.\nMade by mixing Dough and Butter.\n", +} +elements.pie_crust = { + color: ["#c18d45", "#b07f3c", "#d0a352", "#b27f3a"], + category: "Community", + state: "solid", + behavior: behaviors.STURDYPOWDER, + breakInto: "crumb", + breakIntoColor: ["#af8264", "#b28461", "#aa7852", "#a8744b"], + tempHigh: 232.2, + stateHigh: ["smoke", "smoke", "smoke", "ash"], + density: 233.96, + isFood: true, + hidden: true, + desc: "Added in version 2.0 of Community Desserts.\nMade by cooking Pie Crust Batter at 180°C+.\n", +} + +// Jam and fruit items +elements.jam = { + color: ["#e14a4a","#f64040","#e72225"], + category: "Community", + state: "liquid", + behavior: behaviors.LIQUID, + tick: function (pixel) { + var madeJelly = false; + // Check left, right, up, down from jam pixel.. + if(pixel.temp >= 95) { + if(Math.random() < 0.05 && pixel.x-1 !== 0) { + if (!isEmpty(pixel.x-1,pixel.y) && pixelMap[pixel.x-1][pixel.y].element === "water") { + changePixel(pixelMap[pixel.x-1][pixel.y],"jelly"); + pixelMap[pixel.x-1][pixel.y].color = shiftColor(rgbToHex(pixel.color),"#272727","sub"); + madeJelly = true; + }; + }; + if(Math.random() < 0.05 && pixel.x+1 !== width) { + if (!isEmpty(pixel.x+1,pixel.y) && pixelMap[pixel.x+1][pixel.y].element === "water") { + changePixel(pixelMap[pixel.x+1][pixel.y],"jelly"); + pixelMap[pixel.x+1][pixel.y].color = shiftColor(rgbToHex(pixel.color),"#272727","sub"); + madeJelly = true; + }; + }; + if(Math.random() < 0.05 && pixel.y-1 !== 0) { + if (!isEmpty(pixel.x,pixel.y-1) && pixelMap[pixel.x][pixel.y-1].element === "water") { + changePixel(pixelMap[pixel.x][pixel.y-1],"jelly"); + pixelMap[pixel.x][pixel.y-1].color = shiftColor(rgbToHex(pixel.color),"#272727","sub"); + madeJelly = true; + }; + }; + if(Math.random() < 0.05 && pixel.y+1 !== height) { + if (!isEmpty(pixel.x,pixel.y+1) && pixelMap[pixel.x][pixel.y+1].element === "water") { + changePixel(pixelMap[pixel.x][pixel.y+1],"jelly"); + pixelMap[pixel.x][pixel.y+1].color = shiftColor(rgbToHex(pixel.color),"#272727","sub"); + madeJelly = true; + }; + }; + if(madeJelly) { + deletePixel(pixel.x,pixel.y); + } + } + }, + tempHigh: 160, + stateHigh: ["smoke", "smoke", "sugar"], + tempLow: -5, + stateLowName: "frozen_jam", + stateLowColorMultiplier: 1.1, + viscosity: 200000, + stain: 0.3, + density: 1333.5, + isFood: true, + hidden: true, + desc: "Added in version 2.0 of Community Desserts.\nMade by smashing a fruit.\n", +} +elements.frozen_jam = { + stateHighColorMultiplier: 0.91, +} +elements.fruit_seed = { // similar to pinecone + color: ["#5c3333","#472727","#311b1b"], + tick: function(pixel) { + if (!tryMove(pixel,pixel.x,pixel.y+1) && pixelTicks-pixel.start > 50) { + if (pixel.h === undefined) { // set to even number between 8 and 26 + pixel.h = Math.floor(Math.random()*9)*2+8; + pixel.lh = pixel.h; + } + if (Math.random() < 0.02 && pixel.h > 0 && pixel.temp < 100) { + if (!outOfBounds(pixel.x,pixel.y+1)) { // grow roots + var dirtPixel = pixelMap[pixel.x][pixel.y+1]; + if (dirtPixel && (eLists.SOIL.indexOf(dirtPixel.element) !== -1 || dirtPixel.element === "grass")) { + changePixel(dirtPixel,"root"); + } + } + if (isEmpty(pixel.x,pixel.y-1) && tryMove(pixel,pixel.x,pixel.y-1)) { + createPixel("wood",pixel.x,pixel.y+1); + pixel.h --; + } + } + else if (pixel.h === 0) { + changePixel(pixel,"fruit_tree"); + pixelMap[pixel.x][pixel.y].h = pixel.lh; + } + } + doDefaults(pixel); + }, + tempHigh: 500, + stateHigh: "wood", + burn: 5, + burnTime: 100, + category: "Community", + state: "solid", + density: 1500, + cooldown: defaultCooldown, + seed: true, + desc: "Added in version 2.0 of Community Desserts.\nGrows into Fruit Tree.\n" +} +elements.fruit_tree = { // like sapling + color: ["#007a00","#0a910a","#036903"], + tick: function (pixel) { + if (pixel.h > 0 && pixelTicks % (50+pixel.h) === 0) { + // extend to the left and right, giving the next h-1 + // The taller the tree, the longer the umbrella + if (isEmpty(pixel.x-1,pixel.y)) { + createPixel("fruit_tree",pixel.x-1,pixel.y); + pixelMap[pixel.x-1][pixel.y].h = pixel.h-2; + } + if (isEmpty(pixel.x+1,pixel.y)) { + createPixel("fruit_tree",pixel.x+1,pixel.y); + pixelMap[pixel.x+1][pixel.y].h = pixel.h-2; + } + if (isEmpty(pixel.x,pixel.y-1)) { + createPixel("fruit_tree",pixel.x,pixel.y-1); + } + } + else if(isEmpty(pixel.x,pixel.y+1) && Math.random() < 0.0005 ) { + createPixel(eLists.FRUITS[Math.floor(Math.random()*fruitLength())],pixel.x,pixel.y+1); + } + doDefaults(pixel); + }, + reactions: { + "vinegar": { elem1:"dead_plant", elem2:null, chance:0.035 }, + "baking_soda": { elem1:"dead_plant", elem2:null, chance:0.01 }, + "bleach": { elem1:"dead_plant", elem2:null, chance:0.05 }, + "alcohol": { elem1:"dead_plant", elem2:null, chance:0.035 } + }, + category: "Community", + tempHigh: 100, + stateHigh: "dead_plant", + burn:45, + burnTime:75, + burnInto: ["dead_plant","dead_plant","dead_plant","dead_plant","fruit_seed"], + breakInto: ["dead_plant","dead_plant","dead_plant","dirt","sap"], + state: "solid", + density: 1050, + seed: "fruit_seed", + hidden: true, + movable: false, + desc: "Added in version 2.0 of Community Desserts.\nMay drop a random fruit. Current # of fruits: " + (fruitLength()-1) +".\n", +} +elements.apple = { + color: ["#c6de70","#efdc5c","#c75833","#bd3838"], + category: "Community", + state: "solid", + behavior: behaviors.POWDER, + reactions: { + "rock": { elem1:"juice", chance:0.1, color1:"#f5cb40" }, + "concrete": { elem1:"juice", chance:0.1, color1:"#f5cb40" }, + "basalt": { elem1:"juice", chance:0.1, color1:"#f5cb40" }, + "limestone": { elem1:"juice", chance:0.1, color1:"#f5cb40" }, + "tuff": { elem1:"juice", chance:0.1, color1:"#f5cb40" }, + "acid": { elem1:"juice", color1:"#f5cb40" }, + "acid_gas": { elem1:"juice", color1:"#f5cb40" }, + }, + breakInto: "jam", + breakIntoColor: ["#ddae16","#fdcd53","#fed75e","#e9b429"], + tempHigh: 256, + stateHigh: ["steam", "sugar"], + density: 460.72, + isFood: true, + hidden: true, + desc: "Added in version 2.0 of Community Desserts.\n" +} +elements.banana = { + color: ["#f8e662","#ffe312","#fee402","#fed601"], + category: "Community", + state: "solid", + behavior: behaviors.POWDER, + reactions: { + "rock": { elem1:"juice", chance:0.1, color1:"#fae7b5" }, + "concrete": { elem1:"juice", chance:0.1, color1:"#fae7b5" }, + "basalt": { elem1:"juice", chance:0.1, color1:"#fae7b5" }, + "limestone": { elem1:"juice", chance:0.1, color1:"#fae7b5" }, + "tuff": { elem1:"juice", chance:0.1, color1:"#fae7b5" }, + "acid": { elem1:"juice", color1:"#fae7b5" }, + "acid_gas": { elem1:"juice", color1:"#fae7b5" }, + }, + breakInto: "jam", + breakIntoColor: ["#d6aa46","#e3b544","#cda23a","#e3c869"], + tempHigh: 256, + stateHigh: ["steam", "sugar"], + density: 634.01, + isFood: true, + hidden: true, + desc: "Added in version 2.0 of Community Desserts.\n" +} +elements.blackberry = { + color: ["#5c2f3e","#281c2a","#02060f","#19252c"], + category: "Community", + state: "solid", + behavior: behaviors.POWDER, + reactions: { + "rock": { elem1:"juice", chance:0.1, color1:"#7b1e57" }, + "concrete": { elem1:"juice", chance:0.1, color1:"#7b1e57" }, + "basalt": { elem1:"juice", chance:0.1, color1:"#7b1e57" }, + "limestone": { elem1:"juice", chance:0.1, color1:"#7b1e57" }, + "tuff": { elem1:"juice", chance:0.1, color1:"#7b1e57" }, + "acid": { elem1:"juice", color1:"#7b1e57" }, + "acid_gas": { elem1:"juice", color1:"#7b1e57" }, + }, + breakInto: "jam", + breakIntoColor: ["#481317","#50030d","#250b0c","#62020d"], + tempHigh: 256, + stateHigh: ["steam", "sugar"], + density: 608.65, + isFood: true, + hidden: true, + desc: "Added in version 2.0 of Community Desserts.\n" +} +elements.blueberry = { + color: ["#385f9e","#386891","#4874b5","#4b8ee3"], + category: "Community", + state: "solid", + behavior: behaviors.POWDER, + reactions: { + "rock": { elem1:"juice", chance:0.1, color1:"#933487" }, + "concrete": { elem1:"juice", chance:0.1, color1:"#933487" }, + "basalt": { elem1:"juice", chance:0.1, color1:"#933487" }, + "limestone": { elem1:"juice", chance:0.1, color1:"#933487" }, + "tuff": { elem1:"juice", chance:0.1, color1:"#933487" }, + "acid": { elem1:"juice", color1:"#933487" }, + "acid_gas": { elem1:"juice", color1:"#933487" }, + }, + breakInto: "jam", + breakIntoColor: ["#48132c","#6f3a56","#13030d","#351123"], + tempHigh: 256, + stateHigh: ["steam", "sugar"], + density: 625.56, + isFood: true, + hidden: true, + desc: "Added in version 2.0 of Community Desserts.\n" +} +elements.kiwi = { + color: ["#be8456","#cb8a3e","#bc7742","#975e25"], + category: "Community", + state: "solid", + behavior: behaviors.POWDER, + reactions: { + "rock": { elem1:"juice", chance:0.1, color1:"#eef299" }, + "concrete": { elem1:"juice", chance:0.1, color1:"#eef299" }, + "basalt": { elem1:"juice", chance:0.1, color1:"#eef299" }, + "limestone": { elem1:"juice", chance:0.1, color1:"#eef299" }, + "tuff": { elem1:"juice", chance:0.1, color1:"#eef299" }, + "acid": { elem1:"juice", color1:"#eef299" }, + "acid_gas": { elem1:"juice", color1:"#eef299" }, + }, + breakInto: "jam", + breakIntoColor: ["#beb43c","#b7ac41","#8d7614","#755e11"], + tempHigh: 256, + stateHigh: ["steam", "sugar"], + density: 748.14, + isFood: true, + hidden: true, + desc: "Added in version 2.0 of Community Desserts.\n" +} +elements.mango = { + color: ["#ff1f25","#f97231","#fdeb1d","#85b624"], + category: "Community", + state: "solid", + behavior: behaviors.POWDER, + reactions: { + "rock": { elem1:"juice", chance:0.1, color1:"#ffbf34" }, + "concrete": { elem1:"juice", chance:0.1, color1:"#ffbf34" }, + "basalt": { elem1:"juice", chance:0.1, color1:"#ffbf34" }, + "limestone": { elem1:"juice", chance:0.1, color1:"#ffbf34" }, + "tuff": { elem1:"juice", chance:0.1, color1:"#ffbf34" }, + "acid": { elem1:"juice", color1:"#ffbf34" }, + "acid_gas": { elem1:"juice", color1:"#ffbf34" }, + }, + breakInto: "jam", + breakIntoColor: ["#ef9d00","#fdb005","#fed803","#fbdd00"], + tempHigh: 256, + stateHigh: ["steam", "sugar"], + density: 697.41, + isFood: true, + hidden: true, + desc: "Added in version 2.0 of Community Desserts.\n" +} +elements.orange = { + color: ["#ffa500","#ff951d","#ffb20a","#f68310"], + category: "Community", + state: "solid", + behavior: behaviors.POWDER, + reactions: { + "rock": { elem1:"juice", chance:0.1, color1:"#f7ca05" }, + "concrete": { elem1:"juice", chance:0.1, color1:"#f7ca05" }, + "basalt": { elem1:"juice", chance:0.1, color1:"#f7ca05" }, + "limestone": { elem1:"juice", chance:0.1, color1:"#f7ca05" }, + "tuff": { elem1:"juice", chance:0.1, color1:"#f7ca05" }, + "acid": { elem1:"juice", color1:"#f7ca05" }, + "acid_gas": { elem1:"juice", color1:"#f7ca05" }, + }, + breakInto: "jam", + breakIntoColor: ["#edb848","#f6b23e","#e59e12","#eca528"], + tempHigh: 256, + stateHigh: ["steam", "sugar"], + density: 435, // these oranges have peels so they float [: + isFood: true, + hidden: true, + desc: "Added in version 2.0 of Community Desserts.\n" +} +elements.peach = { + color: ["#ffc612","#f78a00","#d43d22","#a41622"], + category: "Community", + state: "solid", + behavior: behaviors.POWDER, + reactions: { + "rock": { elem1:"juice", chance:0.1, color1:"#ffc663" }, + "concrete": { elem1:"juice", chance:0.1, color1:"#ffc663" }, + "basalt": { elem1:"juice", chance:0.1, color1:"#ffc663" }, + "limestone": { elem1:"juice", chance:0.1, color1:"#ffc663" }, + "tuff": { elem1:"juice", chance:0.1, color1:"#ffc663" }, + "acid": { elem1:"juice", color1:"#ffc663" }, + "acid_gas": { elem1:"juice", color1:"#ffc663" }, + }, + breakInto: "jam", + breakIntoColor: ["#f59400","#f29e04","#e9a230","#eead37"], + tempHigh: 256, + stateHigh: ["steam", "sugar"], + density: 650.92, + isFood: true, + hidden: true, + desc: "Added in version 2.0 of Community Desserts.\n" +} +elements.plum = { + color: ["#952444","#5a2346","#3e2141","#450a1a"], + category: "Community", + state: "solid", + behavior: behaviors.POWDER, + reactions: { + "rock": { elem1:"juice", chance:0.1, color1:"#a10013" }, + "concrete": { elem1:"juice", chance:0.1, color1:"#a10013" }, + "basalt": { elem1:"juice", chance:0.1, color1:"#a10013" }, + "limestone": { elem1:"juice", chance:0.1, color1:"#a10013" }, + "tuff": { elem1:"juice", chance:0.1, color1:"#a10013" }, + "acid": { elem1:"juice", color1:"#a10013" }, + "acid_gas": { elem1:"juice", color1:"#a10013" }, + }, + breakInto: "jam", + breakIntoColor: ["#a9050c","#55081a","#781123","#4f1e2f"], + tempHigh: 256, + stateHigh: ["steam", "sugar"], + density: 697.41, + isFood: true, + hidden: true, + desc: "Added in version 2.0 of Community Desserts.\n" +} +elements.pomegranate = { + color: ["#fd4127","#be2216","#aa1519","#330104"], + category: "Community", + state: "solid", + behavior: behaviors.POWDER, + reactions: { + "rock": { elem1:"juice", chance:0.1, color1:"#c9002c" }, + "concrete": { elem1:"juice", chance:0.1, color1:"#c9002c" }, + "basalt": { elem1:"juice", chance:0.1, color1:"#c9002c" }, + "limestone": { elem1:"juice", chance:0.1, color1:"#c9002c" }, + "tuff": { elem1:"juice", chance:0.1, color1:"#c9002c" }, + "acid": { elem1:"juice", color1:"#c9002c" }, + "acid_gas": { elem1:"juice", color1:"#c9002c" }, + }, + breakInto: "jam", + breakIntoColor: ["#4b0000","#6b0900","#a3000e","#c80402"], + tempHigh: 256, + stateHigh: ["steam", "sugar"], + density: 1150, + isFood: true, + hidden: true, + desc: "Added in version 2.0 of Community Desserts.\n" +} +elements.rambutan = { + color: ["#9a1408","#eb2814","#9bf05f","#f6ffff"], + category: "Community", + state: "solid", + behavior: behaviors.POWDER, + reactions: { + "rock": { elem1:"juice", chance:0.1, color1:"#eae6dd" }, + "concrete": { elem1:"juice", chance:0.1, color1:"#eae6dd" }, + "basalt": { elem1:"juice", chance:0.1, color1:"#eae6dd" }, + "limestone": { elem1:"juice", chance:0.1, color1:"#eae6dd" }, + "tuff": { elem1:"juice", chance:0.1, color1:"#eae6dd" }, + "acid": { elem1:"juice", color1:"#eae6dd" }, + "acid_gas": { elem1:"juice", color1:"#eae6dd" }, + }, + breakInto: "jam", + breakIntoColor: ["#60271a","#773119","#841e01","#953810"], + tempHigh: 256, + stateHigh: ["steam", "sugar"], + density: 281, + isFood: true, + hidden: true, + desc: "Added in version 2.0 of Community Desserts.\n" +} +elements.strawberry = { + color: ["#c53415","#ea1720","#f1232d","#ea7e72"], + category: "Community", + state: "solid", + behavior: behaviors.POWDER, + reactions: { + "rock": { elem1:"juice", chance:0.1, color1:"#f53c28" }, + "concrete": { elem1:"juice", chance:0.1, color1:"#f53c28" }, + "basalt": { elem1:"juice", chance:0.1, color1:"#f53c28" }, + "limestone": { elem1:"juice", chance:0.1, color1:"#f53c28" }, + "tuff": { elem1:"juice", chance:0.1, color1:"#f53c28" }, + "acid": { elem1:"juice", color1:"#f53c28" }, + "acid_gas": { elem1:"juice", color1:"#f53c28" }, + }, + breakInto: "jam", + // Jam is strawberry-colored by default akschully + tempHigh: 256, + stateHigh: ["steam", "sugar"], + density: 642.47, + isFood: true, + hidden: true, + desc: "Added in version 2.0 of Community Desserts.\n" +} + +// Vanilla items +elements.vanilla_bean = { + alias: "vanilla", + color: ["#362C1D","#6f4a3b","#764735","#593b30"], + category: "Community", + state: "solid", + behavior: behaviors.POWDER, + reactions: { + "rock": { elem1:"vanilla_extract", chance:0.1 }, + "concrete": { elem1:"vanilla_extract", chance:0.1 }, + "basalt": { elem1:"vanilla_extract", chance:0.1 }, + "limestone": { elem1:"vanilla_extract", chance:0.1 }, + "tuff": { elem1:"vanilla_extract", chance:0.1 }, + "acid": { elem1:"vanilla_extract" }, + "acid_gas": { elem1:"vanilla_extract", }, + }, + breakInto: "vanilla_extract", + tempHigh: 315, + stateHigh: ["steam","ash"], + density: 1100, + desc: "Added in version 2.0 of Community Desserts.\n" +} +elements.vanilla_extract = { + // Will have more application one day + color: ["#5e1b00","#321501"], + category: "Community", + state: "liquid", + behavior: behaviors.LIQUID, + tempHigh: 285, + stateHigh: ["steam", "alcohol_gas"], + density: 879.16, + viscosity: 5000, + stain: 0.45, + hidden: true, + desc: "Added in version 2.0 of Community Desserts.\nMade by smashing Vanilla Bean.\nFrom lethanaero.\n", +} + +// Mousse items +elements.mousse = { + color: ["#fffdce","#fffee2","#fffff5"], + category: "Community", + state: "liquid", + behavior: behaviors.LIQUID, + tempHigh: 286, + stateHigh: ["steam", "smoke", "smoke", "sugar"], + density: 1707.61, + viscosity: 5000000, // is there a limit? + hidden: true, + desc: "Added in version 2.0 of Community Desserts.\nMade by hard mixing Jam and Sweetened Condensed Milk.\nFrom brickmaster0513.\n", +} + +// Tiramisu items +elements.egg_ribbons = { + color: ["#ffdc5e","#ffe07c"], + category: "Community", + state: "liquid", + behavior: behaviors.LIQUID, + tempHigh: 150, + stateHigh: ["smoke","hard_yolk"], + tempLow: 0, + stateLow: ["sugar","hard_yolk"], + density: 1227.5, + viscosity: 300, + hidden: true, + desc: "Added in version 2.0 of Community Desserts.\nMade by hard mixing Yolk and Sugar.\n", +} +elements.mascarpone = { + color: ["#faf9f1","#faf9f7"], + category: "Community", + state: "liquid", + behavior: behaviors.LIQUID, + reactions: { + "egg_ribbons": { elem1:"tiramisu_cream", elem2:null } + }, + tempHigh: 218, + stateHigh: ["smoke","smoke"], + density: 946.79, + viscosity: 30000, + hidden: true, + desc: "Added in version 2.0 of Community Desserts.\nMade by mixing Acid with Milk or Cream at 85°C+.\n", +} +elements.tiramisu_cream = { + color: ["#fff0d1","#fbefd7"], + category: "Community", + state: "liquid", + behavior: behaviors.LIQUID, + tempHigh: 218, + stateHigh: ["smoke","smoke"], + density: 946.79, + viscosity: 30000, + hidden: true, + desc: "Added in version 2.0 of Community Desserts.\nMade by mixing Egg Ribbons with Mascarpone.\nCan be layered with other items to make tiramisu, from tisqbisque.\n", } // Adjusting existing elements here -elements.milk.reactions = { - "melted_chocolate": { elem1:"chocolate_milk", elem2:null }, - "chocolate": { elem1:"chocolate_milk", elem2:"melted_chocolate", chance:0.05 }, - "coffee_ground": { elem1:"chocolate_milk", chance:0.05 }, - "juice": { elem1:"fruit_milk", elem2:null, chance:0.05 }, - "soda": { elem1:"pilk", elem2:null, chance:0.1 }, - "yolk": { elem1:"eggnog", elem2:null, chance:0.1 }, - "cell": { elem1:"yogurt", chance:0.1 }, - "ash": { elem1:"soap", chance:0.1 }, - "dirt": { elem1: null, elem2: "mud" }, - "sand": { elem1: null, elem2: "wet_sand" }, - "clay_soil": { elem1: null, elem2: "clay" }, - "caramel": { color1:"#C8B39A", elem2:null, chance:0.05 }, - // Start mod items here - "sugar": { elem1:"sweetened_condensed_milk", elem2:null, chance:0.05, tempMin:85 }, - "acid": { elem1:null, elem2:"cream_cheese", chance:0.8 }, -} +if (!elements.milk.reactions) { elements.milk.reactions = {} }; +elements.milk.reactions.acid = { elem1: null, elem2: "cream_cheese", chance: 0.8 }; +elements.milk.reactions.sugar = { elem1: "sweetened_condensed_milk", elem2: null, chance: 0.05, tempMin: 85 }; -elements.cream.reactions = { - "dirt": { elem1: null, elem2: "mud" }, - "sand": { elem1: null, elem2: "wet_sand" }, - "clay_soil": { elem1: null, elem2: "clay" }, - "melted_chocolate": { color1:"#664934", elem2:null }, - "chocolate": { color1:"#664934", elem2:"melted_chocolate", chance:0.05 }, - "juice": { elem1:"fruit_milk", elem2:null, chance:0.05 }, - "soda": { elem1:"pilk", elem2:null, chance:0.1 }, - "yolk": { elem1:"#eggnog", elem2:null, chance:0.1 }, - "caramel": { color1:"#C8B39A", chance:0.05 }, - "sugar": { elem2:null, chance:0.005}, - // Start mod items here - "acid": { elem1:null, elem2:"cream_cheese", chance:0.8 }, +if (!elements.cream.reactions) { elements.cream.reactions = {} }; +elements.cream.reactions.acid = { elem1: "cream_cheese", elem2: null, chance: 0.8, tempMax:90 }; +if (!elements.acid.reactions) { elements.acid.reactions = {} }; +elements.acid.reactions.cream = { elem1: null, elem2: "mascarpone", chance: 0.5, tempMin:85 }; + +if (!elements.dough.reactions) { elements.dough.reactions = {} }; +elements.dough.reactions.butter = { elem1: "pie_crust_batter", elem2: null, chance: 0.05 }; + +if(elements.sugar.reactions.grape) { delete elements["sugar"].reactions.grape; }; // I would remove the reactions entirely but I don't want to mess with other mods +if(elements.caramel.reactions.grape) { delete elements["caramel"].reactions.grape; }; +if(elements.grape.reactions.water) { delete elements["grape"].reactions.water }; +if(elements.grape.reactions.sugar_water) { delete elements["grape"].reactions.sugar_water }; +if (!elements.grape.hidden) { elements.grape.hidden = true }; +elements.grape.breakInto = "jam"; + +if (!elements.jelly.desc) { elements.jelly.desc = "Changed in version 2.0 of Community Desserts.\nMade by mixing Jam and Water at temperatures 95°C+.\n" }; +if (!elements.jelly.hidden) { elements.jelly.hidden = true }; +elements.jelly.viscosity = 150000; +elements.jelly.stain = 0.25; + +elements.yolk.onMix = function(pixel,sugarcheck) { + if (elements[sugarcheck.element].id == elements.sugar.id && shiftDown && Math.random() < 0.35) { + deletePixel(sugarcheck.x, sugarcheck.y); + changePixel(pixel, "egg_ribbons"); + } } // Mod items first -elements.acid.ignore = ["cream_cheese","cream","milk", - "glass","rad_glass","glass_shard","rad_shard","stained_glass","baked_clay","acid_gas","neutral_acid","acid_cloud","water","salt_water","sugar_water","dirty_water","copper","gold","porcelain","plastic","bead","microplastic","molten_plastic","pool_water","chlorine","hydrogen","gold_coin","silver","nickel","calcium","bone"]; \ No newline at end of file +elements.acid.ignore = ["cream_cheese", "cream", "milk", "mascarpone", + "glass", "rad_glass", "glass_shard", "rad_shard", "stained_glass", "baked_clay", "acid_gas", "neutral_acid", "acid_cloud", "water", "salt_water", "sugar_water", "dirty_water", "copper", "gold", "porcelain", "plastic", "bead", "microplastic", "molten_plastic", "pool_water", "chlorine", "hydrogen", "gold_coin", "silver", "nickel", "calcium", "bone"]; + +// For new colors +function shiftColor(base, change, direction) { + const colorRegEx = /^\#?[A-Fa-f0-9]{6}$/; + + // Missing parameter(s) + if (!base || !change) { + console.log("Parameter absent!"); + return '#000000'; + } + // Invalid parameter(s) + if (!base.match(colorRegEx) || !change.match(colorRegEx)) { + console.log("Parameter bad!"); + return '#000000'; + } + + // Remove any '#' + base = base.replace(/\#/g, ''); + change = change.replace(/\#/g, ''); + + // Build new color + let newColor = ''; + for (let i = 0; i < 3; i++) { + const basePiece = parseInt(base.substring(i * 2, i * 2 + 2), 16); + const changePiece = parseInt(change.substring(i * 2, i * 2 + 2), 16); + let newPiece = ''; + + if (direction === 'add') { // Adding a lighter color makes it darker. #000000 does effectively nothing! #ffffff makes it fully white! + newPiece = (basePiece + changePiece); + newPiece = newPiece > 255 ? 255 : newPiece; + } + if (direction === 'sub') { // Subtracting a darker color makes it closer to original. #000000 does effectively nothing! #ffffff makes it fully black! + newPiece = (basePiece - changePiece); + newPiece = newPiece < 0 ? 0 : newPiece; + } + + newPiece = newPiece.toString(16); + newPiece = newPiece.length < 2 ? '0' + newPiece : newPiece; + newColor += newPiece; + } + + return '#' + newColor; +} + +function rgbToHex(rgbObj) { + var values = rgbObj.substring(rgbObj.indexOf('(') + 1, rgbObj.lastIndexOf(')')).split(','); + var r = parseInt(values[0]); + var g = parseInt(values[1]); + var b = parseInt(values[2]); + return "#" + componentToHex(r) + componentToHex(g) + componentToHex(b); +} +function componentToHex(c) { + let hex = c.toString(16); + return hex.length == 1 ? "0" + hex : hex; +} \ No newline at end of file From 1d20be9f009e5fa6e50bf2353f680f843fd758ee Mon Sep 17 00:00:00 2001 From: slweeb <91897291+slweeb@users.noreply.github.com> Date: Thu, 9 May 2024 12:20:35 -0400 Subject: [PATCH 30/38] Update mod-list.html --- mod-list.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod-list.html b/mod-list.html index 45c8f386..1b8ebd46 100644 --- a/mod-list.html +++ b/mod-list.html @@ -226,7 +226,7 @@ Food & Cooking aChefsDream.jsAdds more foods, animals, tools and many other cooking related items. Updates can be found in this YouTube PlaylistSquareScreamYT aChefsDream_beta.jsBeta testing for aChefsDream. The code can be found on GitHubSquareScreamYT -bananas.jsAdds bananas and banana plantsAlice' +bananas.jsAdds bananas and banana plantsAlice CherrySoda.jsAdds materials to make Cherry soda. Benzaldehyde + seltzer = Cherrysoda.guzzo86 community_desserts.jsAdds various desserts from community suggestionsTisquares greenitemsandmore.jsAdds various green things, including apples and more foodzonneschijn7 From 904122e4afadb7de9b27bde6d4ddcc0e802cd489 Mon Sep 17 00:00:00 2001 From: DoobieRalsei <163950752+DoobieRalsei@users.noreply.github.com> Date: Thu, 9 May 2024 09:26:52 -0700 Subject: [PATCH 31/38] True skin infection --- mods/scp.js | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/mods/scp.js b/mods/scp.js index db998d13..9dd1828b 100644 --- a/mods/scp.js +++ b/mods/scp.js @@ -58,6 +58,8 @@ elements.SCP_008 = { reactions: { "head": { elem1:null, elem2:"z_head" , chance:0.5 }, "body": { elem1:null, elem2:"z_body" , chance:0.5 }, + "skin": { elem1:null, elem2: ["infected_skin","infected_skin","infected_meat"] , chance:0.3 }, + "blood": { elem1:null, elem2:"infection" , chance:0.6 }, "meat": { elem1:null, elem2:"infected_meat" , chance:0.4 }, "rotten_meat": { elem1:null, elem2:"infected_meat" , chance:0.5 }, "frozen_meat": { elem1:null, elem2:"frozen_infected_meat" , chance:0.3 }, @@ -89,6 +91,8 @@ elements.frozen_008 = { reactions: { "head": { elem1:null, elem2:"z_head" , chance:0.4 }, "body": { elem1:null, elem2:"z_body" , chance:0.4 }, + "skin": { elem1:null, elem2:"frozen_infected_meat" , chance:0.4 }, + "blood": { elem1:null, elem2:"infection" , chance:0.6 }, "meat": { elem1:null, elem2:"frozen_infected_meat" , chance:0.4 }, "rotten_meat": { elem1:null, elem2:"frozen_infected_meat" , chance:0.5 }, "frozen_meat": { elem1:null, elem2:"frozen_infected_meat" , chance:0.4 }, @@ -108,9 +112,9 @@ elements.infected_skin = { color: ["#11111f","#75816B","#4D6B53"], singleColor: true, behavior: [ - "XX|CR:stench,stench,stench,SCP_008,fly%0.15 AND CH:skin,meat>infected_skin,infected_meat%1|XX", - "CH:skin,meat>infected_skin,infected_meat%1|XX|CH:skin,meat>infected_skin,infected_meat%1", - "XX|CH:skin,meat>infected_skin,infected_meat%1|XX", + "XX|CR:stench,stench,stench,SCP_008,fly%0.05 AND CH:meat>infected_meat%1|XX", + "CH:meat>infected_meat%1|XX|CH:meat>infected_meat%1", + "XX|CH:meat>infected_meat%1|XX", ], tick: function(pixel) { if (pixel.temp > 40 && Math.random() < 0.003) { @@ -136,6 +140,12 @@ elements.infected_skin = { pixel2.color = pixelColorPick(pixel2,RGBToHex(pixel1.color.match(/\d+/g))) if (pixel1.origColor) { pixel2.origColor = pixel1.origColor } } }, + "skin": { chance:0.01, func:function(pixel1,pixel2){ + changePixel(pixel2,"infected_skin"); + pixel2.color = pixelColorPick(pixel2,RGBToHex(pixel1.color.match(/\d+/g))) + if (pixel1.origColor) { pixel2.origColor = pixel1.origColor } + } }, + "blood": { elem2:"infection" , chance:0.6 }, "acid": { elem1:"infection" }, "soap": { elem1:null, elem2:null, chance:0.005 }, "light": { stain1:"#825043" }, @@ -180,6 +190,8 @@ elements.infected_meat = { "dirty_water": { elem2:"broth", tempMin:70, color2:"#d7db69" }, "seltzer": { elem2:"dirty_water" }, "fly": { elem1: [null,null,"SCP_008"] , elem2: ["dead_bug","dead_bug","SCP_008"] , chance:0.2}, + "blood": { elem2:"infection" , chance:0.6 }, + "skin": { elem2:"infected_skin" , chance:0.6 }, }, tempHigh: 300, stateHigh: ["SCP_008","ash","ammonia"], @@ -209,6 +221,7 @@ elements.frozen_infected_meat = { "sugar_water": { elem2:"dirty_water" }, "seltzer": { elem2:"dirty_water" }, "fly": { elem2: ["dead_bug","dead_bug","SCP_008"] , chance:0.2}, + "blood": { elem2:"infection" , chance:0.6 }, }, temp: -20, tempHigh: 10, From 03ea71c39e444ae2d978e0ae3129c7b796dac476 Mon Sep 17 00:00:00 2001 From: Mecoolnotcool <106288499+Mecoolnotcool@users.noreply.github.com> Date: Thu, 9 May 2024 18:15:54 -0500 Subject: [PATCH 32/38] Add files via upload --- mods/Natural_disasters.js | 207 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 207 insertions(+) create mode 100644 mods/Natural_disasters.js diff --git a/mods/Natural_disasters.js b/mods/Natural_disasters.js new file mode 100644 index 00000000..259efd8e --- /dev/null +++ b/mods/Natural_disasters.js @@ -0,0 +1,207 @@ +//mod made by imilkflamingos + + +function countNeighbors(pixel,target){ + var targeted = 0; + for (var i = 0; i < squareCoords.length; i++) { + var coord = squareCoords[i]; + var x = pixel.x+coord[0]; + var y = pixel.y+coord[1]; + if (!isEmpty(x,y, true)) { + var otherPixel = pixelMap[x][y]; + if (otherPixel.element == target){ + targeted = targeted + 1 + } + } + } + return targeted; +} + +//made by Fioushemastor +function getDistance(x1, y1, x2, y2) { + return Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2)); + } + + function getNearestPixel( posX,posY, targetElement) { + let nearestPixel + let minDistance = Infinity + + //the stuff + for (let index in pixelMap) { + for (let pixel of pixelMap[index]) { + if (pixel == undefined) continue; + if (pixel.element == targetElement) { + let distance = getDistance(pixel.x, pixel.y, posX, posY); + if (distance < minDistance) { + minDistance = distance; + nearestPixel = pixel; + } + } + } + } + return nearestPixel + } +// Rest made me + +function getRandomInt (min, max) { + return Math.floor(Math.random() * (max - min + 1)) + min; +} +function createEarthQuakeRand() { + const chance = Math.random(); + if ( chance <= 0.005 ) { + var randY = getRandomInt(60,85) + var randX = getRandomInt(1,163) + if(isEmpty(randX,randY)) { + createPixel('earthquake',randX,randY) + } + else { + changePixel(pixelMap[randX][randY],'earthquake') + } + } + +} +function createTsunamiRand(){ + var randX = getRandomInt(1,163) + const ClosestPixel = getNearestPixel(randX,25,'water') + if(ClosestPixel) { + var neighbors = countNeighbors(ClosestPixel,'water') + if (isEmpty(ClosestPixel.x,ClosestPixel.y-1)) { + const chance = Math.random(); + if ( chance <= 0.001 && countNeighbors(ClosestPixel,'water') >= 3) { + createPixel('tsunami',ClosestPixel.x,ClosestPixel.y-1) + } + } + } + +} +function createWildFireRand(){ + var randX = getRandomInt(1,163) + const ClosestPixel = getNearestPixel(randX,25,'plant') + if(ClosestPixel) { + if (!isEmpty(ClosestPixel.x,ClosestPixel.y)) { + const chance = Math.random(); + if ( chance <= 0.0005) { + ClosestPixel.burning = true; + } + } + } + +} +function createMetorShower(){ + +} + +function createCloud(pixel, type) { + for (let i = 0; i < 70; i++) { + if(isEmpty(pixel.x-i,pixel.y) ) { + createPixel(type,pixel.x-i,pixel.y, ); + } + if(isEmpty(pixel.x+i,pixel.y) ) { + createPixel(type,pixel.x+i,pixel.y, ); + } + if(isEmpty(pixel.x-i,pixel.y-1) ) { + createPixel(type,pixel.x-i,pixel.y-1, ); + } + if(isEmpty(pixel.x+i,pixel.y-1) ) { + createPixel(type,pixel.x+i,pixel.y-1, ); + } + if(isEmpty(pixel.x-i,pixel.y+1) ) { + createPixel(type,pixel.x-i,pixel.y+1, ); + } + if(isEmpty(pixel.x+i,pixel.y+1) ) { + createPixel(type,pixel.x+i,pixel.y+1, ); + } + i+1 +} +} + +elements.Test_Element = { + hidden: true, + color: "#ff0000", + conduct: 0.1, + category:"test", + behavior: behaviors.WALL, + + onSelect: function(pixel){}, + tick: function(pixel) { + + }, + +}; + +elements.Diaster_Spawner = { + maxSize : 1, + color: ["#8D8D8C", "#666666"], + category: "land", + behavior: behaviors.WALL, + properties : { + age: 0, + + }, + tick : function(pixel) { + const num = getRandomInt(1,3) + if (num == 1) { + createCloud(pixel, 'rain_cloud') + } else if(num == 2){ + createCloud(pixel, 'thunder_cloud') + } else { + createCloud(pixel, 'tornado_cloud') + } + + if(pixel.age > 100) { + changePixel(pixel,"cloud"); + } + pixel.age++ + doDefaults(pixel); + }, + +}; + +elements.tornado_cloud = { + color: ["#8D8D8C", "#666666"], + category: "land", + state : 'gas', + behavior: [ + "XX|XX|XX", + "XX|DL%0.0001|M1%2.5 AND BO", + "XX|XX|XX", + ], + tick : function(pixel) { + const chance = Math.random(); + + if ( chance <= 0.00001) { + if(isEmpty(pixel.x,pixel.y+1)) { + changePixel(pixel,"tornado") + } + } + + }, + density: 0.4, + ignoreAir: true, + conduct: 0.03 +}; + + + +function createCloudRand() { + const chance = Math.random(); + var randY = getRandomInt(7,19) + if(chance <= 0.001) { + if( isEmpty(83,randY)){ + createPixel('Diaster_Spawner',83,randY) + } + } +} + +function runEvents(){ + if(!paused) { + createEarthQuakeRand(); + createTsunamiRand(); + createCloudRand(); + createWildFireRand(); + } +} + +runAfterLoad(function() { + RunSimInterval = window.setInterval(runEvents, 75); +}); From f0a5fa192fccadb5a577e1deed253268b77384ef Mon Sep 17 00:00:00 2001 From: Jayd-Rubies <155784127+Jayd-Rubies@users.noreply.github.com> Date: Thu, 9 May 2024 21:54:42 -0400 Subject: [PATCH 33/38] Update mod-list.html --- mod-list.html | 83 ++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 72 insertions(+), 11 deletions(-) diff --git a/mod-list.html b/mod-list.html index b91092d2..22afd23f 100644 --- a/mod-list.html +++ b/mod-list.html @@ -104,21 +104,25 @@ Official alchemy.jsStart with only 4 elements and unlock more by reacting them together. (Most are not possible)R74n +classic_explosives.jsAdds back 4 explosives removed in v1.9.3R74n classic_textures.jsUse textures from early versions of the gameR74n color_everything.jsAllows every element to have a custom colorR74n -devtests.jsExperimental features from the Sandboxels developer; Currently there is Earthquake in WeaponsR74n +devtests.jsExperimental features from the Sandboxels developerR74n edible_everything.jsAllows every element to be mixed into Batter and DoughR74n fools.jsAdds back FOOLS ModeR74n +fools24.jsAdds back the 2024 Multiversal Update (v5.9.1)R74n smooth_water.jsChanges water mechanics so that it flows in one direction until it bounces off of somethingR74n spring.jsMany nature elements, like sakura trees, butterflies, beehives, and moreR74n +survival.jsWith limited resources, you must craft, sell, and buy to progressR74n velocity.jsBeta for explosion velocity, and later wind, which may come to the base game in the futureR74n Tools & Settings -adjustablepixelsize.jsAllows you to set the pixelSize with a URL parameterAlice -betaworldgen.jsadds a more advanced world generation to the gameAlex + +betaworldgen.jsadds a more advanced world generation to the gameAdora betterModManager.jsImprovements to the Mod Managerggod betterSettings.jsAdds additional settings and functionalityggod betterStats.jsSeparate “real” and “set” TPS, meaning you can see what the TPS actually is, instead of only seeing what it’s set tomollthecoder +buildingreplicator.jsScans and replicates builds anywhere on the screen, along with some preset submitted buildsnousernamefound change.jsAdds a tool that only replaces existing pixelsAlice color_tools.jsAdds tools that manipulate colorsAlice controllable_pixel_test.jsAdds a pixel that can be controlled with the keyboard keys. Read the commit description for more info. [PC ONLY]Alice @@ -127,11 +131,15 @@ 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 find.jsAdds a find mode that highlights a chosen element as pulsating red and yellow (read commit description)Alice +jaydsfunctions.jsAdds extra tools insane_random_events.jsMassively buffs random eventsAlice +invertscroll.jsInverts the scroll wheel for adjusting brush sizeSquareScreamYT +mobile_shift.jsAdds a button for shift on mobileSquareScreamYT moretools.jsAdds more temperature-modifying tools (±10/tick, ±50/tick, and absolute zero tools)Sightnado move_tools.jsAdds tools that move pixelsAlice noconfirm.jsRemoves all confirmation pop upsmollthecoder @@ -142,12 +150,16 @@ replace_all.jsAdds a way to replace every pixel of an element with another element
Read the commit description for usageAlice replace.jsAdds a tool that replaces every pixel of a specified element with another specified element. (The prompt to specify these is toggled by pressing " or by the button in the element description)Alice save_loading.jsAdds the ability to save and load scenes from files (See the info page of the element)Alice +selective_paint.jsAdds a tool to paint only selected elementsSquareScreamYT stripe_paint.jsAdds a tool to paint with stripesAlice +texturepack.jsAdds tools that let you create and share custom texture packsnousernamefound the_ground.jsAdds several rock types, worldgen settings, and gemstonesAlice Science & Chemistry alcohol.jsAdds methanol, (iso-)propanol, and butanolAlice alkahest.jsAdds the alkahest, a liquid which dissolves anythingAlice +aScientistsWish.jsAdds things that related to science, especially radiationCarbon Monoxide, salmonfishy +bettermetalscrap.jsAllows metal scrap to be melted back into its original materialnousernamefound bigger_star_spawners.jsAdds spawners for larger starsAlice bioooze_and_pyrogens.jsAdds Bio-Ooze from Frackin’ Universe and several heat-producing materials from various games’ modsAlice boiling_things.jsAllows for various elements to be vaporizedAlice @@ -159,17 +171,22 @@ Gemstones.jsAdds more gemstonesSchweeny glenn_gases.jsAdds most gases from the Glenn's Gases mod into SandboxelsAlice grav_mudstones.jsAdds various forms of mudstone with different gravitiesAlice +halogen.jsAdds the missing halogensnousernamefound hidden_ground.jsHides most rock variants from the_ground.js excluding the base rocks and wallsMelecie iocalfaeus_clones.jsAdds Iorefrius, Iolucius, and Ioradius gasAlice +jaydstuff.jsAdds various chemicals and compoundsJayd laetium.jsAdds several fictional elementsAlice liquid_energy.jsAdds liquid versions of the elements in the Energy categoryAlice metals.jsAdds several metalsAlice mixture.jsAllows many chemicals to be mixedlllllllllwith10ls -morechemistry.jsAdds many new chemicals and compounds as well as some new machinesAlex +more_gold.jsAdds Green Goldpixelegend4 +morechemistry.jsAdds many new chemicals and compounds as well as some new machinesAdora moreliquids.jsAdds various liquidste-agma-at nellfire.jsAdds a weird transforming flame and several rock typesAlice Neutronium Mod.jsVariety of scientific elements
ExplosionsStellarX20 neutronium_compressor.jsAdds a compressor (in reference to Minecraft’s Avaritia mod) that compresses 10,000 pixels of an element into a “singularity”Alice +noblegas.jsAdds the missing noble gasesnousernamefound +radioactive.jsAdds every radioactive elements on the periodic table (WIP)kaeud random_rocks.jsRandomly generates rocks on game loadAlice roseyiede.jsAdds several variants of a substance called roseyiedeAlice some_tf_liquids.jsAdds various liquids from the Thermal Foundation Minecraft modAlice @@ -177,89 +194,133 @@ Machines & Technology clone_liquid.jsAdds a liquid form of clonerAlice +combustion.jsAdds components necessary for combustion enginesuptzik conveyance.jsConveyors, operated with and without electricityMelecie +ExtraMachines.jsAdds sensors, energy resources, materials, and moreMecoolnotcool +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 note_block.jsAdds musical Note BlocksAlice nousersthings.jsDestroyable machines, pipe variants, filters, and morenousernamefound portal.jsAdds portals that can teleport pixelsAlice +pullers.jsAdds pixels that pull pixels towards themvoidapex11 pushers.jsAdds pixels that push elements away from themAlice -spouts.jsAdds spouts for all liquidsAlice +spouts.jsAdds spouts for all liquidskaeud state_voids.jsAdds several elements that each delete a specific state of matter (and combinations thereof)Alice switches.jsAdds electrical switches that can be toggledAlice ticking_temp_stuff.jsAdds more heaters and coolersAlice +video.jsAdds a video playerggod waterspout.jsAdds back the old Water Spoutmollthecoder +WhisperingTheory.jsAdds many more variants of heater and coolerkaeud Weapons +aircrafts.jsAdds aircraft and aircraft part pixelsJayd icb.jsAdds various levels of nested cluster bombsAlice life_eater.jsAdds Warhammer 40,000’s Life-Eater Virus and Virus BombsAlice liquid_void.jsAdds a liquid variant of VoidAlice more_breaking.jsAllows for breaking more elements in explosionsAlice rays.jsAdds more Ray typesAlice +rays++.jsAdds a couple more raysuptzik +weapons.jsAdds varieties of different weapons Jayd Food & Cooking +aChefsDream.jsAdds more foods, animals, tools and many other cooking related items. Updates can be found in this YouTube PlaylistSquareScreamYT +aChefsDream_beta.jsBeta testing for aChefsDream. The code can be found on GitHubSquareScreamYT bananas.jsAdds bananas and banana plantsAlice +CherrySoda.jsAdds materials to make Cherry soda. Benzaldehyde + seltzer = Cherrysoda.guzzo86 +community_desserts.jsAdds various desserts from community suggestionsTisquares +greenitemsandmore.jsAdds various green things, including apples and more foodzonneschijn7 ketchup_mod.jsAdds a bunch of ketchup related stuff, plus a few other condimentsNubo318 (main dev), Devi, Alice (contributors) +lemonade.jsAdds lemons and lemonadepersonman / baconthemyth +morefoodsmod.jsAdds more foodsClide4 pizzasstuff.jsNew animals, foods, and plants_ilikepizza_ -sbstuff.jsAdds RiceStefan Blox +potato_chips.jsPotato chips.guzzo86 +sbstuff.jsAdds many foodsstefanblox +soups.jsAdds seasoning and souppixelegend4 +weAllScreamFor.jsAdds ice cream toppingsrottenEgghead Life & Nature +advanced_colonies.jsAdds davlers, creatures with complex coloniesDaviStudios apioforms_pre.jsAn incomplete implementation of elements from the Apioform GameAlice bacteria_mod.jsAdds content from the Bacterium Mod: (Bacteria, Replacer B., Jammer Block)Alice bananas.jsAdds bananas and banana plantsAlice +cat.jsAdds cats and cat foodSquareScreamYT cells.jsAdds several experimental edits of the Cell elementAlice crimson.jsAdds elements relating to the Crimson from TerrariaAlice +dogs.jsAdds a simple dog and dog foodhedera-ivy fairy_chain.jsAdds way too many fairies to fey_and_more.jsAlice fantastic_creatures.jsAdds various animalsMelecie fantasy_elements.jsFantasy creatures and substancespixelegend4 fey_and_more.jsAdds fairies, magic, and a lot of other thingsMelecie +flowers_and_forests.jsadds trees and flowers and things to do with naturepixelegend4 and SquareScreamYT fwibblen.jsAdds a flying creature that turns nickel into itself, and a second creature that does the same to the first oneAlice human_edit.jsImprovements to humansAlice +kopalstuff.jsAdds creatures, spirits, DNA, foods, and moreDaviStudios +lost_souls.jsAdds souls and related elements, the mod can also be found on Githubpixelegend4, SquareScreamYT, salmonfishy miscible_psoup_and_birthpool.jsMakes Primordial Soup and Birthpool mix instead of the birthpool settling to the bottom. Will be deprecated upon the release of Magical MenagerieAlice mobs.jsAdds Creepers, Zombies, and SkeletonsAlice nocancer.jsRemoves cancer from the game one tick after it is createdmollthecoder nocancer2.jsRemoves cancer from the game altogether. May be incompatible with other mods that spawn cancermollthecoder +nograssgrow.jsPrevents Grass from growingmollthecoder +ocean.jsAdds many Marine lifeSquareScreamYT pizzasstuff.jsNew animals, foods, and plants_ilikepizza_ +plants.jsAdds a wide variety of new plants and fruitsAdora primordial_birthpool.jsA cross between Primordial Soup and Birthpool. Requires F&MAlice spring.jsMany nature elements, like sakura trees, butterflies, beehives, and moreR74n the_ground_og.jsSimplified and more stable version of the_ground.jsAlice the_ground.jsAdds several rock types, worldgen settings, and gemstonesAlice toothpaste.jsTeeth and pasteAlice +volcanic_expansion.jsAdds Obsidian, Pumice, and Andesite rocksJayd Fun & Games -allliquids.jsMade all elements liquidsAlex +10kelements.jsInserts a customizable amount of randomly generated elements into the gamenousernamefound +all_around_fillers.jsAdds directional Filler variantsidk73248 +allliquids.jsMade all elements liquidsAdora amogus.jsAdds a small amogus structureAlice +citybuilding.jsAdds seeds that create miniature buildings and other city-related itemsSquareScreamYT +collab_mod.jsCreated by multiple people, adds random thingsmrapple, ilikepizza, stefanblox +Doom Mod (Unreleased)As seen on TikTok - Not yet available!ggod elem3.jsAdds all elements and combinations from Elemental 3 [Very Large]Sophie +fools+.jsimproves and makes fools.js EXTREMELY annoying.SquareScreamYT funny elements 2022-11-15.jsAdds a few curated randomly-generated elementsAlice -funny_liquid_2.jsAdds urineAlice -funny_liquid_3.jsAdds vomitAlice funny_solid.jsAdds fecesAlice haseulite.jsAdds Loona-related materials with various propertiesAlice -iean.jsAdds lean and its ingredientsAlice lactose_intolerance_and_celiac.jsMakes humans explode on contact with milk, wheat, bread, or toastNubo318 lone_urea.jsAdds urea without the rest of the piss modAlice +maze.jsAdds a solvable maze generatorggod memelists.jsMakes it so you must select elements through a list at the bottom of the page.
We like listsmollthecoder minecraft.jsAdds several things from MinecraftStellarX20 minesweeper.jsA subpar implementation of MinesweeperAlice musicalfruit.jsHumans get gas from eating Beansmollthecoder random_elems.jsCurated randomly generated elementsAlice random_liquids.jsRandomly generates liquids on game loadAlice +sbmixup.jsAdds silly elements from a Mix-Up! gamestefanblox +star_wars.jsAdds various items from Star Wars by DisneySeaPickle754 sus.jsAdds an Among Us crewmateNv7 triggerable_random_powders.jsAdds powders with different abilities, such as heating and coolingAlice troll.jsAdds various dumb elements that iterate randomly on the entire screenAlice -star_wars.jsAdds various items from Star Wars by DisneySeaPickle754 +WhisperingTheory.jsAdds powder and gas variant of heater and coolerkaeud Visual Effects acid_and_shapes.jsWeird visual effects. Enable in SettingsAlice heatglow.jsRed glowing effect for hot metalsnousernamefound invisible_dye.jsAdds elements like Dye and Spray Paint that take the color of the backgroundAlice invisible_wall.jsAdds an element like Wall that takes the color of the backgroundAlice +moreViews.jsMany new rendering modesggod +onecolor.jsMakes all placed pixels single-colorednousernamefound paint_event.jsAdds a random event that randomly paints a circleAlice rainbow_tests.jsAdds variants of the rainbow element with different mathsAlice Shroomboxels.jsA variant of acid_and_shapes.js that uses a different trigonometric functionAlice +singleColor.jsMakes all elements pick one color each time they're drawnstefanblox + +Compilations +a_mod_by_alice.jsA mod combining most of Alice’s mods, and some other thingsAlice +food_mods.jsA mod combining most food modsstefanblox, moss, Tisquares, SquareScreamYT, Adora, pixelegend4, Alice, Nubo318, Clide4, rottenEgghead Technical Libraries & Tests a_bundle_of_tests.jsSeveral test functionsAlice +all_stain.jsMakes every element stain solidsstefanblox betterMenuScreens.jsLibrary for mods to create their own menusggod changePixelDebug.jsMakes the changePixel() function abort and log to console when it tries to change to a non-existent elementAlice changeTempReactionParameter.jsAdds the changeTemp property to modded reactionsAlice From 3aa3d9e487fbed196472899ef5dea580fcbd9429 Mon Sep 17 00:00:00 2001 From: jakob3797 <167775393+jakob3797@users.noreply.github.com> Date: Fri, 10 May 2024 10:59:34 -0500 Subject: [PATCH 34/38] Create than updated Lab.js All working --- mods/Lab.js | 233 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 233 insertions(+) create mode 100644 mods/Lab.js diff --git a/mods/Lab.js b/mods/Lab.js new file mode 100644 index 00000000..f759f1c4 --- /dev/null +++ b/mods/Lab.js @@ -0,0 +1,233 @@ +elements.lab = { + color: "#ff0000", + behaviorOn: behaviors.WALL, + behavior: [ + "CR:wall|CR:wall|CR:wall|CR:wall|CR:wall|CR:wall|CR:wall|CR:wire|CR:wire|CR:wire|CR:wall|CR:wall|CR:wall|CR:wall|CR:wall|CR:wall|CR:wall|CR:wall|CR:wall|CR:wall|CR:wall|CR:wall|CR:wall|CR:wall", + "CR:wall|DL|XX|XX|XX|XX|XX|CR:e_cr|CR:wall|CR:sensor|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|CR:wall", + "CR:wall|XX|XX|XX|XX|XX|XX|XX|CR:glass|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|CR:wall", + "CR:wall|XX|XX|XX|XX|XX|XX|XX|CR:glass|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|CR:wall", + "CR:wall|CR:wall|CR:wall|CR:wall|XX|CR:wall|CR:wall|CR:wall|CR:wall|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|CR:wall", + "CR:wall|XX|XX|XX|XX|XX|XX|XX|CR:wall|CR:wall|CR:wall|CR:wire|xx|CR:wall|XX|XX|XX|XX|XX|XX|XX|XX|XX|CR:wall", + "CR:wall|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|CR:ecloner|XX|CR:wall|XX|XX|XX|XX|XX|XX|XX|XX|XX|CR:wall", + "CR:wall|XX|XX|XX|XX|XX|XX|XX|CR:wall|CR:wall|CR:wall|CR:wire|CR:wall|CR:wall|XX|XX|XX|XX|XX|XX|XX|XX|XX|CR:wall", + "CR:wall|XX|XX|XX|XX|XX|XX|XX|CR:glass|XX|XX|CR:sensor|CR:wall|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|CR:wall", + "CR:wall|XX|XX|XX|XX|XX|XX|XX|CR:glass|XX|XX|XX|CR:wall|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|CR:wall", + "CR:wall|XX|XX|XX|XX|XX|XX|XX|CR:wall|CR:wall|XX|CR:wall|CR:wall|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|CR:wall", + "CR:wall|XX|XX|XX|XX|XX|XX|XX|CR:wall|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|CR:wall", + "CR:wall|XX|XX|XX|XX|XX|XX|XX|CR:wall|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|CR:wall", + "CR:wall|XX|XX|XX|XX|XX|XX|XX|CR:wall|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|CR:wall", + "CR:wall|XX|XX|XX|XX|XX|XX|XX|CR:wall|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|CR:wall", + "CR:wall|XX|XX|XX|XX|XX|XX|XX|CR:wall|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|CR:wall", + "CR:wall|XX|XX|XX|XX|XX|XX|XX|CR:wall|XX|XX|XX|XX|XX|XX|XX|CR:player|XX|XX|XX|XX|XX|XX|CR:wall", + "CR:wall|XX|XX|XX|XX|XX|XX|XX|CR:wall|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|CR:wall", + "CR:wall|XX|XX|XX|XX|XX|XX|XX|CR:wall|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|CR:wall", + "CR:wall|XX|XX|XX|XX|XX|XX|XX|CR:wall|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|CR:wall", + "CR:wall|XX|XX|XX|XX|XX|XX|XX|CR:wall|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|CR:wall", + "CR:wall|XX|XX|XX|XX|XX|XX|XX|CR:wall|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|CR:wall", + "CR:wall|XX|XX|XX|XX|XX|XX|XX|CR:wall|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|XX|CR:wall", + "CR:wall|CR:wall|CR:wall|CR:wall|CR:wall|CR:wall|CR:wall|CR:wall|CR:wall|XX|CR:wall|CR:wall|CR:wall|XX|CR:wall|CR:wall|CR:wall|CR:wall|XX|XX|XX|XX|XX|CR:wall", + "CR:wall|CR:wire|CR:wall|CR:wire|CR:wall|CR:wire|CR:wall|CR:wire|CR:wall|XX|XX|XX|CR:wall|XX|XX|XX|XX|CR:wall|XX|XX|XX|XX|XX|CR:wall", + "CR:wall|CR:wire|CR:wire|CR:wire|CR:wire|CR:wire|CR:wire|CR:wire|CR:wall|XX|XX|XX|CR:wall|XX|XX|XX|XX|CR:wall|XX|XX|XX|XX|XX|CR:wall", + "CR:wall|CR:wall|CR:wall|CR:wall|CR:wire|CR:wall|CR:wall|CR:wall|CR:wire|CR:sensor|XX|XX|CR:wall|XX|XX|XX|XX|CR:wall|XX|XX|XX|XX|XX|CR:wall", + "CR:wall|CR:wall|CR:wall|CR:wall|CR:wire|CR:wire|CR:wire|CR:wire|CR:wire|CR:wall|CR:wall|CR:wall|CR:wall|CR:wall|CR:wall|CR:wall|CR:wall|CR:wall|CR:wall|CR:wall|CR:wall|CR:wall|CR:wall|CR:wall", + ], + category: "lab", + state: "solid", +}; +elements.e_cr = { + name: "e-cr", + color: "#dddd00", + behavior: behaviors.WALL, + behaviorOn: [ + "XX|XX|XX", + "XX|XX|XX", + "XX|CR:human|XX" + ], + tick: function(pixel) { + if (pixel.create) { return } + for (var i = 0; i < adjacentCoords.length; i++) { + var coords = adjacentCoords[i]; + var x = pixel.x + coords[0]; + var y = pixel.y + coords[1]; + if (!isEmpty(x,y,true)) { + pixel.temp = pixelMap[x][y].temp; + if (pixelMap[x][y].create) { pixel.create = pixelMap[x][y].create; break } + var element = pixelMap[x][y].element; + if (element === pixel.element || elements[pixel.element].ignore.indexOf(element) !== -1) { continue } + pixel.create = element; + break; + } + } + }, + ignore: ["cloner","slow_cloner","clone_powder","floating_cloner","wire","ewall","wire","sensor","battery"], + category:"machines", + insulate:true, + darkText: true, + conduct: 1, + hardness: 1, + movable: false +} +var libraryMod = "mods/code_library.js"; + +if(enabledMods.includes(libraryMod)) { + sussyKey = null; + isShift = false; + isAlt = false; + + document.addEventListener("keydown", function(modifierDownListener) { + // User presses shift + if (modifierDownListener.keyCode == 16) { + isShift = true; + } + // User presses alt + if (modifierDownListener.keyCode == 18) { + isAlt = true; + } + }); + + document.addEventListener("keyup", function(modifierUpListener) { + // User releases shift + if (modifierUpListener.keyCode == 16) { + isShift = false; + } + // User releases alt + if (modifierUpListener.keyCode == 18) { + isAlt = false; + } + }); + + document.addEventListener("keyup", function(sussyListener) { + switch (sussyListener.keyCode) { + case 87: + sussyKey = "W"; + break; + case 65: + sussyKey = "A"; + break; + case 83: + sussyKey = "S"; + break; + case 68: + sussyKey = "D"; + break; + case 81: + sussyKey = "Q"; + break; + case 88: + sussyKey = "X"; + break; + case 90: + sussyKey = "Z"; + break; + case 72: + sussyKey = "H"; + break; + }; + }); + + function controllablePixelTryCreatePixelNullCheck(element,x,y) { + if(!elements[element]) { //catch the null + return false; + }; + if(isEmpty(x,y)) { + tryCreatePixel(element,x,y); + return true; + } else { + return false; + } + } + + elements.player = { + color: "#FFFFFF", + colorOn: "#FFFF00", + behavior: behaviors.WALL, + state: "solid", + density: 2000, + maxSize: 1, + conduct: 1, + hardness: 1, + tick: function(pixel) { + var xx = pixel.x; + var yy = pixel.y; + userElement = currentElement; + if(userElement === pixel.element) { + userElement = null; + }; + if(isShift && !isAlt) { + sussyKey === "Z" ? pixel.color = "rgb(255,191,127)" : pixel.color = "rgb(255,127,127)"; + } + if(isAlt && !isShift) { + sussyKey === "Z" ? pixel.color = "rgb(191,255,127)" : pixel.color = "rgb(127,255,127)"; + } + if(isAlt && isShift) { + sussyKey === "Z" ? pixel.color = "rgb(255,255,0)" : pixel.color = "rgb(255,255,127)"; + } + if(!isAlt && !isShift) { + sussyKey === "Z" ? pixel.color = "rgb(255,255,191)" : pixel.color = "rgb(255,255,255)"; + } + if(sussyKey !== null) { + switch (sussyKey) { + case "W": + isAlt ? controllablePixelTryCreatePixelNullCheck(userElement,xx,yy-1) : tryMove(pixel,xx,yy-1); + if(!isShift) { + sussyKey = null; + } + break; + case "A": + isAlt ? controllablePixelTryCreatePixelNullCheck(userElement,xx-1,yy) : tryMove(pixel,xx-1,yy); + if(!isShift) { + sussyKey = null; + } + break; + case "S": + isAlt ? controllablePixelTryCreatePixelNullCheck(userElement,xx,yy+1) : tryMove(pixel,xx,yy+1); + if(!isShift) { + sussyKey = null; + } + break; + case "D": + tryMove(pixel,xx+1,yy); + if(!isShift) { + sussyKey = null; + } + break; + case "H": //Alt+D is something else in some browsers. + if(isAlt) { + controllablePixelTryCreatePixelNullCheck(userElement,xx+1,yy); + }; + if(!isShift) { + sussyKey = null; + } + break; + case "X": + explodeAt(xx,yy,5) + if(!isShift) { + sussyKey = null; + } + break; + case "Z": + if (!pixel.charge && !pixel.chargeCD && !isEmpty(pixel.x,pixel.y,true)) { + pixel.charge = 1; + } + if(!isShift === 0) { + sussyKey = null; + } + break; + case "Q": //Use if a key gets stuck + sussyKey = null; + isShift = null; + isAlt = null; + break; + } + } + }, + } +} else { + alert(`The ${libraryMod} mod is required and has been automatically inserted (reload for this to take effect).`) + enabledMods.splice(enabledMods.indexOf(modName),0,libraryMod) + localStorage.setItem("enabledMods", JSON.stringify(enabledMods)); +}; + +// i know it looks messy but it works + +// if u dont belive me test it but place it in the center of the canvas From 7dcd4dcae60f418bc8417901a5cd6a04110ee576 Mon Sep 17 00:00:00 2001 From: jakob3797 <167775393+jakob3797@users.noreply.github.com> Date: Fri, 10 May 2024 11:28:53 -0500 Subject: [PATCH 35/38] Update Quicksand_one.js Tested working --- mods/Quicksand_one.js | 597 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 593 insertions(+), 4 deletions(-) diff --git a/mods/Quicksand_one.js b/mods/Quicksand_one.js index 01659cc1..7f601977 100644 --- a/mods/Quicksand_one.js +++ b/mods/Quicksand_one.js @@ -59,7 +59,7 @@ elements.mangrove_mud = { density: 1089, stain: 0.25 }; -peat_slurry = { +elements.peat_slurry = { color: "#556B2F", behavior: elements.slime.behavior, viscosity: 10000, @@ -92,7 +92,7 @@ elements.fen_mud = { tempLow: 0, category: "liquids", state: "liquid", - density: 1550, + density: 1450, stain: 0.28 }; elements.swamp_sludge = { @@ -479,7 +479,7 @@ elements.mud = { density: 1000, stain: 0.3 }; -elements.quicksand = { +elements.quicksand_mud = { color: "#DAA520", behavior: elements.slime.behavior, viscosity: 1750, @@ -505,7 +505,7 @@ elements.sandy_mud = { }; elements.sticky_quicksand = { color: "#DAA520", - behavior:elements.sap.behavior, + behavior: elements.sap.behavior, viscosity: 1700, tempHigh: 65, stateHigh: "liquid", @@ -515,3 +515,592 @@ elements.sticky_quicksand = { density: 1100, stain: 0.25 }; +elements.fluff_mud = { + color: "#964B00", + behavior: elements.slime.behavior, + viscosity: 10000, + tempHigh: 40, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1300, + stain: 0.2 +}; +elements.bog = { + color: "#556B2F", + behavior: elements.slime.behavior, + viscosity: 10000, + tempHigh: 45, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1400, + stain: 0.25 +}; +elements.mire = { + color: "#2E8B57", + behavior: elements.slime.behavior, + viscosity: 10000, + tempHigh: 50, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1500, + stain: 0.3 +}; +elements.oobleck = { + color: "#008000", + behavior: elements.slime.behavior, + viscosity: 10000, + tempHigh: 25, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1600, + stain: 0.15 +}; +elements.spiderwebs = { + color: "#D3D3D3", + behavior: elements.slime.behavior, + viscosity: 10000, + tempHigh: 20, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1700, + stain: 0.1 +}; + +elements.silt_quicksand = { + color: "#DAA520", + behavior: elements.slime.behavior, + viscosity: 10000, + tempHigh: 68, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1500, + stain: 0.15 +}; +elements.syrupy_mud = { + color: "#8B4513", + behavior: elements.slime.behavior, + viscosity: 10000, + tempHigh: 65, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1550, + stain: 0.2 +}; +elements.quagmire_mud = { + color: "#A0522D", + behavior: elements.slime.behavior, + viscosity: 10000, + tempHigh: 60, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1600, + stain: 0.25 +}; +elements.bog_quicksand = { + color: "#556B2F", + behavior: elements.slime.behavior, + viscosity: 10000, + tempHigh: 62, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1650, + stain: 0.2 +}; +elements.sludge_mud = { + color: "#2E8B57", + behavior: elements.slime.behavior, + viscosity: 10000, + tempHigh: 58, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1700, + stain: 0.3 +}; +elements.squishy_slime = { + color: "#FF4500", + behavior: elements.slime.behavior, + viscosity: 15000, + tempHigh: 20, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1600, + stain: 0.1 +}; +elements.sparkling_slime = { + color: "#FFD700", + behavior: elements.slime.behavior, + viscosity: 12000, + tempHigh: 25, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1650, + stain: 0.15 +}; +elements.glittery_slime = { + color: "#B0E0E6", + behavior: elements.slime.behavior, + viscosity: 25000, + tempHigh: 10, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1750, + stain: 0.25 +}; +elements.swirling_slime = { + color: "#9370DB", + behavior: elements.slime.behavior, + viscosity: 18000, + tempHigh: 5, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1800, + stain: 0.3 +}; +elements.fizzling_slime = { + color: "#00FFFF", + behavior: elements.slime.behavior, + viscosity: 15000, + tempHigh: -5, + stateHigh: "liquid", + tempLow: -10, + category: "liquids", + state: "liquid", + density: 1900, + stain: 0.25 +}; +elements.crackling_slime = { + color: "#FF6347", + behavior: elements.slime.behavior, + viscosity: 20000, + tempHigh: -10, + stateHigh: "liquid", + tempLow: -15, + category: "liquids", + state: "liquid", + density: 1480, + stain: 0.3 +}; +elements.glowing_slime = { + color: "#7B68EE", + behavior: elements.slime.behavior, + viscosity: 25000, + tempHigh: -15, + stateHigh: "liquid", + tempLow: -20, + category: "liquids", + state: "liquid", + density: 1395, + stain: 0.2 +}; +elements.crunchy_slime = { + color: "#00BFFF", + behavior: elements.slime.behavior, + viscosity: 30000, + tempHigh: -20, + stateHigh: "liquid", + tempLow: -25, + category: "liquids", + state: "liquid", + density: 2050, + stain: 0.25 +}; +elements.sizzling_slime = { + color: "#FFA07A", + behavior: elements.slime.behavior, + viscosity: 35000, + tempHigh: -25, + stateHigh: "liquid", + tempLow: -30, + category: "liquids", + state: "liquid", + density: 1463, + stain: 0.3 +}; +elements.spider_webbing = { + color: "#FFFFFF", + behavior: elements.slime.behavior, + viscosity: 5000, + tempHigh: 25, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1100, + stain: 0.05 +}; +elements.webbing_gel = { + color: "#FFD700", + behavior: elements.slime.behavior, + viscosity: 7000, + tempHigh: 30, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1200, + stain: 0.08 +}; +elements.arachnid_slime = { + color: "#00FF00", + behavior: elements.slime.behavior, + viscosity: 8000, + tempHigh: 35, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1250, + stain: 0.1 +}; +elements.sticky_silk = { + color: "#FFFACD", + behavior: elements.slime.behavior, + viscosity: 6000, + tempHigh: 40, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1300, + stain: 0.12 +}; +elements.webbing_solution = { + color: "#FFA07A", + behavior: elements.slime.behavior, + viscosity: 9000, + tempHigh: 45, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1350, + stain: 0.15 +}; +elements.arachnid_resin = { + color: "#FF00FF", + behavior: elements.slime.behavior, + viscosity: 7500, + tempHigh: 50, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1400, + stain: 0.18 +}; +elements.spider_snot = { + color: "#7FFFD4", + behavior: elements.slime.behavior, + viscosity: 8500, + tempHigh: 55, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1450, + stain: 0.2 +}; +elements.arachnid_ooze = { + color: "#6495ED", + behavior: elements.slime.behavior, + viscosity: 9500, + tempHigh: 60, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1325, + stain: 0.22 +}; +elements.sticky_spider_goo = { + color: "#8A2BE2", + behavior: elements.slime.behavior, + viscosity: 8500, + tempHigh: 65, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1350, + stain: 0.25 +}; +elements.arachnid_sludge = { + color: "#FF4500", + behavior: elements.slime.behavior, + viscosity: 8000, + tempHigh: 70, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1142, + stain: 0.28 +}; +elements.spider_secretion = { + color: "#FFFF00", + behavior: elements.slime.behavior, + viscosity: 9000, + tempHigh: 75, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1464, + stain: 0.3 +}; +elements.arachnid_essence = { + color: "#800080", + behavior: elements.slime.behavior, + viscosity: 8500, + tempHigh: 80, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1325, + stain: 0.25 +}; +elements.sticky_spider_residue = { + color: "#8B4513", + behavior: elements.slime.behavior, + viscosity: 9500, + tempHigh: 85, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1499, + stain: 0.28 +}; +elements.arachnid_phlegm = { + color: "#32CD32", + behavior: elements.slime.behavior, + viscosity: 9000, + tempHigh: 90, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1345, + stain: 0.3 +}; +elements.sticky_spider_slime = { + color: "#800000", + behavior: elements.slime.behavior, + viscosity: 9000, + tempHigh: 105, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1431, + stain: 0.3 +}; +elements.arachnid_mucus = { + color: "#FF1493", + behavior: elements.slime.behavior, + viscosity: 9500, + tempHigh: 110, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 2000, + stain: 0.25 +}; +elements.spider_secretion = { + color: "#32CD32", + behavior: elements.slime.behavior, + viscosity: 9000, + tempHigh: 115, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 2050, + stain: 0.28 +}; +elements.arachnid_excretion = { + color: "#FF4500", + behavior: elements.slime.behavior, + viscosity: 8500, + tempHigh: 120, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 2100, + stain: 0.3 +}; +elements.sticky_spider_ooze = { + color: "#00008B", + behavior: elements.slime.behavior, + viscosity: 9000, + tempHigh: 125, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 2150, + stain: 0.25 +}; +elements.arachnid_liquid = { + color: "#FFFF00", + behavior: elements.slime.behavior, + viscosity: 9500, + tempHigh: 130, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 2200, + stain: 0.28 +}; +elements.swamp_slime = { + color: "#32CD32", + behavior: elements.slime.behavior, + viscosity: 9000, + tempHigh: 30, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1450, + stain: 0.2 +}; +elements.muddy_swamp_water = { + color: "#8B4513", + behavior: elements.slime.behavior, + viscosity: 9500, + tempHigh: 35, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1500, + stain: 0.25 +}; +elements.swamp_sludge = { + color: "#556B2F", + behavior: elements.slime.behavior, + viscosity: 10000, + tempHigh: 40, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1550, + stain: 0.3 +}; +elements.boggy_mud = { + color: "#6B8E23", + behavior: elements.slime.behavior, + viscosity: 10500, + tempHigh: 45, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1600, + stain: 0.2 +}; +elements.swamp_ooze = { + color: "#32CD32", + behavior: elements.slime.behavior, + viscosity: 11000, + tempHigh: 50, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1650, + stain: 0.25 +}; +elements.sludgy_swamp_mixture = { + color: "#556B2F", + behavior: elements.slime.behavior, + viscosity: 11500, + tempHigh: 55, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1700, + stain: 0.3 +}; +elements.marshy_slime = { + color: "#8B4513", + behavior: elements.slime.behavior, + viscosity: 12000, + tempHigh: 60, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1750, + stain: 0.2 +}; +elements.soggy_bog = { + color: "#6B8E23", + behavior: elements.slime.behavior, + viscosity: 12500, + tempHigh: 65, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1800, + stain: 0.25 +}; +elements.mossy_swamp_water = { + color: "#32CD32", + behavior: elements.slime.behavior, + viscosity: 13000, + tempHigh: 70, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1850, + stain: 0.3 +}; +elements.murky_marsh_mixture = { + color: "#556B2F", + behavior: elements.slime.behavior, + viscosity: 13500, + tempHigh: 75, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1900, + stain: 0.2 +}; From 2117fd84fb7b11945247e0c9fa3c67ca74d34c00 Mon Sep 17 00:00:00 2001 From: DoobieRalsei <163950752+DoobieRalsei@users.noreply.github.com> Date: Fri, 10 May 2024 12:13:17 -0700 Subject: [PATCH 36/38] =?UTF-8?q?Frozen=20008=20Falls=20better,=20Infected?= =?UTF-8?q?=20skin=20=E2=80=9Crots=E2=80=9D=20and=20collapses?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mods/scp.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mods/scp.js b/mods/scp.js index 9dd1828b..db64a288 100644 --- a/mods/scp.js +++ b/mods/scp.js @@ -86,7 +86,7 @@ elements.frozen_008 = { behavior: [ "XX|XX|XX", "XX|DL%0.001|X", - "M2%1.0|M1%1.0|M2%1.0", + "XX|M1%1.0|XX", ], reactions: { "head": { elem1:null, elem2:"z_head" , chance:0.4 }, @@ -114,7 +114,7 @@ elements.infected_skin = { behavior: [ "XX|CR:stench,stench,stench,SCP_008,fly%0.05 AND CH:meat>infected_meat%1|XX", "CH:meat>infected_meat%1|XX|CH:meat>infected_meat%1", - "XX|CH:meat>infected_meat%1|XX", + "M2%1.0|M1%1.0 AND CH:meat>infected_meat%1|M2%1.0", ], tick: function(pixel) { if (pixel.temp > 40 && Math.random() < 0.003) { From 6b2b570f4cbc2c460f3c56f6e9fa91d7f3575da1 Mon Sep 17 00:00:00 2001 From: slweeb <91897291+slweeb@users.noreply.github.com> Date: Fri, 10 May 2024 15:18:47 -0400 Subject: [PATCH 37/38] fixed issue --- mod-list.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod-list.html b/mod-list.html index 22afd23f..be9438b4 100644 --- a/mod-list.html +++ b/mod-list.html @@ -136,7 +136,7 @@ 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 find.jsAdds a find mode that highlights a chosen element as pulsating red and yellow (read commit description)Alice -jaydsfunctions.jsAdds extra tools +jaydsfunctions.jsAdds extra toolsJayd insane_random_events.jsMassively buffs random eventsAlice invertscroll.jsInverts the scroll wheel for adjusting brush sizeSquareScreamYT mobile_shift.jsAdds a button for shift on mobileSquareScreamYT From 2dfdc8de9ad50fe4cb91ddd47b8217337f7fef60 Mon Sep 17 00:00:00 2001 From: SquareScreamYT <134925668+SquareScreamYT@users.noreply.github.com> Date: Sat, 11 May 2024 09:17:53 +0800 Subject: [PATCH 38/38] fruitmijk --- mods/aChefsDream.js | 178 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 163 insertions(+), 15 deletions(-) diff --git a/mods/aChefsDream.js b/mods/aChefsDream.js index 205c30d7..acf75e57 100644 --- a/mods/aChefsDream.js +++ b/mods/aChefsDream.js @@ -18,7 +18,37 @@ function getRGB(rgb){ let rgb2 = rgb.replace(")", "").replace("rgb(", "").replace(/,/g, "r").split("r") return { r: parseInt(rgb2[0]), g: parseInt(rgb2[1]), b: parseInt(rgb2[2]) }; } - +function findMostFrequent(arr) { + let freqMap = {}; + + if (arr) { + if (arr.length === 0) { + return "water"; + } else if (arr.length === 1) { + return arr[0] + } else { + arr.forEach(item => { + if(!freqMap[item]) { + freqMap[item] = 0; + } + freqMap[item]++; + }); + + let max = 0; + let mostFrequent = []; + + for (let item in freqMap) { + if (freqMap[item] > max) { + max = freqMap[item]; + mostFrequent = [item]; + } else if (freqMap[item] === max) { + mostFrequent.push(item); + } + } + return mostFrequent.join(', '); + } + } +} behaviors.STURDYPOWDER2 = [ "XX|XX|XX", "XX|XX|XX", @@ -39,25 +69,21 @@ elements.knife = { //changePixel(pixel, cutInto) if (shiftDown) { if (Math.random() < 0.5) { - 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 (elements[thiselement].cutIntoEmit && Math.random() < 0.7 && isEmpty(pixel.x,pixel.y-1)) { - createPixel(elements[thiselement].cutIntoEmit,pixel.x,pixel.y-1); + changePixel(pixel, cutInto) + pixelTempCheck(pixel); + if (elements[thiselement].cutIntoColor) { + pixel.color = pixelColorPick(pixel, elements[thiselement].cutIntoColor); } } } else if (!shiftDown) { if (Math.random() < 0.1) { - 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 (elements[thiselement].cutIntoEmit && Math.random() < 0.4 && isEmpty(pixel.x,pixel.y-1)) { - createPixel(elements[thiselement].cutIntoEmit,pixel.x,pixel.y-1); + changePixel(pixel, cutInto) + pixelTempCheck(pixel); + if (elements[thiselement].cutIntoColor) { + pixel.color = pixelColorPick(pixel, elements[thiselement].cutIntoColor); } } } @@ -422,6 +448,10 @@ elements.soup = { if (Math.random() < 0.5) { deletePixel(ingredient.x, ingredient.y); } else { ingredient.color = pixelColorPick(ingredient, hex); + if (!ingredient.elemlist){ + ingredient.elemlist = []; + } + ingredient.elemlist.push(soup.elemlist[Math.floor(Math.random() * soup.elemlist.length)]) } } } @@ -439,6 +469,13 @@ elements.soup = { } } }, + hoverStat: function(soup, ingredient) { + if (findMostFrequent(soup.elemlist) == undefined) { + return "Ingredients:None" + } else { + return "Ingredients:"+findMostFrequent(soup.elemlist) + } + }, } if (!elements.broth.reactions) elements.broth.reactions = {}; @@ -6586,6 +6623,7 @@ elements.durian = { cutInto: "cut_durian", state: "solid", density: 1050, + breakInto: "durian_juice" } elements.cut_durian = { @@ -6601,6 +6639,7 @@ elements.cut_durian = { hidden: true, freezeDryInto: "freeze_dried_fruits", freezeDryIntoColor: "#a19f3b", + breakInto: "durian_juice" } elements.durian_seed = { @@ -6649,6 +6688,32 @@ elements.durian_seed = { "XX|M1|XX", ], }; + +elements.durian_juice = { + color: "#ebe06e", + onMix: function(pixel) { + if (shiftDown) { + if (Math.random() < 0.2) { + changePixel(pixel,"juice") + pixel.color = pixelColorPick(pixel,"#ebe06e") + } + } + }, + behavior: behaviors.LIQUID, + category: "liquids", + tempHigh: 100, + stateHigh: ["steam","sugar"], + burn: 70, + burnTime: 300, + burnInto: ["steam", "smoke"], + state: "liquid", + density: 825, + hidden: true, + temp: 30, + hidden: true, + tempLow: 0, +}; +eLists.JUICEMIXABLE.push("durian_juice"); elements.egg_white = { color: "#edece8", behavior: behaviors.LIQUID, @@ -7613,6 +7678,7 @@ elements.unripe_rambutan = { cutInto: "cut_rambutan", state: "solid", density: 1050, + breakInto: "rambutan_juice" } elements.rambutan = { @@ -7626,7 +7692,7 @@ elements.rambutan = { state: "solid", density: 1050, cutInto: "cut_rambutan", - hidden: true, + breakInto: "rambutan_juice" } elements.cut_rambutan = { @@ -7642,6 +7708,7 @@ elements.cut_rambutan = { hidden: true, freezeDryInto: "freeze_dried_fruits", freezeDryIntoColor: "#a19f3b", + breakInto: "rambutan_juice" } elements.rambutan_seed = { @@ -7691,6 +7758,32 @@ elements.rambutan_seed = { ], }; +elements.rambutan_juice = { + color: "#f7f4cb", + onMix: function(pixel) { + if (shiftDown) { + if (Math.random() < 0.2) { + changePixel(pixel,"juice") + pixel.color = pixelColorPick(pixel,"#f7f4cb") + } + } + }, + behavior: behaviors.LIQUID, + category: "liquids", + tempHigh: 100, + stateHigh: ["steam","sugar"], + burn: 70, + burnTime: 300, + burnInto: ["steam", "smoke"], + state: "liquid", + density: 825, + hidden: true, + temp: 30, + hidden: true, + tempLow: 0, +}; +eLists.JUICEMIXABLE.push("rambutan_juice"); + elements.barbecued_shrimp = { color:["#bf743b", "#b57026","#8f5e29","#a87b11"], behavior: behaviors.STURDYPOWDER, @@ -7829,6 +7922,26 @@ elements.raisin = { isFood: true } +elements.fruit_slush = { + color: "#ed93a4", + behavior: behaviors.LIQUID, + reactions: { + "dirt": { elem1: null, elem2: "mud" }, + "sand": { elem1: null, elem2: "wet_sand" }, + "uranium": { elem1:"dirty_water", chance:0.25 }, + }, + temp: -5, + tempHigh: 18, + tempLow: -20, + stateLow: "juice_ice", + stateHigh: "juice", + category: "food", + state: "liquid", + density: 95, + viscosity: 100, + hidden: true +} + // things to mix: juice, water, seltzer, sugar water, soda, juice, milk, cream, // juice, milk, chocolate milk, fruit milk, eggnog, nut milk, alcohol, wine, tea, // tea, coffee, honey, caramel, vanilla essence, peppermint tea, sugar, yogurt, @@ -7836,9 +7949,9 @@ elements.raisin = { // juice mixing for (let juicei = 0; juicei < eLists.JUICEMIXABLE.length; juicei++) { + elem = eLists.JUICEMIXABLE[juicei]; // juice with juice for (let juicej = 0; juicej < eLists.JUICEMIXABLE.length; juicej++) { - elem = eLists.JUICEMIXABLE[juicei]; elem2 = eLists.JUICEMIXABLE[juicej]; if (elem != elem2) { if (!elements[elem].reactions) { chance:1, elements[elem].reactions = {} } @@ -7909,6 +8022,19 @@ for (let juicei = 0; juicei < eLists.JUICEMIXABLE.length; juicei++) { pixel2.color = `rgb(${parseInt(newrgb.r)},${parseInt(newrgb.g)},${parseInt(newrgb.b)})`; }} } + +iceelem = elem+"_ice" +// ice slush +elements[elem].stateLowColorMultiplier = 1.2; +elements[elem].tempLow = 10; +elements.fruit_slush.stateHighColorMultiplier = 0.83333333333; +elements.fruit_slush.stateLowColorMultiplier = 1.2; +elements.juice_ice.stateHighColorMultiplier = 0.83333333333; +elements.juice_ice.stateHigh = "fruit_slush" +elements.juice_ice.tempHigh = -20 +elements[iceelem].stateHigh = "fruit_slush" +elements[iceelem].tempHigh = -20 + // fruit milk with milk elements.fruit_milk.reactions.milk = { chance:1, func: function(pixel1, pixel2){ let newrgb = interpolateRgb(getRGB(pixel1.color), getRGB(pixel2.color), 0.2); @@ -7982,3 +8108,25 @@ elements.fruit_milk.reactions.fruit_milk = { chance:1, func: function(pixel1, pi pixel2.color = `rgb(${parseInt(newrgb.r)},${parseInt(newrgb.g)},${parseInt(newrgb.b)})`; } } +// fruit milk onMix +elements.fruit_milk.onMix = function(pixel){ + let num = Math.floor(Math.random() * 4); + let x = pixel.x + adjacentCoords[num][0]; + let y = pixel.y + adjacentCoords[num][1]; + if(!isEmpty(x,y) && !outOfBounds(x,y)){ + let pixel2 = pixelMap[x][y]; + if(pixel.color != pixel2.color && pixel2.element == "fruit_milk"){ + let condition; + if(shiftDown == 0){ + condition = (Math.floor(Math.random() * 2) == 1); + } else { + condition = true; + } + if(condition){ + let newrgb = interpolateRgb(getRGB(pixel.color), getRGB(pixel2.color), 0.5); + pixel.color = `rgb(${parseInt(newrgb.r)},${parseInt(newrgb.g)},${parseInt(newrgb.b)})`; + pixel2.color = `rgb(${parseInt(newrgb.r)},${parseInt(newrgb.g)},${parseInt(newrgb.b)})`; + } + } + } + }