diff --git a/lang/hu.json b/lang/hu.json index b8645d87..9c4361c0 100644 --- a/lang/hu.json +++ b/lang/hu.json @@ -189,7 +189,7 @@ "bubble":"buborék", "acid":"sav", "neutral_acid":"semleges_sav", -"acid_gas":"savgáz", +"acid_gas":"savgőz", "glue":"ragasztó", "soda":"szénsavas_üdítőital", "gray_goo":"szürke_ragacs", @@ -242,7 +242,7 @@ "sterling":"sterling_ezüst", "gallium":"gallium", "molten_gallium":"olvadt_gallium", -"gallium_gas":"gallium_gáz", +"gallium_gas":"galliumgőz", "rose_gold":"rózsaarany", "purple_gold":"lila_arany", "blue_gold":"kék_arany", @@ -259,7 +259,7 @@ "molten_solder":"olvadt_forrasztó_fém", "juice":"lé", "juice_ice":"fagyott_lé", -"broth":"leves_leve", +"broth":"leveslé", "milk":"tej", "chocolate_milk":"csokis_tej", "fruit_milk":"gyümölcsös_tej", @@ -357,7 +357,7 @@ "liquid_helium":"folyékony_hélium", "sodium":"nátrium", "molten_sodium":"olvadt_nátrium", -"sodium_gas":"nátrium_gáz", +"sodium_gas":"nátriumgőz", "calcium":"kalcium", "molten_calcium":"olvadt_kalcium", "limestone":"mészkő", @@ -377,7 +377,7 @@ "fragrance":"illat", "perfume":"parfüm", "cyanide":"cián", -"cyanide_gas":"cián_gáz", +"cyanide_gas":"ciángáz", "ozone":"ózon", "cloud":"felfő", "rain_cloud":"esőfelhő", @@ -394,7 +394,7 @@ "led_b":"kék_led", "sulfur":"kén", "molten_sulfur":"olvadt_kén", -"sulfur_gas":"kén_gáz", +"sulfur_gas":"kéngőz", "copper_sulfate":"rézgálic", "snake":"kígyó", "loopy":"kacskaringós", @@ -426,7 +426,7 @@ "bead":"gyöngy", "color_sand":"színes_homok", "borax":"bórax", -"epsom_salt":"epsom_só", +"epsom_salt":"keserűsó", "potassium_salt":"kálium_só", "sodium_acetate":"nátrium-acetát", "lightning":"villámcsapás", @@ -501,7 +501,7 @@ "molten_blue_gold":"olvadt_kék_arany", "molten_electrum":"olvadt_elektrum", "molten_pyrite":"olvadt_pirit", -"broth_ice":"fagyott_leves_leve", +"broth_ice":"fagyott_leveslé", "frozen_vinegar":"fagyott_ecet", "sauce_ice":"fagyott_szósz", "alcohol_ice":"fagyott_alkohol", @@ -519,7 +519,7 @@ "molten_alga":"olvadt_alumínium-gallim_ötvözet", "molten_metal_scrap":"olvadt_fémtörmelék", "molten_borax":"olvadt_borax", -"molten_epsom_salt":"olvadt_epsom-só", +"molten_epsom_salt":"olvadt_keserűsó", "molten_potassium_salt":"olvadt_kálium_só", "molten_sodium_acetate":"olvadt_nátrium-acetát", "frozen_nitro":"fagyott_nitroglicerin", @@ -539,5 +539,5 @@ "tsunami": "cunami", "blaster": "plazmavető", "propane_ice": "fagyott_propán", -"molten_caustic_potash": "Olvadt_kálium-hidroxid" +"molten_caustic_potash": "olvadt_kálium-hidroxid" } diff --git a/mod-list.html b/mod-list.html index e3b72335..fed60b74 100644 --- a/mod-list.html +++ b/mod-list.html @@ -122,6 +122,7 @@ 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 @@ -234,6 +235,8 @@ 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 diff --git a/mods/10kelements.js b/mods/10kelements.js index f60a6e13..957d4088 100644 --- a/mods/10kelements.js +++ b/mods/10kelements.js @@ -38,8 +38,8 @@ var randomProperty = function (obj) { if (Math.abs(settings.randomcount) == settings.randomcount){ if (!settings.skineasteregg){ for (var i = 1; i <= settings.randomcount; i++){ - var f = Math.random() < 0.2 - var co = Math.random() < 0.2 + var canHeat = Math.random() < 0.2 + var canCold = Math.random() < 0.2 elements["element_"+i] = { color: "#" + color[Math.floor(Math.random()*color.length)] + color[Math.floor(Math.random()*color.length)] + color[Math.floor(Math.random()*color.length)] + color[Math.floor(Math.random()*color.length)] + color[Math.floor(Math.random()*color.length)] + color[Math.floor(Math.random()*color.length)], category: "random", @@ -49,11 +49,11 @@ if (Math.abs(settings.randomcount) == settings.randomcount){ density: randomIntFromInterval(1, 10000) } total = i - if (f){ + if (canHeat){ elements["element_"+i].tempHigh = 20 + randomIntFromInterval(10, 6000) elements["element_"+i].stateHigh = elementslist[Math.floor(Math.random()*elementslist.length)] } - if (co){ + if (canCold){ elements["element_"+i].tempLow = 20 - randomIntFromInterval(10, 270) elements["element_"+i].stateLow = elementslist[Math.floor(Math.random()*elementslist.length)] } diff --git a/mods/CherrySoda.js b/mods/CherrySoda.js index 0be7f3da..98475765 100644 --- a/mods/CherrySoda.js +++ b/mods/CherrySoda.js @@ -29,7 +29,8 @@ elements.tolulene = { burnInto: ["steam", "smoke", "fire", "fire",], reactions: { "potassiumpermanganate": {elem1: "benzaldehyde", elem2: "benzaldehyde"}, - } + }, + tempHigh: 111, } elements.benzaldehyde = { color: "#F5F5F5", @@ -40,7 +41,7 @@ elements.benzaldehyde = { desc: "Benzaldehyde is cherry flavor. It is also clear like tolulene.", reactions: { "seltzer": {elem1: "cherrysoda", elem2: "cherrysoda"}, - } + }, } elements.cherrysoda = { color: "#D2042D", @@ -48,5 +49,29 @@ elements.cherrysoda = { category: "food", state: "liquid", density: 1045, - desc: "Cherry soda." + desc: "Cherry soda.", + tempHigh: 150, + stateHigh: "cherrysoda_gas", +} +elements.cherrysoda_gas = { + color: "#D20459", + behavior: behaviors.GAS, + category: "gases", + state: "gas", + density: 1025, + desc: "Cherry soda gas.", + tempLow: 149, + stateLow: "cherrysoda", + temp: 169, +} +elements.cherrysoda_ice = { + color: "BF4F9C", + behavior: behaviors.wALL, + category: "solids", + state: "solid", + density: 1065, + desc: "Cherry soda gas.", + tempHigh: -27, + stateHigh: "cherrysoda", + temp: -47, } diff --git a/mods/GrapeSoda.js b/mods/GrapeSoda.js new file mode 100644 index 00000000..5716aeac --- /dev/null +++ b/mods/GrapeSoda.js @@ -0,0 +1,140 @@ +elements.anthranilicacid = { + color: "#FFFFFF", + behavior: behaviors.POWDER, + category: "powders", + state: "solid", + tempHigh: 145, + stateHigh: "moltenanthranilicacid", + reactions: { + "methanol": {elem1: "methylanthranilate", elem2: "methylanthranilate"}, + }, + } + + elements.moltenanthranilicacid = { + color: ["#FFFF99", "#FFFF66", "#FFFF00"], + behavior: behaviors.LIQUID, + category: "states", + state: "liquid", + tempLow: 144, + stateLow: "anthranilicacid", + tempHigh: 340, + stateHigh: "anthranilicacidgas", + temp: 155, + viscosity: 10, + } + + elements.anthranilicacidgas = { + color: "#FEDEFF", + behavior: behaviors.GAS, + category: "gases", + state: "gas", + tempLow: 339, + stateLow: "moltenanthranilicacid", + temp: 350, + } + + elements.methanol = { + color: "#FFE4FF", + behavior: behaviors.LIQUID, + category: "liquids", + state: "liquid", + density: 792, + stateHigh: "methanolgas", + tempHigh: 65, + stateLow: "methanolice", + tempLow: -98, + burn: 100, + burnTime: 100, + burnInto: "carbondioxide" + } + + elements.methanolice = { + color: "#FFFFFF", + behavior: behaviors.SOLID, + category: "solids", + state: "solid", + density: 822, + stateHigh: "methanol", + temp: -117, + tempHigh: -97, + } + + elements.methanolgas = { + color: "#E1E4FF", + behavior: behaviors.GAS, + category: "gases", + state: "gas", + density: 942, + stateLow: "methanol", + tempLow: 64, + temp: 84, + } + elements.methylanthranilate = { + color: "#FFFBBA", + behavior: behaviors.LIQUID, + category: "liquids", + state: "liquid", + density: 1120, + stateHigh: "methylanthranilategas", + tempHigh: 257, + stateLow: "methylanthranilateice", + tempLow: -20, + reactions: { + "seltzer": {elem1: "grapesoda", elem2: "grapesoda",} + } + } + + elements.methylanthranilategas = { + color: "#FFFBBA", + behavior: behaviors.GAS, + category: "gases", + state: "gas", + density: 1120, + stateLow: "methylanthranilate", + tempLow: 256, + temp: 276, + } + elements.methylanthranilateice = { + color: "#FFFBD7", + behavior: behaviors.WALL, + category: "solids", + state: "solid", + density: 1120, + stateHigh: "methulanthranilate", + temphigh: -19, + temp: -39, + } + + elements.grapesoda = { + color: "#5B134F", + behavior: behaviors.LIQUID, + category: "food", + state: "liquid", + density: 1120, + stateHigh: "grapesodagas", + tempHigh: 257, + stateLow: "grapesodaice", + tempLow: -20, + } + + elements.grapesodagas = { + color: "#B99FEA", + behavior: behaviors.GAS, + category: "gases", + state: "gas", + density: 1100, + stateLow: "grapesoda", + tempLow: 256, + temp: 257, + } + +elements.grapesodaice = { + color: "#B99FC2", + behavior: behaviors.WALL, + category: "solids", + state: "solid", + density: 1140, + stateHigh: "grapesoda", + tempHigh: -19, + temp: -20, + } diff --git a/mods/Quicksand_one.js b/mods/Quicksand_one.js new file mode 100644 index 00000000..01659cc1 --- /dev/null +++ b/mods/Quicksand_one.js @@ -0,0 +1,517 @@ + +elements.peat_bog = { + color: "#483C32", + behavior: elements.slime.behavior, + viscosity: 10000, + tempHigh: 55, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1200, + stain: 0.2 +}; +elements.marsh_muck = { + color: "#6B8E23", + behavior: elements.slime.behavior, + viscosity: 10000, + tempHigh: 50, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1000, + stain: 0.25 +}; +elements.quagmire = { + color: "#8B4513", + behavior: elements.slime.behavior, + viscosity: 10000, + tempHigh: 60, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1000, + stain: 0.3 +}; +elements.slime_mold = { + color: "#00FF00", + behavior: elements.slime.behavior, + viscosity: 10000, + tempHigh: 30, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1000, + stain: 0.2 +}; +elements.mangrove_mud = { + color: "#8B4513", + behavior: elements.slime.behavior, + viscosity: 10000, + tempHigh: 55, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1089, + stain: 0.25 +}; +peat_slurry = { + color: "#556B2F", + behavior: elements.slime.behavior, + viscosity: 10000, + tempHigh: 50, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1452, + stain: 0.28 +}; +elements.bog_ooze = { + color: "#2E8B57", + behavior:elements.slime.behavior, + viscosity: 10000, + tempHigh: 100, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1350, + stain: 0.3 +}; +elements.fen_mud = { + color: "#556B2F", + behavior: elements.slime.behavior, + viscosity: 10000, + tempHigh: 100, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1550, + stain: 0.28 +}; +elements.swamp_sludge = { + color: "#6B8E23", + behavior: elements.slime.behavior, + viscosity: 10000, + tempHigh: 52, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1450, + stain: 0.25 +}; +elements.marsh_slime = { + color: "#00FF00", + behavior: elements.slime.behavior, + viscosity: 10000, + tempHigh: 32, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1050, + stain: 0.16 +}; +elements.peat_paste = { + color: "#8B4513", + behavior: elements.slime.behavior, + viscosity: 10000, + tempHigh: 57, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1600, + stain: 0.1 +}; +elements.mudflat_mud = { + color: "#8B4513", + behavior: elements.slime.behavior, + viscosity: 10000, + tempHigh: 60, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1700, + stain: 0.25 +}; +elements.swamp_ooze = { + color: "#556B2F", + behavior: elements.slime.behavior, + viscosity: 10000, + tempHigh: 54, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1400, + stain: 0.20 +}; +elements.peat_pudding = { + color: "#8B4513", + behavior: elements.sap.behavior, + viscosity: 10000, + tempHigh: 58, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1600, + stain: 0.21 +}; +elements.mudflow = { + color: "#8B4513", + behavior: elements.slime.behavior, + viscosity: 10000, + tempHigh: 60, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1700, + stain: 0.2 +}; +elements.marsh_mire = { + color: "#6B8E23", + behavior: elements.slime.behavior, + viscosity: 10000, + tempHigh: 55, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1500, + stain: 0.12 +}; +elements.moor = { + color: "#556B2F", + behavior: elements.slime.behavior, + viscosity: 10000, + tempHigh: 57, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1600, + stain: 0.18 +}; +elements.quicksand_fen = { + color: "#DAA520", + behavior: elements.slime.behavior, + viscosity: 10000, + tempHigh: 62, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1550, + stain: 0.15 +}; +elements.marsh_mudslide = { + color: "#8B4513", + behavior: elements.slime.behavior, + viscosity: 10000, + tempHigh: 58, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1600, + stain: 0.1 +}; +elements.swamp_slime = { + color: "#00FF00", + behavior: elements.slime.behavior, + viscosity: 10000, + tempHigh: 35, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1100, + stain: 0.15 +}; +elements.mire_mud = { + color: "#8B4513", + behavior: elements.slime.behavior, + viscosity: 10000, + tempHigh: 60, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1700, + stain: 0.17 +}; +elements.peat_quicksand = { + color: "#DAA520", + behavior: elements.slime.behavior, + viscosity: 10000, + tempHigh: 65, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1800, + stain: 0.15 +}; +elements.dense_quicksand = { + color: "#DAA520", + behavior: elements.slime.behavior, + viscosity: 1000, + tempHigh: 65, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1900, + stain: 0.2 +}; +elements.swamp_mud = { + color: "#8B4513", + behavior: elements.slime.behavior, + viscosity: 1000, + tempHigh: 60, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1700, + stain: 0.25 +}; +elements.wet_mud = { + color: "#8B4513", + behavior: elements.slime.behavior, + viscosity: 1200, + tempHigh: 55, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1600, + stain: 0.3 +}; +elements.wet_quicksand = { + color: "#DAA520", + behavior: elements.slime.behavior, + viscosity: 700, + tempHigh: 70, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1080, + stain: 0.25 +}; +elements.slimy_mud = { + color: "#008000", + behavior: elements.slime.behavior, + viscosity: 900, + tempHigh: 55, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1550, + stain: 0.3 +}; +elements.sticky_mud = { + color: "#8B4513", + behavior: elements.slime.behavior, + viscosity: 1100, + tempHigh: 58, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1321, + stain: 0.25 +}; +elements.sloppy_mud = { + color: "#8B4513", + behavior: elements.slime.behavior, + viscosity: 1000, + tempHigh: 60, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1700, + stain: 0.3 +}; +elements.thick_mud = { + color: "#8B4513", + behavior: elements.slime.behavior, + viscosity: 1300, + tempHigh: 50, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1800, + stain: 0.35 +}; +elements.gloopy_mud = { + color: "#8B4513", + behavior: elements.slime.behavior, + viscosit: 1950, + tempHigh: 56, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1000, + stain: 0.28 +}; +elements.squelchy_mud = { + color: "#8B4513", + behavior: elements.slime.behavior, + viscosity: 1050, + tempHigh: 58, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1050, + stain: 0.3 +}; +elements.mucky_mud = { + color: "#8B4513", + behavior: elements.slime.behavior, + viscosity: 950, + tempHigh: 57, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1200, + stain: 0.28 +}; +elements.soggy_mud = { + color: "#8B4513", + behavior: elements.slime.behavior, + viscosity: 1050, + tempHigh: 58, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1090, + stain: 0.3 +}; +elements.gunky_mud = { + color: "#8B4513", + behavior: elements.slime.behavior, + viscosity: 900, + tempHigh: 55, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1550, + stain: 0.28 +}; +elements.oozy_mud = { + color: "#8B4513", + behavior: elements.slime.behavior, + viscosity: 950, + tempHigh: 56, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1000, + stain: 0.3 +}; +elements.gooey_mud = { + color: "#8B4513", + behavior: elements.slime.behavior, + viscosity: 1000, + tempHigh: 60, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1300, + stain: 0.3 +}; +elements.goopy_mud = { + color: "#8B4513", + behavior: elements.slime.behavior, + viscosity: 1100, + tempHigh: 58, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1080, + stain: 0.3 +}; +elements.mushy_mud = { + color: "#8B4513", + behavior: elements.slime.behavior, + viscosity: 1000, + tempHigh: 60, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1200, + stain: 0.3 +}; +elements.mud = { + color: "#8B4513", + behavior: elements.slime.behavior, + viscosity: 1050, + tempHigh: 58, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1000, + stain: 0.3 +}; +elements.quicksand = { + color: "#DAA520", + behavior: elements.slime.behavior, + viscosity: 1750, + tempHigh: 70, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1300, + stain: 0.25 +}; +elements.sandy_mud = { + color: "#8B4513", + behavior: elements.sap.behavior, + viscosity: 1600, + tempHigh: 60, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1100, + stain: 0.3 +}; +elements.sticky_quicksand = { + color: "#DAA520", + behavior:elements.sap.behavior, + viscosity: 1700, + tempHigh: 65, + stateHigh: "liquid", + tempLow: 0, + category: "liquids", + state: "liquid", + density: 1100, + stain: 0.25 +}; diff --git a/mods/Science_mod.js b/mods/Science_mod.js index 4c216af2..c2ad9e2c 100644 --- a/mods/Science_mod.js +++ b/mods/Science_mod.js @@ -1,10 +1,8 @@ // Science mod for Sandboxels // (Inspired by survival.js) -// Build 19 -// By: Lucifer (@a_british_proto (Discord)) -// If there is anything you want to suggest or there's a bug then just dm me on discord +// Build 21 +// If there is anything you want to suggest or there's a bug then just dm me on discord (@a_british_proto) // Todo: -// - Try to get the mod to work by making different ways to craft all the (116) elements in the mod // - Make new substances that you can get after mixing different elements // - Make a way to get the different substances by mixing different elements and different substances // - Create different proporties for the substances (doing now) @@ -1378,12 +1376,12 @@ substance.Silver_Oxzide = { substance.Silver_Sulfate = { behavior: behaviors.WALL, color: "FFFFFF", - category: "lands" + category: "lands", state: "solid", hidden:true } -// I have finally gotten my motivation back! :D +// Decided to just change the console.log to a comment because it got me confused between the github page and VSC substance.Silver_Selenide = { behavior: behaviors.WALL, @@ -1446,27 +1444,66 @@ substance.Aluminum_Diboride = { hidden:true } -// Doing this later as my schools blocked chatgpt and the definition is not on Ptable.com :/ -// substance.Aluminum_Dodecaboride = { -// behavior: behaviors.NULL, -// color: "000000", -// category: "null", -// state: "null", -// hidden:true -// } +substance.Aluminum_Dodecaboride = { + behavior: behaviors.WALL, + color: "000000", + category: "lands", + state: "solid", + hidden:true +} -// substance.Aluminum_Bromate_Nonahydrate = { -// behavior: behaviors.NULL, -// color: "000000", -// category: "null", -// state: "null", -// hidden:true -// } +substance.Aluminum_Bromate_Nonahydrate = { + behavior: behaviors.WALL, + color: "FFFFFF", + category: "lands", + state: "solid", + hidden:true +} substance.Aluminum_Tribromide = { - behavior: behavior.NULL, // It's meant to be a powder but I'm too tired to go look plus I need to go to my next lesson now + behavior: behavior.POWDER, color: "FF0000", category: "lands", state: "powder", hidden:true } + +substance.Aluminum_Bromide_Hexahydrate = { + behavior: behaviors.WALL, + color: "FFFFFF", + category: "lands", + state: "solid", + hidden:true +} + +substance.Aluminum_Cerium_Oxide = { + behavior: behaviors.WALL, + color: "FF5E00", + category: "lands", + state: "solid", + hidden:true +} + +substance.Aluminum_Chloride = { + behavior: behaviors.WALL, + color: "FFFFFF", + category: "lands", + state: "solid", + hidden:true +} + +substance.Aluminum_Chlorohydrate = { + behavior: behaviors.POWDER, + color: "FFFFFF", + category: "lands", + state: "powder", + hidden:true +} + +substance.Aluminum_Chloride_Hydrate = { + behavior: behaviors.WALL, + color: "FFFFFF", + category: "lands", + state: "solid", + hidden:true +} diff --git a/mods/buildingreplicator.js b/mods/buildingreplicator.js new file mode 100644 index 00000000..0d7f29fc --- /dev/null +++ b/mods/buildingreplicator.js @@ -0,0 +1,210 @@ +function playSound(soundFile) { + var audio = new Audio("https://JustAGenericUsername.github.io/" + soundFile); + audio.play(); + } + function reverseObject(obj) { + const reversedObj = {}; + for (const key in obj) { + const value = obj[key]; + reversedObj[value] = key; + } + return reversedObj; +} +let blueprint = [ + ["0","0","0","0","0","G","G","G","G","G","0","0","0","0","0"], + ["0","0","0","G","G","S","W","W","W","S","G","G","0","0","0"], + ["0","0","G","W","W","S","W","W","W","S","W","W","G","0","0"], + ["0","G","W","W","W","S","0","0","0","S","W","W","W","G","0"], + ["0","G","W","W","0","0","0","0","0","0","0","W","W","G","0"], + ["G","S","S","S","0","0","0","0","0","0","0","S","S","S","G"], + ["G","W","W","0","0","0","0","0","0","0","0","0","W","W","G"], + ["G","W","W","0","0","0","0","0","0","0","0","0","W","W","G"], + ["G","W","W","0","0","0","0","0","0","0","0","0","W","W","G"], + ["G","S","S","S","0","0","0","0","0","0","0","S","S","S","G"], + ["0","G","W","W","0","0","0","0","0","0","0","W","W","G","0"], + ["0","G","W","W","W","S","0","0","0","S","W","W","W","G","0"], + ["0","0","G","W","W","S","W","W","W","S","W","W","G","0","0"], + ["0","0","0","G","G","S","W","W","W","S","G","G","0","0","0"], + ["0","0","0","0","0","G","G","G","G","G","0","0","0","0","0"] +] +let decaybp = [ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0], + [0,2,2,2,2,0,2,2,2,2,2,2,2,3,1,3,0,4,0], + [5,2,2,6,6,7,6,6,6,6,6,6,6,8,8,8,8,8,0], + [5,2,9,6,6,0,6,0,6,0,6,0,6,9,0,0,0,10,0], + [8,2,11,6,6,0,6,0,6,0,6,0,6,8,8,8,8,8,0], + [5,2,9,6,6,6,0,0,0,0,0,0,6,9,2,2,0,10,0], + [5,2,2,2,9,6,9,9,6,9,9,6,9,9,2,2,0,10,0], + [0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,10,0], + [0,0,9,9,0,9,9,0,9,0,9,9,0,9,9,2,2,2,2]] +function getRandomPixelCoordinates(pixel, offsetx, offsety, bp, keyobject) { + let x, y, r; + let attempts = 0; + const maxAttempts = 1000; + do { + x = Math.floor(Math.random() * bp[0].length); + y = Math.floor(Math.random() * bp.length); + r = bp[y][x]; + r = keyobject[r]; + if (r !== undefined) { + attempts++; + } + if (attempts >= maxAttempts) { + return "terminated"; + } + } while (r === undefined || r === 0 || r === "0" || !isEmpty(pixel.x + x - offsetx, pixel.y + y - offsety, true)); + return { x, y, r }; +} + +elements.turn_into = { + color: "#000000", + behavior: behaviors.WALL, + state: "gas", + hidden: true, + properties: { + timer: 8, + }, + category: "special", + tick: function(pixel){ + if (!pixel.turninto){deletePixel(pixel.x, pixel.y); return} + if (pixel.timer == 8){pixel.color = pixelColorPick({element: pixel.turninto})} + //console.log(elements[pixel.turninto].color) + pixel.timer -- + if (pixel.timer <= 0){ + deletePixel(pixel.x, pixel.y); + createPixel(pixel.turninto, pixel.x, pixel.y); + } + } +} +elements.submitted_blueprint_1_creator = { + color: "#64abfd", + behavior: behaviors.WALL, + state: "solid", + category: "special", + tick: function(pixel){ + if(!pixel.done){ + if (pixelTicks % 3 == 0){ + let randomcoord = getRandomPixelCoordinates(pixel, 7, 7, blueprint, {G: "glass", S: "steel", W: "silver"}); + if (randomcoord == "terminated"){pixel.done = true; return;} + let rx = pixel.x + randomcoord.x-7; + let ry = pixel.y + randomcoord.y-7; + playSound("synth.wav") + try { + createPixel("turn_into", rx, ry); + pixelMap[rx][ry].turninto = randomcoord.r; + pixelMap[rx][ry].timer = 8; + } catch (error) { + console.error("Error occurred at coordinates:", rx, ",", ry); + console.error("Error message:", error); + } + } + if(pixelTicks == pixel.start){ + // playSound("nocmusic.mp3") + } + } + } +} +elements.submitted_blueprint_2_creator = { + color: "#64abfd", + behavior: behaviors.WALL, + state: "solid", + category: "special", + tick: function(pixel){ + if(!pixel.done){ + if (pixelTicks % 3 == 0){ + let randomcoord = getRandomPixelCoordinates(pixel, -1, -1, decaybp, {1: "led_r", 2:"porcelain", 3: "glass", 4: "tungsten", 5: "zinc", 6: "aluminum", 7: "copper", 8: "copper", 9: "steel", 10: "bronze", 11: "sterling"}); + if (randomcoord == "terminated"){pixel.done = true; return;} + let rx = pixel.x + randomcoord.x+1; + let ry = pixel.y + randomcoord.y+1; + playSound("synth.wav") + try { + createPixel("turn_into", rx, ry); + pixelMap[rx][ry].turninto = randomcoord.r; + pixelMap[rx][ry].timer = 8; + } catch (error) { + console.error("Error occurred at coordinates:", rx, ",", ry); + console.error("Error message:", error); + } + } + if(pixelTicks == pixel.start){ + // playSound("nocmusic.mp3") + } + } + } +} +elements.custom_bp_spawner = { + color: "#64abfd", + behavior: behaviors.WALL, + state: "solid", + category: "special", + tick: function(pixel){ + if(!pixel.done){ + if (pixelTicks % 3 == 0){ + let randomcoord = getRandomPixelCoordinates(pixel, -1, -1, customBP, customBPKey); + if (randomcoord == "terminated"){pixel.done = true; return;} + let rx = pixel.x + randomcoord.x+1; + let ry = pixel.y + randomcoord.y+1; + playSound("synth.wav") + try { + createPixel("turn_into", rx, ry); + pixelMap[rx][ry].turninto = randomcoord.r; + pixelMap[rx][ry].timer = 8; + } catch (error) { + console.error("Error occurred at coordinates:", rx, ",", ry); + console.error("Error message:", error); + } + } + if(pixelTicks == pixel.start){ + // playSound("nocmusic.mp3") + } + } + } +} +var customBP = [] +var customBPKey = {} +let bpsizeH = 15; +let bpsizeW = 15; +let generatedBP = []; +let seenElements = {}; +elements.bp_scanner = { + color: "#64abfd", + behavior: behaviors.SOLID, + state: "solid", + category: "special", + onSelect: function(pixel){ + bpsizeH = prompt("Enter the height of the blueprint. It will be scanned from the TOP LEFT corner.", 15); + bpsizeW = prompt("Enter the width of the blueprint", 15); + }, + tick: function(pixel){ + if(pixelTicks == pixel.start){ + generatedBP = []; + for (let y = 1; y <= bpsizeH; y++){ + generatedBP.push([]); + } + let elementCounter = 1; + seenElements = {}; + for (let y = 0; y < bpsizeH; y++){ + for (let x = 0; x < bpsizeW; x++){ + if (!isEmpty(pixel.x + x + 1, pixel.y + y + 1, true)){ + var opElement = pixelMap[pixel.x + x+1][pixel.y + y+1].element; + if (!seenElements[opElement]){ + generatedBP[y].push(elementCounter); + seenElements[opElement] = elementCounter; + elementCounter++; + } else { + generatedBP[y].push(seenElements[opElement]); + } + } else { + generatedBP[y].push(0); + } + } + } + console.log(generatedBP); + console.log(seenElements); + deletePixel(pixel.x, pixel.y); + customBP = generatedBP; + customBPKey = reverseObject(seenElements); + } + } +} + diff --git a/mods/heatglow.js b/mods/heatglow.js index 8c8dabc0..2293bc77 100644 --- a/mods/heatglow.js +++ b/mods/heatglow.js @@ -3,7 +3,7 @@ function weightedAverage(num1, num2, weight){ } const heatfunc = function(pixel){ if (pixel.element != "metal_scrap" || eLists.metals.includes(pixel.scrapType) || !pixel.scrapType){{ - if (pixel.ogR == null || pixel.ogG == null || pixel.ogB == null || (pixel.element != pixel.ogElement && pixel.element == "metal_scrap") || (pixel.element != "metal_scrap" && pixel.ogElement == "metal_scrap")){ + if (pixel.ogR == null || pixel.ogG == null || pixel.ogB == null || (pixel.element != pixel.ogElement && pixel.element == "metal_scrap") || (pixel.element != "metal_scrap" && pixel.ogElement == "metal_scrap") || (pixel.element == "oxidized_copper" && pixel.ogElement == "copper")){ pixel.ogR = parseInt(pixel.color.slice(4, pixel.color.indexOf(',')), 10) pixel.ogG = parseInt(pixel.color.slice(pixel.color.indexOf(',') + 1, pixel.color.lastIndexOf(',')), 10) pixel.ogB = parseInt(pixel.color.slice(pixel.color.lastIndexOf(',') + 1, -1), 10) diff --git a/mods/nousersthings.js b/mods/nousersthings.js index 59e7028e..524b532e 100644 --- a/mods/nousersthings.js +++ b/mods/nousersthings.js @@ -1798,6 +1798,7 @@ elements.invisiblewall = { category: "solids", movable: false, noMix: true, + hardness: 1, }, elements.bismuth = { color: ["#818181","#989898","#b0b0b0","#c9c9c9"], diff --git a/mods/potato_chips.js b/mods/potato_chips.js new file mode 100644 index 00000000..e0de48f1 --- /dev/null +++ b/mods/potato_chips.js @@ -0,0 +1,44 @@ +elements.potato_chip = { + behavior: behaviors.STURDYPOWDER, + state: "solid", + density: 1350, + color: ["#F7DD93", "#D8A44B"], + category: "food", + desc: "Potato chip. Turns potato next to it into potato chip if temp is >= 104.", + + tick: function(pixel) { + if(pixelTicks - pixel.start >= 15) { + 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"); + } + } + 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"); + } + } + if (!isEmpty(pixel.x - 1, pixel.y, true)) { + if (pixel.temp >= 104 && pixelMap[pixel.x - 1][pixel.y].element === "potato") { + changePixel(pixelMap[pixel.x - 1][pixel.y], "potato_chip"); + } + } + if (!isEmpty(pixel.x + 1,pixel.y, true)) { + if (pixel.temp >= 104 && pixelMap[pixel.x + 1][pixel.y].element === "potato") { + changePixel(pixelMap[pixel.x + 1][pixel.y], "potato_chip"); + } + } + } + } +} + +elements.sunflower_oil = { + behavior: behaviors.LIQUID, + color: ["#FFFFCC", "#FFFF99", "#FFFF66", "#FFFF33", "#FFFF00", "#FFCC00"], + viscosity: 63, + category: "food", + state: "liquid", + reactions: { + "potato": {elem2: "potato_chip", tempMin: 140}, + } +} diff --git a/mods/scp.js b/mods/scp.js index bdc51970..a6eb71dc 100644 --- a/mods/scp.js +++ b/mods/scp.js @@ -253,7 +253,6 @@ elements.mask_head = { burnTime: 250, burnInto: "possessive_mask", breakInto: "possessive_mask", - forceSaveColor: true, reactions: { "cancer": { elem1: "possessive_mask", chance:0.05 }, "tea": { elem2:null, chance:0.2 }, @@ -429,6 +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"]; } else { deletePixel(pixel.x, pixel.y); @@ -593,7 +593,6 @@ elements.doc_body = { burn: .01, burnTime: 300, burnInto: "rotten_meat", - forceSaveColor: true, reactions: { "head": { elem2 : "z_head" , chance:0.3}, "body": { elem2 : "z_body" , chance:0.3}, @@ -869,9 +868,11 @@ elements.shy_head = { burnTime: 3000, burnInto: "bone", reactions: { - "homunculus": { elem2 : ["blood","slime","blood","slime","rotten_meat",null] }, - "head": { elem2 : ["blood","blood","blood","bone",null] }, - "body": { elem2: ["blood","blood","meat","bone",null] }, + "homunculus": { elem2 : ["blood","slime","blood","slime","rotten_meat",null] }, + "head": { elem2 : ["blood","blood","blood","bone",null] }, + "body": { elem2: ["blood","blood","meat","bone",null] }, + "z_head": { elem2 : ["infection","infection","infection","bone",null] }, + "z_body": { elem2: ["infection","infection","rotten_meat","bone",null] }, "rat": { elem2: ["infection","rotten_meat",null]}, "frog": { elem2: ["slime",null] }, "cell": { elem2: ["dna","water",null] }, @@ -986,10 +987,12 @@ elements.shy_body = { burnInto: "bone", forceSaveColor: true, reactions: { - "homunculus": { elem2 : ["blood","slime","blood","slime","rotten_meat",null] }, - "head": { elem2 : ["blood","blood","blood","meat","bone",null] }, - "body": { elem2: ["blood","blood","meat","bone",null] }, - "rat": { elem2: ["infection","rotten_meat"]}, + "homunculus": { elem2 : ["blood","slime","blood","slime","rotten_meat",null] }, + "head": { elem2 : ["blood","blood","blood","bone",null] }, + "body": { elem2: ["blood","blood","meat","bone",null] }, + "z_head": { elem2 : ["infection","infection","infection","bone",null] }, + "z_body": { elem2: ["infection","infection","rotten_meat","bone",null] }, + "rat": { elem2: ["infection","infection","plague"] }, "frog": { elem2: "slime" }, "cell": { elem2: ["dna","water",null] }, "cancer": { elem2: ["dna","dirty_water"] }, @@ -1007,11 +1010,12 @@ elements.SCP_682 = { category: "scp", density: 7500, reactions: { - "head": { elem2 : ["bone","blood",null] , chance:10 }, - "body": { elem1 : "mad_682" , elem2 : ["meat","blood",null] , chance:10 }, - "z_head": { elem2 : ["bone","infection",null] , chance:10 }, - "z_body": { elem1 : "mad_682" , elem2 : ["rotten_meat","infection",null] , chance:10 }, - "homunculus": { elem2 : ["slime","blood",null] , chance:10 }, + "head": { elem2 : ["bone","blood",null] , chance:50 }, + "body": { elem1 : "mad_682" , elem2 : ["meat","blood",null] , chance:50 }, + "z_head": { elem2 : ["infection","infection","infection","bone",null] , chance:50 }, + "z_body": { elem1 : "mad_682" , elem2: ["infection","infection","rotten_meat","bone",null] , chance:50 }, + "homunculus": { elem2 : ["slime","blood",null] , chance:10 }, + "rat": { elem2: ["infection","infection","plague"] }, "frog": { elem2 : ["slime","blood",null] , chance:10 }, "bird": { elem2 : ["feather","blood",null] , chance:10 }, "meat": { elem2 : null , chance:0.2 }, @@ -1072,6 +1076,8 @@ elements.mad_682 = { reactions: { "head": { elem2 : ["bone","blood",null] }, "body": { elem2 : ["meat","blood",null] }, + "z_head": { elem2 : ["bone","infection",null] }, + "z_body": { elem2 : ["meat","infection",null] }, "homunculus": { elem2 : ["slime","blood",null] }, "frog": { elem2 : ["slime","blood",null] }, "bird": { elem2 : ["feather","blood",null] }, @@ -1223,4 +1229,4 @@ elements.hyper_tickle_monster = { stain: 0.08, }; -// SCPs with ID over 999 here \ No newline at end of file +// SCPs with ID over 999 here diff --git a/mods/spaceship.js b/mods/spaceship.js new file mode 100644 index 00000000..3602462e --- /dev/null +++ b/mods/spaceship.js @@ -0,0 +1,138 @@ +elements.power_core = { + color: ["#10F7F3", "#5AEDEB", "#BDFCFB"], + behavior: behaviors.WALL, + temp: 250, + category: "special", + stateHigh: "n_explosion", + tempHigh: 9500, + state: "solid", + desc: "The power core for your spaceship! Make sure it doesnt reach 9500 degrees!" , + tick: function(pixel) { + const elementToCheck = "core_casing"; +let isValid = true; +for (let i = pixel.x - 4; i < pixel.x + 4; i++) { + for (let j = pixel.y - 4; j < pixel.y + 4; j++) { + if (Math.abs(pixel.x - i) === 4 || Math.abs(pixel.y - j) === 4) {isValid &= pixelMap[i][j]?.element === elementToCheck;} + else if (i !== pixel.x && j !== pixel.y) isValid &= isEmpty(i, j); + } +} +// if (!pixel.alerted) { + // if (isValid) { alert("Power Core succesfully stored") } + // else { alert("Invalid core! Make sure its a 9x9 hollow box with the pixel in the middle!"); } + // pixel.alerted = true; +// } Not finished Yet +if (pixel.temp === 5000) { pixel.color = pixelColorPick(pixel,"#F92810");} + else if ( pixel.temp < 2000) { pixel.color = pixelColorPick(pixel,"#F9B610");} + else { pixel.color = pixelColorPick(pixel,"#5AEDEB");} + if (isValid) { if (pixelMap[pixel.x][pixel.y-4].element === "core_casing") + {createPixel("core_energizer", pixel.x, pixel.y-5);}} + else {{createPixel("core_energizer", pixel.x, pixel.y-4);} + } +}, +}; +elements.thrusters = { + color: ["#8D8D8C", "#666666"], + behavior: behaviors.WALL, + category: "special", + behaviorOn: [ + "XX|XX|XX", + "XX|XX|CR:fire", + "XX|XX|XX", + ], + state: "solid", + desc: "Use this to drive your ship! (Cosmetic)", + conduct:1, +}; +elements.core_wall = { + color: ["#6EB5F1", "#708494"], + behavior: behaviors.WALL, + hardness: 1, + density: 90000000, + desc: "Harder than anything in the world!", + category: "special", +}; +elements.space_blaster = { + color: ["#10F7F3", "#5AEDEB", "#BDFCFB"], + tick: function(pixel) { + for (var i = 0; i < 3; i++) { + var skip = false; + if (!isEmpty(pixel.x,pixel.y-1,true)) { + var p = pixelMap[pixel.x][pixel.y-1]; + if (p.element === "space_blaster") { skip = true; } + if (Math.random() < 0.9 && elements[p.element].hardness !== 1) { + deletePixel(p.x,p.y); + } + } + if (!tryMove(pixel,pixel.x-1,pixel.y,["flash","heat_ray","electric"]) && !skip) { + explodeAt(pixel.x,pixel.y,30,"plasma"); + var coords = circleCoords(pixel.x,pixel.y,15); + coords.forEach(function(coord) { + var x = coord.x; + var y = coord.y; + if (!isEmpty(x,y,true)) { + pixelMap[x][y].temp += 10000; + pixelTempCheck(pixelMap[x][y]); + } + }) + deletePixel(pixel.x,pixel.y); + return; + } + } + }, + category: "energy", + state: "solid", + density: 100000000, + temp: 10000, + hardness: 1, + maxSize: 3, + cooldown: defaultCooldown, + excludeRandom: true, + desc: "A energized blaster pixel", +}; +elements.space_gunner_LEFT = { + color: ["#708494", "#5A6873"], + behavior: behaviors.WALL, + category: "special", + behaviorOn: [ + "XX|XX|XX", + "CR:space_blaster|XX|XX", + "XX|XX|XX", + ], + state: "solid", + desc: "Use this to shoot your enemies! (Shoots Left)", + conduct:1, +}; +elements.space_gunner_RIGHT = { + color: ["#708494", "#5A6873"], + behavior: behaviors.WALL, + category: "special", + behaviorOn: [ + "XX|XX|XX", + "XX|XX|CR:space_blaster", + "XX|XX|XX", + ], + state: "solid", + desc: "Use this to shoot your enemies! (Shoots Right)", + conduct:1, +}; +elements.core_energizer = { + color: "#FFFB00", + hidden: true, + behavior: behaviors.WALL, + state: "solid", + tick: function(pixel) { + createPixel("radiation", pixel.x, pixel.y+1) + }, +}; +elements.core_casing = { + color: ["#4A7375","#C1D875","#8BFCF3"], + reactions: { + "radiation": { elem2:"electric", temp1:200 } + }, + behavior: behaviors.WALL, + category: "special", + density: 2710, + conduct: 0.73, + hardness: 1, + desc: "Casing for the inner core!", + }; \ No newline at end of file