Merge branch 'R74nCom:main' into main
This commit is contained in:
commit
24749a2244
11
index.html
11
index.html
|
|
@ -16243,7 +16243,8 @@ Cancer, Landmine, Grenade, Smoke Grenade">?</span> <input type="button" value="O
|
|||
<option value="zh_cn">简体中文</option>
|
||||
</optgroup>
|
||||
</select></p>
|
||||
<p>Email us at <a href="mailto:contact@R74n.com">contact@R74n.com</a> for advertising, help, or education!</p>
|
||||
<p>Try our NEW GAME: <a href="https://R74n.com/cook/" target="_blank">Infinite Chef</a></p>
|
||||
<p>Email us at <a href="mailto:contact@R74n.com?subject=%5BSandboxels%5D">contact@R74n.com</a> for advertising, help, or education!</p>
|
||||
<div id="newsletterFrame">Be notified when Sandboxels and other R74n projects are updated, along with ramblings from the developer!<br><br>
|
||||
<form action="https://news.r74n.com/api/v1/free?nojs=true" method="post" class="form _form_1mxvn_6" novalidate="" target="_blank"><input type="hidden" name="first_url" value="https://news.r74n.com/embed"><input type="hidden" name="first_referrer"><input type="hidden" name="current_url" value="https://news.r74n.com/embed"><input type="hidden" name="current_referrer"><input type="hidden" name="referral_code"><input type="hidden" name="source" value="embed"><input type="hidden" name="referring_pub_id"><input type="hidden" name="additional_referring_pub_ids">
|
||||
<input type="email" placeholder="Type your email..." name="email" style="padding:15px"><input type="submit" value="Subscribe" style="background: rgb(23, 166, 255); padding:15px; border-radius: 20px"></input>
|
||||
|
|
@ -16258,10 +16259,10 @@ Cancer, Landmine, Grenade, Smoke Grenade">?</span> <input type="button" value="O
|
|||
border: white solid 2px;
|
||||
}
|
||||
</style>
|
||||
<!-- <iframe id="newsletteriframe" width="450" height="250" style="border:1px solid #EEE; background:black; max-width:90%" frameborder="0" scrolling="no"></iframe>
|
||||
<!-- <iframe id="newsletteriframe" width="450" height="250" style="border:1px solid #EEE; background:black; max-width:90%" frameborder="0" scrolling="no"></iframe> -->
|
||||
<script>
|
||||
window.addEventListener('load', function() {
|
||||
document.getElementById("newsletteriframe").src = "https://news.r74n.com/embed";
|
||||
// document.getElementById("newsletteriframe").src = "https://news.r74n.com/embed";
|
||||
var langSelect = document.getElementById("langSelect");
|
||||
if (langCode) { langSelect.value = langCode }
|
||||
else if (settings.lang) { langSelect.value = settings.lang }
|
||||
|
|
@ -16270,7 +16271,7 @@ Cancer, Landmine, Grenade, Smoke Grenade">?</span> <input type="button" value="O
|
|||
document.getElementById("langCredit").style.display = "block";
|
||||
}
|
||||
})
|
||||
</script> -->
|
||||
</script>
|
||||
<p>Support development by subscribing on <a href="https://www.patreon.com/R74n" rel="me" target="_blank">our Patreon</a>! Many benefits!!</p>
|
||||
</div>
|
||||
|
||||
|
|
@ -16284,7 +16285,7 @@ Cancer, Landmine, Grenade, Smoke Grenade">?</span> <input type="button" value="O
|
|||
<p>Sandboxels has many <a href="https://sandboxels.R74n.com/education-use"></a>applications in education</a>. With a hands-on experience, it can give students an understanding of emerging phenomena in many fields, such as biology, chemistry, ecology, geology, cooking, and even virology. There are countless aspects to discover.</p>
|
||||
<p>We have a thriving community on <a href="https://discord.gg/ejUc6YPQuS" target="_blank">Discord</a>! There you can post feedback or share your creations.</p>
|
||||
<!-- <p>If you'd like to support us, consider donating on <a href="https://www.paypal.com/donate/?hosted_button_id=GCX4VHQ7SZWTN" target="_blank">PayPal</a> or <a href="https://cash.app/$emojiartist" target="_blank" title="$emojiartist">CashApp</a>, or subscribing on Discord.</p> -->
|
||||
<p>Business inquiries? Education stories? Help needed? Email us at <a href="mailto:contact@r74n.com">contact@R74n.com</a>!</p>
|
||||
<p>Business inquiries? Education stories? Help needed? Email us at <a href="mailto:contact@R74n.com?subject=%5BSandboxels%5D">contact@R74n.com</a>!</p>
|
||||
<p>More links: <a href="https://sandboxels.R74n.com/help" rel="help">Help</a> • <a href="https://sandboxels.R74n.com/tips">Tips</a> • <a href="https://sandboxels.R74n.com/mod-list">Mods</a> • <a href="https://sandboxels.R74n.com/mobile-use">Mobile</a> • <a href="https://sandboxels.R74n.com/offline-use">Offline</a> • <a href="https://R74n.com/privacy">Privacy</a></p>
|
||||
<p>Thanks to: Serioustar, ggod, Midi_png, personman, fnl4y, PitsPower, swagg boi, kaeud, WeiChei, Trent, u2ce</p>
|
||||
<p style="display:none" id="langCredit">Translation by R74n</p>
|
||||
|
|
|
|||
20
lang/hu.json
20
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"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -117,11 +117,12 @@
|
|||
<tr><td>velocity.js</td><td>Beta for explosion velocity, and later wind, which may come to the base game in the future</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
|
||||
<!----><tr><td class="modCat" colspan="3">Tools & Settings</td></tr><!---->
|
||||
<tr><td>adjustablepixelsize.js</td><td>Allows you to set the pixelSize with a URL parameter</td><td>Alice</td></tr>
|
||||
<!-- <tr><td>adjustablepixelsize.js</td><td>Allows you to set the pixelSize with a URL parameter</td><td>Alice</td></tr> -->
|
||||
<tr><td>betaworldgen.js</td><td>adds a more advanced world generation to the game</td><td>Adora</td></tr>
|
||||
<tr><td>betterModManager.js</td><td>Improvements to the Mod Manager</td><td>ggod</td></tr>
|
||||
<tr><td>betterSettings.js</td><td>Adds additional settings and functionality</td><td>ggod</td></tr>
|
||||
<tr><td>betterStats.js</td><td>Separate “real” and “set” TPS, meaning you can see what the TPS actually is, instead of only seeing what it’s set to</td><td>mollthecoder</td></tr>
|
||||
<tr><td>buildingreplicator.js</td><td>Scans and replicates builds anywhere on the screen, along with some preset submitted builds</td><td>nousernamefound</td></tr>
|
||||
<tr><td>change.js</td><td>Adds a tool that only replaces existing pixels</td><td>Alice</td></tr>
|
||||
<tr><td>color_tools.js</td><td>Adds tools that manipulate colors</td><td>Alice</td></tr>
|
||||
<tr><td>controllable_pixel_test.js</td><td>Adds a pixel that can be controlled with the keyboard keys. <a href="https://github.com/R74nCom/sandboxels/commit/58dfa9477f2ed7ec9c44b00a35162e7c63bc129c">Read the commit description for more info.</a> [PC ONLY]</td><td>Alice</td></tr>
|
||||
|
|
@ -150,12 +151,13 @@
|
|||
<tr><td>save_loading.js</td><td>Adds the ability to save and load scenes from files (See the info page of the element)</td><td>Alice</td></tr>
|
||||
<tr><td>selective_paint.js</td><td>Adds a tool to paint only selected elements</td><td>SquareScreamYT</td></tr>
|
||||
<tr><td>stripe_paint.js</td><td>Adds a tool to paint with stripes</td><td>Alice</td></tr>
|
||||
<tr><td>texturepack.js</td><td>Adds tools that let you create and share custom texture packs</td><td>nousernamefound</td></tr>
|
||||
<tr><td>the_ground.js</td><td>Adds several rock types, worldgen settings, and gemstones</td><td>Alice</td></tr>
|
||||
|
||||
<!----><tr><td class="modCat" colspan="3">Science & Chemistry</td></tr><!---->
|
||||
<tr><td>alcohol.js</td><td>Adds methanol, (iso-)propanol, and butanol</td><td>Alice</td></tr>
|
||||
<tr><td>alkahest.js</td><td>Adds the alkahest, a liquid which dissolves anything</td><td>Alice</td></tr>
|
||||
<tr><td>aScientistsWish.js</td><td>Adds things that related to science, especially radiation</td><td>Carbon Monoxide, CPU</td></tr>
|
||||
<tr><td>aScientistsWish.js</td><td>Adds things that related to science, especially radiation</td><td>Carbon Monoxide, salmonfishy</td></tr>
|
||||
<tr><td>bettermetalscrap.js</td><td>Allows metal scrap to be melted back into its original material</td><td>nousernamefound</td></tr>
|
||||
<tr><td>bigger_star_spawners.js</td><td>Adds spawners for larger stars</td><td>Alice</td></tr>
|
||||
<tr><td>bioooze_and_pyrogens.js</td><td>Adds Bio-Ooze from <a herf="https://frackinuniverse.miraheze.org/wiki/Main_Page">Frackin’ Universe</a> and several heat-producing materials from various games’ mods</td><td>Alice</td></tr>
|
||||
|
|
@ -224,13 +226,15 @@
|
|||
<!----><tr><td class="modCat" colspan="3">Food & Cooking</td></tr><!---->
|
||||
<tr><td>aChefsDream.js</td><td>Adds more foods, animals, tools and many other cooking related items. Updates can be found in <a href="https://www.youtube.com/watch?v=pQFTtlNPODQ&list=PLWHqGb75vC8o7CLv-pMoVb56JL9BY9F0t">this YouTube Playlist</a></td><td>SquareScreamYT</td></tr>
|
||||
<tr><td>aChefsDream_beta.js</td><td>Beta testing for aChefsDream. The code can be found <a href="https://www.github.com/SquareScreamYT/aChefsDream.js">on GitHub</a></td><td>SquareScreamYT</td></tr>
|
||||
<tr><td>bananas.js</td><td>Adds bananas and banana plants</td><td>Alice</td></tr>
|
||||
<tr><td>bananas.js</td><td>Adds bananas and banana plants</td><td>Alice</td></tr>'
|
||||
<tr><td>CherrySoda.js</td><td>Adds materials to make Cherry soda. Benzaldehyde + seltzer = Cherrysoda.</td><td>guzzo86</td></tr>
|
||||
<tr><td>community_desserts.js</td><td>Adds various desserts from community suggestions</td><td>Tisquares</td></tr>
|
||||
<tr><td>greenitemsandmore.js</td><td>Adds various green things, including apples and more food</td><td>zonneschijn7</td>
|
||||
<tr><td>ketchup_mod.js</td><td>Adds a bunch of ketchup related stuff, plus a few other condiments</td><td>Nubo318 (main dev), Devi, Alice (contributors)</td></tr>
|
||||
<tr><td>lemonade.js</td><td>Adds lemons and lemonade</td><td>personman / baconthemyth</td></tr>
|
||||
<tr><td>morefoodsmod.js</td><td>Adds more foods</td><td>Clide4</td></tr>
|
||||
<tr><td>pizzasstuff.js</td><td>New animals, foods, and plants</td><td>_ilikepizza_</td></tr>
|
||||
<tr><td>potato_chips.js</td><td>Potato chips.</td><td>guzzo86</td></tr>
|
||||
<tr><td>sbstuff.js</td><td>Adds many foods</td><td>stefanblox</td></tr>
|
||||
<tr><td>soups.js</td><td>Adds seasoning and soup</td><td>pixelegend4</td></tr>
|
||||
<tr><td>weAllScreamFor.js</td><td>Adds ice cream toppings</td><td>rottenEgghead</td></tr>
|
||||
|
|
|
|||
|
|
@ -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)]
|
||||
}
|
||||
|
|
@ -74,6 +74,14 @@ if (Math.abs(settings.randomcount) == settings.randomcount){
|
|||
}else(elements["element_"+i].desc += (" or " + reaction))
|
||||
}
|
||||
}
|
||||
for (var reaction in elements["element_" + i].reactions){
|
||||
if (elements[elements["element_"+i].reactions[reaction].elem1].category == "tools" || elements[elements["element_"+i].reactions[reaction].elem2].category == "tools"){
|
||||
console.log(i + " makes a tool...? when it touches " + reaction)
|
||||
if (!elements["element_"+i].desc){
|
||||
elements["element_" + i].desc = "This breaks the laws of physics if it touches " + reaction
|
||||
}else(elements["element_"+i].desc += (" or " + reaction))
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (var i = 1; i <= settings.randomcount; i++){
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,141 @@
|
|||
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,
|
||||
}
|
||||
|
||||
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,
|
||||
burn: 100,
|
||||
burnTime: 100,
|
||||
}
|
||||
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,
|
||||
}
|
||||
|
|
@ -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
|
||||
};
|
||||
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
elements.cash = {
|
||||
color: "#00e600",
|
||||
behavior: behaviors.POWDER,
|
||||
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,
|
||||
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",
|
||||
};
|
||||
|
|
@ -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);
|
||||
}
|
||||
})()
|
||||
|
|
@ -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);
|
||||
}
|
||||
})()
|
||||
|
|
@ -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)",(ct||undefined)));
|
||||
if (!answer4) { return }
|
||||
ct = answer4;
|
||||
if (isNaN(answer4)) {
|
||||
ct = 100
|
||||
}
|
||||
},
|
||||
tool: function(pixel) {
|
||||
pixel.temp = pixel.temp - ct,
|
||||
pixelTempCheck(pixel)
|
||||
},
|
||||
category: "tools",
|
||||
};
|
||||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -1798,6 +1798,7 @@ elements.invisiblewall = {
|
|||
category: "solids",
|
||||
movable: false,
|
||||
noMix: true,
|
||||
hardness: 1,
|
||||
},
|
||||
elements.bismuth = {
|
||||
color: ["#818181","#989898","#b0b0b0","#c9c9c9"],
|
||||
|
|
|
|||
|
|
@ -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 - 180.",
|
||||
|
||||
tick: function(pixel) {
|
||||
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");
|
||||
}
|
||||
}
|
||||
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},
|
||||
}
|
||||
}
|
||||
36
mods/scp.js
36
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";
|
||||
pixel.color = pixelColorPick(pixel)
|
||||
}
|
||||
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
|
||||
// SCPs with ID over 999 here
|
||||
|
|
|
|||
|
|
@ -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!",
|
||||
};
|
||||
|
|
@ -0,0 +1,94 @@
|
|||
if (!settings.texturepack){
|
||||
settings.texturepack = {}
|
||||
saveSettings()
|
||||
}
|
||||
elements.clear_textures = {
|
||||
color: "#dd0000",
|
||||
onSelect: function(){
|
||||
var sure = prompt("Are you sure you wanna reset all texture data? Type \"yes\". Also, refresh once you've done this for the changes to apply!", "no");
|
||||
if (sure == "yes"){
|
||||
settings.texturepack = {}
|
||||
saveSettings()
|
||||
}
|
||||
},
|
||||
canPlace: false,
|
||||
category: "texture tools"
|
||||
}
|
||||
var addSave = null
|
||||
elements.add_texture = {
|
||||
color: elements.rainbow.color,
|
||||
category: "texture tools",
|
||||
canPlace: false,
|
||||
onSelect: function(){
|
||||
var whoelement = prompt("What element would you like to change the texture of? Type no if this was a mistake.", (addSave||"no"))
|
||||
if (whoelement != "no"){
|
||||
addSave = whoelement
|
||||
var replacehm = prompt("Would you like to overwrite all textures or add? 1 for overwrite, 2 for add.", 2)
|
||||
var colortodo = prompt("Hex code, please! Also, refresh once you've done this for the changes to apply!", "#ff0000")
|
||||
if (replacehm == 1){
|
||||
if (!replacehm || !colortodo){return}
|
||||
if (!settings.texturepack[whoelement]){settings.texturepack[whoelement] = []}
|
||||
settings.texturepack[whoelement] = [colortodo]
|
||||
elements[whoelement].color = settings.texturepack[whoelement]
|
||||
saveSettings()
|
||||
} else {
|
||||
if (!replacehm || !colortodo){return}
|
||||
if (!settings.texturepack[whoelement]){settings.texturepack[whoelement] = []}
|
||||
settings.texturepack[whoelement].push(colortodo)
|
||||
elements[whoelement].color = settings.texturepack[whoelement]
|
||||
saveSettings()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
elements.remove_a_texture = {
|
||||
color: elements.void.color,
|
||||
category: "texture tools",
|
||||
canPlace: false,
|
||||
onSelect: function(){
|
||||
var whoelement = prompt("What element would you like to change the texture of? Type no if this was a mistake.", "no")
|
||||
if (whoelement != "no"){
|
||||
var replacehm = prompt("Would you like to delete all textures of the element or just one? Type 1 for all, 2 for just one.", 2)
|
||||
var colortodo = prompt(("Ignore this if you chose 1. Index of the color you wanna delete. For reference, here are the current colors:" + settings.texturepack[whoelement]), 0)
|
||||
if (replacehm == 1){
|
||||
delete settings.texturepack[whoelement]
|
||||
saveSettings()
|
||||
} else {
|
||||
delete settings.texturepack[whoelement][colortodo]
|
||||
elements[whoelement].color = settings.texturepack[whoelement]
|
||||
saveSettings()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
elements.list_all_textures = {
|
||||
color: elements.mix.color,
|
||||
category: "texture tools",
|
||||
canPlace: false,
|
||||
onSelect: function(){
|
||||
var whoelement = prompt("What element would you like to see the textures of?")
|
||||
alert(whoelement + " has the following textures: " + settings.texturepack[whoelement])
|
||||
}
|
||||
}
|
||||
elements.texture_pack_share_or_load = {
|
||||
color: elements.image.color,
|
||||
category: "texture tools",
|
||||
canPlace: false,
|
||||
onSelect: function(){
|
||||
var whichSL = prompt("Would you like to copy the texture pack to your clipboard or load it from your clipboard? Type 1 for copy, 2 for load.", 1)
|
||||
if (whichSL == 1){
|
||||
var text = JSON.stringify(settings.texturepack)
|
||||
alert(text)
|
||||
} else {
|
||||
var text = prompt("Paste your texture pack here. It should be in the format of a JSON object.")
|
||||
if (text){
|
||||
settings.texturepack = JSON.parse(text)
|
||||
saveSettings()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (settings.texturepack){
|
||||
for (var elementi in settings.texturepack){
|
||||
elements[elementi].color = settings.texturepack[elementi]
|
||||
}}
|
||||
Loading…
Reference in New Issue