Merge branch 'R74nCom:main' into main
This commit is contained in:
commit
1b0e9e89fe
|
|
@ -109,6 +109,76 @@
|
|||
<p>The original <a href="https://sandboxels.r74n.com/changelog.txt">plain text version</a> of this is still maintained.</p>
|
||||
</div>
|
||||
|
||||
<h2 id="5.9.1">[Version 5.9.1 - April 1, 2024 - Multiversal Update]</h2>
|
||||
<ul>
|
||||
<li>+ Multiverse Time Travel</li>
|
||||
<li> + Use Timeline controls to navigate multidimensional space</li>
|
||||
<li> + Split off from your current timeline</li>
|
||||
<li>+ Eat tool</li>
|
||||
<li>+ Mirror Dimension</li>
|
||||
<li> + Access by throwing a test subject into a Mirror Portal</li>
|
||||
<li>+ Moon</li>
|
||||
<li>+ Moon Rock (Hidden)</li>
|
||||
<li>+ Freeze tool</li>
|
||||
<li>+ Freeze Ray</li>
|
||||
<li>+ Air</li>
|
||||
<li>+ UFO</li>
|
||||
<li>+ Life Force</li>
|
||||
<li>+ Carbon</li>
|
||||
<li>+ Photon</li>
|
||||
<li>+ Electron</li>
|
||||
<li>+ BBQ Sauce</li>
|
||||
<li>+ Mustard</li>
|
||||
<li>+ Holy Grenade</li>
|
||||
<li>+ Ice Ten</li>
|
||||
<li>+ Love (Amends anuran ailments)</li>
|
||||
<li>+ Love Bomb</li>
|
||||
<li>+ Dirt Bomb</li>
|
||||
<li>+ Cluster Cluster Bomb</li>
|
||||
<li>+ Cherry</li>
|
||||
<li>+ Blueberry</li>
|
||||
<li>+ Olive</li>
|
||||
<li>+ Blue Cheese</li>
|
||||
<li>+ Toad</li>
|
||||
<li>+ Mouse</li>
|
||||
<li>+ Basketball</li>
|
||||
<li>+ Baseball</li>
|
||||
<li>+ Tennis Ball</li>
|
||||
<li>+ Quirky Paint</li>
|
||||
<li>+ Pen tool</li>
|
||||
<li>+ Cursor</li>
|
||||
<li>+ Powder</li>
|
||||
<li>+ Footprint</li>
|
||||
<li>+ Light Ice (Hidden)</li>
|
||||
<li>+ Big Bang (Hidden)</li>
|
||||
<li>[Changes]</li>
|
||||
<li>+ 68% of Humans are lactose intolerant</li>
|
||||
<li>+ 1% of Humans are gluten intolerant</li>
|
||||
<li>+ Humans now drink Water</li>
|
||||
<li>- Removed Gender Binary</li>
|
||||
<li>+ Fireflies have a distinct sound</li>
|
||||
<li>+ Bless converts Antimatter and Strange Matter to Normal Matter</li>
|
||||
<li>+ Bless removes money, the root of all evil</li>
|
||||
<li>+ Bless converts Plastic to eco-friendly Paper</li>
|
||||
<li>+ Bless converts Water to Wine</li>
|
||||
<li>+ Pb&J recipe</li>
|
||||
<li>+ Helium can freeze again</li>
|
||||
<li>+ Helium increases pitch of Human voice</li>
|
||||
<li>- Removed Blood</li>
|
||||
<li>~ Birds have been recolored as tribute</li>
|
||||
<li>~ Udders produce many kinds of Milk</li>
|
||||
<li>~ Cheerful Mode now hides ALL weapons</li>
|
||||
<li>~ Moved Firework to Machines</li>
|
||||
<li>~ Moved Ball to Special</li>
|
||||
<li>~ Renamed Gray Goo to Grey Goo</li>
|
||||
<li>~ Renamed Molten Tin to Moltin</li>
|
||||
<li>~ Unhid Supernova</li>
|
||||
<li>+ Re-added Cluster Bomb</li>
|
||||
<li>[Bug Fixes]</li>
|
||||
<li>~ Fixed: Water is not wet</li>
|
||||
<li>~ Fixed: Not foolish enough</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="1.9.4">[Version 1.9.4 - March 17, 2024 - Natural Disasters]</h2>
|
||||
<ul>
|
||||
<li>+ Tornado</li>
|
||||
|
|
|
|||
|
|
@ -7,6 +7,74 @@ See sneak peaks for upcoming updates on the Discord: https://discord.gg/ejUc6YPQ
|
|||
|
||||
A fancier version of this changelog can be found here: https://sandboxels.R74n.com/changelog
|
||||
|
||||
[Version 5.9.1 - April 1, 2024 - Multiversal Update]
|
||||
+ Multiverse Time Travel
|
||||
+ Use Timeline controls to navigate multidimensional space
|
||||
+ Split off from your current timeline
|
||||
+ Eat tool
|
||||
+ Mirror Dimension
|
||||
+ Access by throwing a test subject into a Mirror Portal
|
||||
+ Moon
|
||||
+ Moon Rock (Hidden)
|
||||
+ Freeze tool
|
||||
+ Freeze Ray
|
||||
+ Air
|
||||
+ UFO
|
||||
+ Life Force
|
||||
+ Carbon
|
||||
+ Photon
|
||||
+ Electron
|
||||
+ BBQ Sauce
|
||||
+ Mustard
|
||||
+ Holy Grenade
|
||||
+ Ice Ten
|
||||
+ Love (Amends anuran ailments)
|
||||
+ Love Bomb
|
||||
+ Dirt Bomb
|
||||
+ Cluster Cluster Bomb
|
||||
+ Cherry
|
||||
+ Blueberry
|
||||
+ Olive
|
||||
+ Blue Cheese
|
||||
+ Toad
|
||||
+ Mouse
|
||||
+ Basketball
|
||||
+ Baseball
|
||||
+ Tennis Ball
|
||||
+ Quirky Paint
|
||||
+ Pen tool
|
||||
+ Cursor
|
||||
+ Powder
|
||||
+ Footprint
|
||||
+ Light Ice (Hidden)
|
||||
+ Big Bang (Hidden)
|
||||
[Changes]
|
||||
+ 68% of Humans are lactose intolerant
|
||||
+ 1% of Humans are gluten intolerant
|
||||
+ Humans now drink Water
|
||||
- Removed Gender Binary
|
||||
+ Fireflies have a distinct sound
|
||||
+ Bless converts Antimatter and Strange Matter to Normal Matter
|
||||
+ Bless removes money, the root of all evil
|
||||
+ Bless converts Plastic to eco-friendly Paper
|
||||
+ Bless converts Water to Wine
|
||||
+ Pb&J recipe
|
||||
+ Helium can freeze again
|
||||
+ Helium increases pitch of Human voice
|
||||
- Removed Blood
|
||||
~ Birds have been recolored as tribute
|
||||
~ Udders produce many kinds of Milk
|
||||
~ Cheerful Mode now hides ALL weapons
|
||||
~ Moved Firework to Machines
|
||||
~ Moved Ball to Special
|
||||
~ Renamed Gray Goo to Grey Goo
|
||||
~ Renamed Molten Tin to Moltin
|
||||
~ Unhid Supernova
|
||||
+ Re-added Cluster Bomb
|
||||
[Bug Fixes]
|
||||
~ Fixed: Water is not wet
|
||||
~ Fixed: Not foolish enough
|
||||
|
||||
[Version 1.9.4 - March 17, 2024 - Natural Disasters]
|
||||
+ Tornado
|
||||
+ Earthquake
|
||||
|
|
|
|||
10
index.html
10
index.html
|
|
@ -11203,6 +11203,14 @@ else if (currentMonth == 11) { // December
|
|||
elements.candy.colorKey = {"R":"#c92626", "W":"#e3e3e3"}
|
||||
elements.candy.color = ["#c92626","#e3e3e3","#c92626","#e3e3e3","#c92626"]
|
||||
}
|
||||
else if ( true){// new Date().getMonth() == 3 && new Date().getDate() == 1) {
|
||||
// if url contains "fools=true"
|
||||
if (!window.location.href.includes("fools=false")) {
|
||||
var script = document.createElement('script');
|
||||
script.src = "mods/fools24.js"
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
}
|
||||
|
||||
// Mod Loader
|
||||
runAfterLoadList = [];
|
||||
|
|
@ -16247,7 +16255,7 @@ Cancer, Landmine, Grenade, Smoke Grenade">?</span> <input type="button" value="O
|
|||
<!-- <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>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, WeiChei, Midi_png, ggod, personman, fnl4y, PitsPower, kaeud, Trent, u2ce</p>
|
||||
<p id="thanksTo">Thanks to: Serioustar, WeiChei, Midi_png, ggod, personman, fnl4y, PitsPower, kaeud, Trent, u2ce</p>
|
||||
<p style="display:none" id="langCredit">Translation by R74n</p>
|
||||
<p>Sandboxels is developed by R74n. Check out <a href="https://R74n.com" rel="author" target="_blank">our other projects</a>!</p>
|
||||
<script>
|
||||
|
|
|
|||
|
|
@ -110,6 +110,7 @@
|
|||
<tr><td>devtests.js</td><td>Experimental features from the Sandboxels developer</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>edible_everything.js</td><td>Allows every element to be mixed into Batter and Dough</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>fools.js</td><td>Adds back FOOLS Mode</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>fools24.js</td><td>Adds back the 2024 Multiversal Update (v5.9.1)</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>smooth_water.js</td><td>Changes water mechanics so that it flows in one direction until it bounces off of something</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>spring.js</td><td>Many nature elements, like sakura trees, butterflies, beehives, and more</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>survival.js</td><td>With limited resources, you must craft, sell, and buy to progress</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,842 @@
|
|||
/*
|
||||
[Version 5.9.1 - April 1, 2024 - Multiversal Update]
|
||||
+ Multiverse Time Travel
|
||||
+ Use Timeline controls to navigate multidimensional space
|
||||
+ Split off from your current timeline
|
||||
+ Eat tool
|
||||
+ Mirror Dimension
|
||||
+ Access by throwing a test subject into a Mirror Portal
|
||||
+ Moon
|
||||
+ Moon Rock (Hidden)
|
||||
+ Freeze tool
|
||||
+ Freeze Ray
|
||||
+ Air
|
||||
+ UFO
|
||||
+ Life Force
|
||||
+ Carbon
|
||||
+ Photon
|
||||
+ Electron
|
||||
+ BBQ Sauce
|
||||
+ Mustard
|
||||
+ Holy Grenade
|
||||
+ Ice Ten
|
||||
+ Love (Amends anuran ailments)
|
||||
+ Love Bomb
|
||||
+ Dirt Bomb
|
||||
+ Cluster Cluster Bomb
|
||||
+ Cherry
|
||||
+ Blueberry
|
||||
+ Olive
|
||||
+ Blue Cheese
|
||||
+ Toad
|
||||
+ Mouse
|
||||
+ Basketball
|
||||
+ Baseball
|
||||
+ Tennis Ball
|
||||
+ Quirky Paint
|
||||
+ Pen tool
|
||||
+ Cursor
|
||||
+ Powder
|
||||
+ Footprint
|
||||
+ Light Ice (Hidden)
|
||||
+ Big Bang (Hidden)
|
||||
[Changes]
|
||||
+ 68% of Humans are lactose intolerant
|
||||
+ 1% of Humans are gluten intolerant
|
||||
+ Humans now drink Water
|
||||
- Removed Gender Binary
|
||||
+ Fireflies have a distinct sound
|
||||
+ Bless converts Antimatter and Strange Matter to Normal Matter
|
||||
+ Bless removes money, the root of all evil
|
||||
+ Bless converts Plastic to eco-friendly Paper
|
||||
+ Bless converts Water to Wine
|
||||
+ Pb&J recipe
|
||||
+ Helium can freeze again
|
||||
+ Helium increases pitch of Human voice
|
||||
- Removed Blood
|
||||
~ Birds have been recolored as tribute
|
||||
~ Udders produce many kinds of Milk
|
||||
~ Cheerful Mode now hides ALL weapons
|
||||
~ Moved Firework to Machines
|
||||
~ Moved Ball to Special
|
||||
~ Renamed Gray Goo to Grey Goo
|
||||
~ Renamed Molten Tin to Moltin
|
||||
~ Unhid Supernova
|
||||
+ Re-added Cluster Bomb
|
||||
[Bug Fixes]
|
||||
~ Fixed: Water is not wet
|
||||
*/
|
||||
|
||||
currentversion = "5.9.1"
|
||||
|
||||
if (!elements.bless.reactions) { elements.bless.reactions = {}; }
|
||||
elements.bless.reactions.gold_coin = { elem2:null }
|
||||
elements.bless.reactions.plastic = { elem2:"paper" }
|
||||
elements.bless.reactions.bead = { elem2:"sawdust" }
|
||||
elements.bless.reactions.water = { elem2:"alcohol", color2:"#722F37" }
|
||||
|
||||
if (!elements.lead.reactions) { elements.lead.reactions = {}; }
|
||||
elements.lead.reactions.grape = { elem1:"nut_butter", elem2:"jelly" }
|
||||
elements.lead.reactions.jelly = { elem1:"nut_butter" }
|
||||
|
||||
elements.head.tempTick = elements.head.tick
|
||||
elements.head.tick = function(pixel) {
|
||||
elements.head.tempTick(pixel);
|
||||
if (!pixel.sus) { // susceptibility to disease
|
||||
pixel.sus = Math.random();
|
||||
}
|
||||
}
|
||||
if (!elements.head.reactions) { elements.head.reactions = {}; }
|
||||
var lactoseReaction = function(pixel) {
|
||||
if (pixel.sus < 0.68) { changePixel(pixel,"explosion") }
|
||||
}
|
||||
var glutenReaction = function(pixel) {
|
||||
if (pixel.sus < 0.01) { changePixel(pixel,"explosion") }
|
||||
}
|
||||
elements.head.reactions.milk = { chance:0.1, func:lactoseReaction }
|
||||
elements.head.reactions.cheese = { chance:0.1, func:lactoseReaction }
|
||||
elements.head.reactions.butter = { chance:0.1, func:lactoseReaction }
|
||||
elements.head.reactions.melted_cheese = { chance:0.1, func:lactoseReaction }
|
||||
elements.head.reactions.melted_butter = { chance:0.1, func:lactoseReaction }
|
||||
elements.head.reactions.yogurt = { chance:0.1, func:lactoseReaction }
|
||||
elements.head.reactions.ice_cream = { chance:0.1, func:lactoseReaction }
|
||||
elements.head.reactions.cream = { chance:0.1, func:lactoseReaction }
|
||||
elements.head.reactions.frozen_yogurt = { chance:0.1, func:lactoseReaction }
|
||||
elements.head.reactions.wheat = { chance:0.1, func:glutenReaction }
|
||||
elements.head.reactions.bread = { chance:0.1, func:glutenReaction }
|
||||
elements.head.reactions.toast = { chance:0.1, func:glutenReaction }
|
||||
elements.head.reactions.gingerbread = { chance:0.1, func:glutenReaction }
|
||||
elements.head.reactions.batter = { chance:0.1, func:glutenReaction }
|
||||
elements.head.reactions.flour = { chance:0.1, func:glutenReaction }
|
||||
elements.head.reactions.baked_batter = { chance:0.1, func:glutenReaction }
|
||||
elements.head.reactions.water = { elem2:null, chance:0.1 }
|
||||
elements.head.reactions.sugar_water = { elem2:null, chance:0.1 }
|
||||
elements.head.reactions.seltzer = { elem2:null, chance:0.1 }
|
||||
elements.body.color = "#069469";
|
||||
|
||||
elements.firework.category = "machines";
|
||||
|
||||
elements.normal_matter = {
|
||||
color: "#9ba89b",
|
||||
behavior: [
|
||||
"M2|M2|M2",
|
||||
"M1|XX|M1",
|
||||
"M1|M1|M1",
|
||||
],
|
||||
category: "special",
|
||||
state: "gas",
|
||||
density: 2.1,
|
||||
hidden: true
|
||||
};
|
||||
elements.bless.reactions.antimatter = { elem2:"normal_matter" }
|
||||
elements.bless.reactions.strange_matter = { elem2:"normal_matter" }
|
||||
|
||||
elements.ice_ten = {
|
||||
color: ["#84d0ff","#85daff","#80ffff"],
|
||||
behavior: [
|
||||
"XX|XX|XX",
|
||||
"XX|CH:ice%0.5|XX",
|
||||
"M2|M1|M2",
|
||||
],
|
||||
reactions: {
|
||||
"ice_ten": { func:function(pixel1,pixel2){
|
||||
var pixels = currentPixels.slice();
|
||||
for (var i = 0; i < pixels.length; i++) {
|
||||
var pixel = pixels[i];
|
||||
pixel.temp = -10000;
|
||||
pixelTempCheck(pixel);
|
||||
}
|
||||
}, elem1:null, elem2:null },
|
||||
},
|
||||
temp:-100,
|
||||
category: "special",
|
||||
state: "solid",
|
||||
density: 917,
|
||||
excludeRandom: true
|
||||
};
|
||||
|
||||
elements.gray_goo.name = "grey_goo";
|
||||
|
||||
elements.big_bang = {
|
||||
color: ["#ffebeb","#ffc9c9","#ffabab"],
|
||||
behavior: [
|
||||
"XX|XX|XX",
|
||||
"XX|EX:200>hydrogen,neutron,proton,electric AND CH:void|XX",
|
||||
"XX|XX|XX",
|
||||
],
|
||||
temp: 1000000000000000,
|
||||
category: "energy",
|
||||
state: "gas",
|
||||
density: 1000,
|
||||
hardness: 1,
|
||||
hidden: true,
|
||||
excludeRandom: true,
|
||||
maxSize: 1,
|
||||
cooldown: defaultCooldown,
|
||||
noMix: true
|
||||
};
|
||||
|
||||
elements.blood.name = "life_force";
|
||||
elements.blood.color = ["#99ff00","#d9ff00"];
|
||||
delete elements.blood_ice.color;
|
||||
elements.blood_ice.name = "life_force_ice";
|
||||
|
||||
elements.holy_grenade = {
|
||||
color: "#fffd6a",
|
||||
behavior: [
|
||||
"XX|EX:10>bless|XX",
|
||||
"XX|XX|XX",
|
||||
"M2|M1 AND EX:10>bless|M2",
|
||||
],
|
||||
category: "weapons",
|
||||
state: "solid",
|
||||
density: 1300,
|
||||
excludeRandom: true,
|
||||
cooldown: defaultCooldown
|
||||
}
|
||||
|
||||
elements.love = {
|
||||
color: ["#fccbff","#ff9edf","#ff5cb6"],
|
||||
behavior: [
|
||||
"M2|M1|M2",
|
||||
"M1|DL%25|M1",
|
||||
"M2|M1|M2",
|
||||
],
|
||||
temp:20,
|
||||
state: "gas",
|
||||
density: 0.001,
|
||||
canPlace: true,
|
||||
category: "energy",
|
||||
stain: -0.5
|
||||
};
|
||||
elements.love.reactions = elements.bless.reactions;
|
||||
elements.love.tool = elements.bless.tool;
|
||||
if (!elements.frog.reactions) { elements.frog.reactions = {}; }
|
||||
elements.frog.reactions.love = { elem1:"human" }
|
||||
if (!elements.bomb.reactions) { elements.bomb.reactions = {}; }
|
||||
elements.bomb.reactions.love = { elem1:"love_bomb" }
|
||||
if (!elements.grenade.reactions) { elements.grenade.reactions = {}; }
|
||||
elements.grenade.reactions.love = { elem1:"love_bomb" }
|
||||
|
||||
elements.love_bomb = {
|
||||
color: "#ff84f1",
|
||||
behavior: [
|
||||
"XX|EX:10>love|XX",
|
||||
"XX|XX|XX",
|
||||
"M2|M1 AND EX:10>love|M2",
|
||||
],
|
||||
category: "weapons",
|
||||
state: "solid",
|
||||
density: 1300,
|
||||
excludeRandom: true,
|
||||
cooldown: defaultCooldown
|
||||
}
|
||||
elements.dirt_bomb = {
|
||||
color: "#694805",
|
||||
behavior: [
|
||||
"XX|EX:10>dirt|XX",
|
||||
"XX|XX|XX",
|
||||
"M2|M1 AND EX:10>dirt|M2",
|
||||
],
|
||||
category: "weapons",
|
||||
state: "solid",
|
||||
density: 1300,
|
||||
excludeRandom: true,
|
||||
cooldown: defaultCooldown
|
||||
}
|
||||
|
||||
elements.cluster_bomb = {
|
||||
color: "#7d776d",
|
||||
behavior: [
|
||||
"XX|EX:10>smoke,smoke,smoke,smoke,smoke,grenade%1|XX",
|
||||
"XX|XX|XX",
|
||||
"M2|M1 AND EX:10>smoke,smoke,smoke,smoke,smoke,grenade%1|M2",
|
||||
],
|
||||
category: "weapons",
|
||||
state: "solid",
|
||||
density: 1300,
|
||||
tempHigh: 1455.5,
|
||||
stateHigh: "molten_steel",
|
||||
excludeRandom: true,
|
||||
cooldown: defaultCooldown
|
||||
}
|
||||
elements.cluster_cluster_bomb = {
|
||||
color: "#c1b7a5",
|
||||
behavior: [
|
||||
"XX|EX:10>smoke,smoke,smoke,smoke,smoke,cluster_bomb%1|XX",
|
||||
"XX|XX|XX",
|
||||
"M2|M1 AND EX:10>smoke,smoke,smoke,smoke,smoke,cluster_bomb%1|M2",
|
||||
],
|
||||
category: "weapons",
|
||||
state: "solid",
|
||||
density: 1300,
|
||||
tempHigh: 1455.5,
|
||||
stateHigh: "molten_steel",
|
||||
excludeRandom: true,
|
||||
cooldown: defaultCooldown
|
||||
}
|
||||
|
||||
elements.bbq_sauce = {
|
||||
color: "#571E1A",
|
||||
behavior: behaviors.LIQUID,
|
||||
viscosity: 50000,
|
||||
tempHigh: 260,
|
||||
stateHigh: ["carbon_dioxide","methane","steam","salt","sugar"],
|
||||
category:"liquids",
|
||||
state: "liquid",
|
||||
density: 1235,
|
||||
stain: 0.05,
|
||||
isFood: true
|
||||
}
|
||||
if (!elements.ketchup.reactions) { elements.ketchup.reactions = {}; }
|
||||
elements.ketchup.reactions.molasses = { elem1:"bbq_sauce", elem2:"bbq_sauce" }
|
||||
|
||||
elements.mustard = {
|
||||
color: "#e1ad01",
|
||||
behavior: behaviors.LIQUID,
|
||||
viscosity: 50000,
|
||||
tempHigh: 260,
|
||||
stateHigh: ["carbon_dioxide","methane","steam","sugar"],
|
||||
category:"liquids",
|
||||
state: "liquid",
|
||||
density: 1235,
|
||||
stain: 0.05,
|
||||
isFood: true
|
||||
}
|
||||
|
||||
elements.cherry = {
|
||||
color: ["#ff295b","#ff212c","#ff1f1f","#ff4e33"],
|
||||
behavior: behaviors.POWDER,
|
||||
reactions: {
|
||||
"rock": { elem1:"juice", chance:0.1, color1:"#8e0000" },
|
||||
"concrete": { elem1:"juice", chance:0.1, color1:"#8e0000" },
|
||||
"basalt": { elem1:"juice", chance:0.1, color1:"#8e0000" },
|
||||
"limestone": { elem1:"juice", chance:0.1, color1:"#8e0000" },
|
||||
"tuff": { elem1:"juice", chance:0.1, color1:"#8e0000" },
|
||||
"water": { elem2:"juice", chance:0.005, color2:"#8e0000" },
|
||||
"sugar_water": { elem2:"juice", chance:0.025, color2:"#8e0000" },
|
||||
"acid": { elem1:"juice", color1:"#8e0000" },
|
||||
"acid_gas": { elem1:"juice", color1:"#8e0000" },
|
||||
},
|
||||
tempHigh: 256,
|
||||
stateHigh: ["steam","sugar"],
|
||||
category: "food",
|
||||
state: "solid",
|
||||
density: 1154,
|
||||
breakInto: "juice",
|
||||
breakIntoColor: "#8e0000",
|
||||
ignoreAir: true,
|
||||
isFood: true
|
||||
}
|
||||
elements.blueberry = {
|
||||
color: ["#4929ff","#5821ff","#221cc8","#2406a0"],
|
||||
behavior: behaviors.POWDER,
|
||||
reactions: {
|
||||
"rock": { elem1:"juice", chance:0.1, color1:"#1b1259" },
|
||||
"concrete": { elem1:"juice", chance:0.1, color1:"#1b1259" },
|
||||
"basalt": { elem1:"juice", chance:0.1, color1:"#1b1259" },
|
||||
"limestone": { elem1:"juice", chance:0.1, color1:"#1b1259" },
|
||||
"tuff": { elem1:"juice", chance:0.1, color1:"#1b1259" },
|
||||
"water": { elem2:"juice", chance:0.005, color2:"#1b1259" },
|
||||
"sugar_water": { elem2:"juice", chance:0.025, color2:"#1b1259" },
|
||||
"acid": { elem1:"juice", color1:"#1b1259" },
|
||||
"acid_gas": { elem1:"juice", color1:"#1b1259" },
|
||||
},
|
||||
tempHigh: 256,
|
||||
stateHigh: ["steam","sugar"],
|
||||
category: "food",
|
||||
state: "solid",
|
||||
density: 1154,
|
||||
breakInto: "juice",
|
||||
breakIntoColor: "#1b1259",
|
||||
ignoreAir: true,
|
||||
isFood: true
|
||||
}
|
||||
elements.olive = {
|
||||
color: ["#808000","#91912c","#a1a148","#686800"],
|
||||
behavior: behaviors.POWDER,
|
||||
reactions: {
|
||||
"rock": { elem1:"juice", chance:0.1, color1:"#ebeb55" },
|
||||
"concrete": { elem1:"juice", chance:0.1, color1:"#ebeb55" },
|
||||
"basalt": { elem1:"juice", chance:0.1, color1:"#ebeb55" },
|
||||
"limestone": { elem1:"juice", chance:0.1, color1:"#ebeb55" },
|
||||
"tuff": { elem1:"juice", chance:0.1, color1:"#ebeb55" },
|
||||
"water": { elem2:"juice", chance:0.005, color2:"#ebeb55" },
|
||||
"sugar_water": { elem2:"juice", chance:0.025, color2:"#ebeb55" },
|
||||
"acid": { elem1:"juice", color1:"#ebeb55" },
|
||||
"acid_gas": { elem1:"juice", color1:"#ebeb55" },
|
||||
},
|
||||
tempHigh: 256,
|
||||
stateHigh: ["steam","sugar"],
|
||||
category: "food",
|
||||
state: "solid",
|
||||
density: 1154,
|
||||
breakInto: "juice",
|
||||
breakIntoColor: "#ebeb55",
|
||||
ignoreAir: true,
|
||||
isFood: true
|
||||
}
|
||||
|
||||
elements.carbon = elements.charcoal;
|
||||
elements.photon = elements.light;
|
||||
elements.electron = elements.electric;
|
||||
|
||||
elements.blue_cheese = {
|
||||
color: "#0352fc",
|
||||
behavior: behaviors.STURDYPOWDER,
|
||||
tempHigh: 54,
|
||||
stateHigh: "melted_cheese",
|
||||
category: "food",
|
||||
state: "solid",
|
||||
density: 477.62,
|
||||
isFood: true
|
||||
};
|
||||
if (elements.cheese.reactions) { elements.blue_cheese.reactions = elements.cheese.reactions; }
|
||||
|
||||
elements.moon = {
|
||||
color: ["#b9b9b9","#8e8e8e","#b9b9b9"],
|
||||
behavior: behaviors.WALL,
|
||||
tempHigh: 100,
|
||||
stateHigh: "melted_cheese",
|
||||
category: "special",
|
||||
state: "solid",
|
||||
density: 3300,
|
||||
insulate: true,
|
||||
noMix: true,
|
||||
alias: "satellite",
|
||||
movable: false,
|
||||
hardness: 0.8,
|
||||
breakInto: "moon_rock"
|
||||
};
|
||||
if (!elements.light.reactions) { elements.light.reactions = {}; }
|
||||
elements.light.reactions.moon = { color1:"#ffffff" }
|
||||
elements.light.reactions.moon_rock = { color1:"#ffffff" }
|
||||
|
||||
elements.moon_rock = {
|
||||
color: ["#b9b9b9","#a3a3a3","#898989"],
|
||||
behavior: behaviors.POWDER,
|
||||
tempHigh: 100,
|
||||
stateHigh: "melted_cheese",
|
||||
category: "land",
|
||||
state: "solid",
|
||||
density: 3300,
|
||||
hardness: 0.25,
|
||||
breakInto: "dust",
|
||||
hidden: true,
|
||||
alias: "lunar_rock"
|
||||
};
|
||||
if (elements.rock.reactions) { elements.moon_rock.reactions = elements.rock.reactions; }
|
||||
|
||||
elements.toad = elements.frog;
|
||||
|
||||
elements.mouse = {
|
||||
color: ["#aaaaaa","#8a8a8a","#cdcdcd"],
|
||||
behavior: [
|
||||
"XX|M2%1.5|M2%5",
|
||||
"XX|FX%2|M2 AND BO",
|
||||
"XX|M1|M2",
|
||||
],
|
||||
egg: "mouse",
|
||||
category: "life",
|
||||
temp: 37.6,
|
||||
tempHigh: 120,
|
||||
stateHigh: "cooked_meat",
|
||||
tempLow: -18,
|
||||
stateLow: "frozen_meat",
|
||||
breakInto: "blood",
|
||||
burn:80,
|
||||
burnTime:150,
|
||||
state: "solid",
|
||||
density: 1450,
|
||||
conduct: 0.25
|
||||
};
|
||||
elements.bless.reactions.rat = { elem2:"mouse" }
|
||||
|
||||
elements.ball.hidden = false;
|
||||
elements.basketball = {
|
||||
color: "#d14b17",
|
||||
behavior: [
|
||||
"XX|XX|XX",
|
||||
"XX|FY:0%5|XX",
|
||||
"XX|M1 AND BO|XX",
|
||||
],
|
||||
tempHigh: 250,
|
||||
stateHigh: "molten_plastic",
|
||||
category: "special",
|
||||
flipY: false,
|
||||
flippableY: true,
|
||||
};
|
||||
elements.baseball = {
|
||||
color: "#d7d7d7",
|
||||
behavior: [
|
||||
"XX|XX|XX",
|
||||
"XX|FY:0%5|XX",
|
||||
"XX|M1 AND BO|XX",
|
||||
],
|
||||
tempHigh: 250,
|
||||
stateHigh: "molten_plastic",
|
||||
category: "special",
|
||||
flipY: false,
|
||||
flippableY: true,
|
||||
};
|
||||
elements.tennis_ball = {
|
||||
color: "#c2ff48",
|
||||
behavior: [
|
||||
"XX|XX|XX",
|
||||
"XX|FY:0%5|XX",
|
||||
"XX|M1 AND BO|XX",
|
||||
],
|
||||
tempHigh: 250,
|
||||
stateHigh: "molten_plastic",
|
||||
category: "special",
|
||||
flipY: false,
|
||||
flippableY: true,
|
||||
};
|
||||
|
||||
elements.supernova.hidden = false;
|
||||
|
||||
elements.quirky_paint = {
|
||||
color: ["#b1b1b1","#9dc270","#c170c2","#107f10","#442f21","#ff6e6e","#34555f"],
|
||||
tool: function(pixel) {
|
||||
var hexcode = "#"+(Math.floor(Math.random()*16777215).toString(16).padStart(6,"0"));
|
||||
pixel.color = pixelColorPick(pixel,hexcode);
|
||||
delete pixel.origColor;
|
||||
},
|
||||
category: "special",
|
||||
canPlace: false,
|
||||
desc: "Use on pixels to change color randomly."
|
||||
};
|
||||
|
||||
elements.bird.color = "#1DA1F2";
|
||||
|
||||
elements.freeze = {
|
||||
color: ["#b1e5ff","#6e89ec"],
|
||||
tool: function(pixel) {
|
||||
pixel.temp -= 1000;
|
||||
pixelTempCheck(pixel);
|
||||
},
|
||||
category: "energy",
|
||||
excludeRandom: true
|
||||
};
|
||||
|
||||
elements.freeze_ray = {
|
||||
color: ["#00aaff","#0037ff"],
|
||||
tick: function(pixel) {
|
||||
var x = pixel.x;
|
||||
for (var y = pixel.y; y < height; y++) {
|
||||
if (outOfBounds(x, y)) {
|
||||
break;
|
||||
}
|
||||
if (isEmpty(x, y)) {
|
||||
if (Math.random() > 0.05) { continue }
|
||||
createPixel("flash", x, y);
|
||||
pixelMap[x][y].color = "#00aaff";
|
||||
pixelMap[x][y].temp = -200;
|
||||
}
|
||||
else {
|
||||
if (elements[pixelMap[x][y].element].isGas) { continue }
|
||||
if (elements[pixelMap[x][y].element].id === elements.heat_ray.id) { break }
|
||||
pixelMap[x][y].temp -= 100;
|
||||
pixelTempCheck(pixelMap[x][y]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
deletePixel(pixel.x, pixel.y);
|
||||
},
|
||||
temp: -200,
|
||||
category: "energy",
|
||||
state: "gas",
|
||||
density: 1,
|
||||
excludeRandom: true,
|
||||
noMix: true
|
||||
};
|
||||
|
||||
elements.ufo = {
|
||||
color: "#9ddfa3",
|
||||
behavior: [
|
||||
"XX|XX|XX",
|
||||
"XX|FX%5|M1%50",
|
||||
"XX|XX|XX"
|
||||
],
|
||||
tick: function(pixel) {
|
||||
if (pixel.ray) {
|
||||
if (isEmpty(pixel.x,pixel.y+1)) {
|
||||
createPixel(pixel.ray,pixel.x,pixel.y+1);
|
||||
}
|
||||
if (Math.random() < 0.1) {
|
||||
pixel.ray = null;
|
||||
}
|
||||
}
|
||||
else if (Math.random() < 0.1) {
|
||||
var rays = ["heat_ray","freeze_ray","god_ray"];
|
||||
pixel.ray = rays[Math.floor(Math.random()*rays.length)];
|
||||
}
|
||||
},
|
||||
breakInto: ["metal_scrap","slime"],
|
||||
category: "special"
|
||||
};
|
||||
|
||||
elements.udder.tick = function(pixel) {
|
||||
if (Math.random() <= 0.025 && isEmpty(pixel.x,pixel.y+1)) {
|
||||
var milks = ["milk","pilk","chocolate_milk","fruit_milk","eggnog"];
|
||||
var milk = milks[Math.floor(Math.random()*milks.length)];
|
||||
createPixel(milk,pixel.x,pixel.y+1);
|
||||
pixelMap[pixel.x][pixel.y+1].temp = 38;
|
||||
}
|
||||
doDefaults(pixel);
|
||||
};
|
||||
|
||||
elements.liquid_light.tempLow = -1000;
|
||||
elements.liquid_light.stateLowName = "light_ice";
|
||||
elements.light_ice = {
|
||||
behavior: behaviors.WALL,
|
||||
state: "solid",
|
||||
}
|
||||
|
||||
fireflySound = null;
|
||||
elements.firefly.onSelect = function() {
|
||||
fireflySound = new Audio("https://archive.org/download/09Fireflies/09%20Fireflies.mp3");
|
||||
}
|
||||
elements.firefly.onMouseDown = function() {
|
||||
if (fireflySound) { fireflySound.play(); }
|
||||
}
|
||||
|
||||
elements.pen = {
|
||||
color: "#000000",
|
||||
tool: function(pixel) {
|
||||
if (pixel.element === "paper") {
|
||||
pixel.color = pixelColorPick(pixel,"#000000");
|
||||
}
|
||||
},
|
||||
category: "special",
|
||||
desc: "Draws on Paper."
|
||||
}
|
||||
elements.eat = {
|
||||
color: ["#ffba79","#efff79"],
|
||||
tool: function(pixel) {
|
||||
if (elements[pixel.element].isFood) {
|
||||
deletePixel(pixel.x,pixel.y);
|
||||
}
|
||||
},
|
||||
category: "tools",
|
||||
desc: "Consumes edible pixels."
|
||||
}
|
||||
|
||||
elements.molten_tin.name = "moltin";
|
||||
|
||||
elements.ball.category = "energy";
|
||||
|
||||
elements.liquid_helium.tempLow = -272;
|
||||
|
||||
elements.cursor = {
|
||||
color: ["#000000","#00ff00"],
|
||||
behavior: behaviors.WALL,
|
||||
tick: function(pixel) {
|
||||
if (pixelTicks % 60 < 30) {
|
||||
pixel.color = "#000000";
|
||||
}
|
||||
else {
|
||||
pixel.color = "#00ff00";
|
||||
}
|
||||
},
|
||||
category: "special",
|
||||
related: "pointer"
|
||||
}
|
||||
elements.pointer.related = "cursor";
|
||||
|
||||
elements.footprint = {
|
||||
color: ["#73777A","#B3B7BA","#F3F7FA"],
|
||||
colorPattern: [
|
||||
"00000001",
|
||||
"01111112",
|
||||
"01111112",
|
||||
"01111112",
|
||||
"01111112",
|
||||
"01111112",
|
||||
"01111112",
|
||||
"12222222",
|
||||
],
|
||||
colorKey: {
|
||||
"0": "#73777A",
|
||||
"1": "#B3B7BA",
|
||||
"2": "#F3F7FA",
|
||||
},
|
||||
behavior: behaviors.WALL,
|
||||
category: "special"
|
||||
}
|
||||
|
||||
elements.air = {
|
||||
color: "#000000",
|
||||
tool: function(){},
|
||||
category: "gases"
|
||||
}
|
||||
|
||||
elements.powder = {
|
||||
color: "#ffffff",
|
||||
colorPattern: ["F"],
|
||||
colorKey: { "F": "#ffffff" },
|
||||
behavior: behaviors.POWDER,
|
||||
category: "powders",
|
||||
state: "solid",
|
||||
}
|
||||
|
||||
inMirrorDimension = false;
|
||||
function getMousePos(canvas, evt) {
|
||||
// If evt.touches is defined, use the first touch
|
||||
if (evt.touches) {
|
||||
evt.preventDefault();
|
||||
evt = evt.touches[0];
|
||||
isMobile = true;
|
||||
}
|
||||
var rect = canvas.getBoundingClientRect();
|
||||
return {
|
||||
// Round to nearest pixel
|
||||
x: Math.round((evt.clientX - rect.left)/pixelSize-0.5),
|
||||
y: Math.round((evt.clientY - rect.top)/pixelSize-0.5)
|
||||
};
|
||||
}
|
||||
oldGetMousePos = getMousePos;
|
||||
elements.mirror_portal = {
|
||||
color: ["#e07aff","#693778","#4b2843","#1f0f1b"],
|
||||
behavior: [
|
||||
"XX|SW:mirror_portal%10|XX",
|
||||
"SW:mirror_portal%10|XX|SW:mirror_portal%10",
|
||||
"XX|SW:mirror_portal%10|XX"
|
||||
],
|
||||
category: "special",
|
||||
reactions: {
|
||||
"body": {
|
||||
func: function() {
|
||||
if (!inMirrorDimension) {
|
||||
inMirrorDimension = true;
|
||||
for (var i = 0; i < currentPixels.length; i++) {
|
||||
var pixel = currentPixels[i];
|
||||
if (pixel.element === "mirror_portal") {
|
||||
deletePixel(pixel.x,pixel.y);
|
||||
i--;
|
||||
}
|
||||
}
|
||||
document.head.insertAdjacentHTML("beforeend",`
|
||||
<style id="mirrorDimensionStyle">
|
||||
#game {-moz-transform: scale(-1, -1);
|
||||
-o-transform: scale(-1, -1);
|
||||
-webkit-transform: scale(-1, -1);
|
||||
transform: scale(-1, -1);
|
||||
filter: invert(100%);}
|
||||
.elementButton {filter: invert(100%);}
|
||||
.pagetitle::after { content:" Bandsoxels" }
|
||||
</style>
|
||||
`);
|
||||
// invert the math in getMousePos
|
||||
getMousePos = function(canvas, evt) {
|
||||
if (evt.touches) {
|
||||
evt.preventDefault();
|
||||
evt = evt.touches[0];
|
||||
isMobile = true;
|
||||
}
|
||||
var rect = canvas.getBoundingClientRect();
|
||||
return {
|
||||
x: Math.round((rect.right - evt.clientX)/pixelSize-0.5),
|
||||
y: Math.round((rect.bottom - evt.clientY)/pixelSize-0.5)
|
||||
};
|
||||
}
|
||||
}
|
||||
else {
|
||||
inMirrorDimension = false;
|
||||
document.getElementById("mirrorDimensionStyle").remove();
|
||||
for (var i = 0; i < currentPixels.length; i++) {
|
||||
var pixel = currentPixels[i];
|
||||
if (pixel.element === "mirror_portal") {
|
||||
deletePixel(pixel.x,pixel.y);
|
||||
i--;
|
||||
}
|
||||
}
|
||||
getMousePos = oldGetMousePos;
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
for (var element in elements) {
|
||||
var info = elements[element];
|
||||
if (info.category === "weapons") {
|
||||
info.nocheer = true
|
||||
}
|
||||
}
|
||||
|
||||
multiverseTimelines = [];
|
||||
multiverseIndex = 0;
|
||||
|
||||
function saveTimeline() {
|
||||
// save at current index
|
||||
multiverseTimelines[multiverseIndex] = generateSave(undefined,{keep:["temp","color"]});
|
||||
}
|
||||
function splitTimeline() {
|
||||
saveTimeline();
|
||||
var newSave = generateSave(undefined,{keep:["temp","color"]});
|
||||
// add new timeline one after current
|
||||
multiverseTimelines.splice(multiverseIndex+1,0,newSave);
|
||||
loadTimeline(multiverseIndex+1);
|
||||
}
|
||||
function newTimeline() {
|
||||
// add new timeline at end
|
||||
saveTimeline();
|
||||
clearAll();
|
||||
multiverseIndex = multiverseTimelines.length;
|
||||
saveTimeline();
|
||||
loadTimeline(multiverseIndex);
|
||||
}
|
||||
function loadTimeline(i) {
|
||||
multiverseIndex = i;
|
||||
loadSave(multiverseTimelines[i]);
|
||||
document.getElementById("timelineIndex").textContent = i;
|
||||
}
|
||||
function nextTimeline() {
|
||||
saveTimeline();
|
||||
if (multiverseIndex === multiverseTimelines.length-1) {
|
||||
newTimeline();
|
||||
return
|
||||
}
|
||||
loadTimeline(multiverseIndex+1);
|
||||
}
|
||||
function prevTimeline() {
|
||||
saveTimeline();
|
||||
if (multiverseIndex === 0) {
|
||||
return
|
||||
}
|
||||
loadTimeline(multiverseIndex-1);
|
||||
}
|
||||
function redoTimeline() {
|
||||
loadTimeline(multiverseIndex);
|
||||
}
|
||||
function deleteTimeline() {
|
||||
multiverseTimelines.splice(multiverseIndex,1);
|
||||
if (multiverseIndex === multiverseTimelines.length) {
|
||||
multiverseIndex--;
|
||||
}
|
||||
if (multiverseTimelines.length < 1) {
|
||||
newTimeline();
|
||||
}
|
||||
loadTimeline(multiverseIndex);
|
||||
}
|
||||
|
||||
window.addEventListener("load", function() {
|
||||
absoluteZero = -Infinity;
|
||||
this.document.getElementById("elementControls").insertAdjacentHTML("afterend",`
|
||||
<div style="display:block; padding:5px; font-size:13px">
|
||||
<button onclick="location.search = '?fools=false'">Return to Normalcy</button>
|
||||
</div>
|
||||
`);
|
||||
this.document.getElementById("elementControls").insertAdjacentHTML("afterend",`
|
||||
<div style="display:block; padding:5px; font-size:13px">
|
||||
Timeline-<span id="timelineIndex">0</span>:<button onclick="splitTimeline()">Split</button><button onclick="newTimeline()">New</button><button onclick="prevTimeline()"><</button><button onclick="nextTimeline()">></button><button onclick="redoTimeline()">Redo</button><button onclick="deleteTimeline()">Delete</button>
|
||||
</div>
|
||||
`);
|
||||
this.document.getElementById("thanksTo").insertAdjacentHTML("beforeend",`, and the friends we made along the way`);
|
||||
})
|
||||
window.addEventListener("keydown", function(e) {
|
||||
if (e.ctrlKey || e.metaKey) {
|
||||
return
|
||||
}
|
||||
})
|
||||
|
|
@ -663,7 +663,7 @@ elements.liquid_oxygen_spout = {
|
|||
tempHigh: 1455.5,
|
||||
stateHigh: "molten_steel",
|
||||
conduct: 0.42,
|
||||
temp: -190,
|
||||
temp: -184,
|
||||
behavior: [
|
||||
"XX|CR:liquid_oxygen|XX",
|
||||
"CR:liquid_oxygen|XX|CR:liquid_oxygen",
|
||||
|
|
@ -678,7 +678,7 @@ elements.liquid_hydrogen_spout = {
|
|||
tempHigh: 1455.5,
|
||||
stateHigh: "molten_steel",
|
||||
conduct: 0.42,
|
||||
temp: -190,
|
||||
temp: -254,
|
||||
behavior: [
|
||||
"XX|CR:liquid_hydrogen|XX",
|
||||
"CR:liquid_hydrogen|XX|CR:liquid_hydrogen",
|
||||
|
|
@ -693,7 +693,6 @@ elements.perfume_spout = {
|
|||
tempHigh: 1455.5,
|
||||
stateHigh: "molten_steel",
|
||||
conduct: 0.42,
|
||||
temp: -190,
|
||||
behavior: [
|
||||
"XX|CR:perfume|XX",
|
||||
"CR:perfume|XX|CR:perfume",
|
||||
|
|
@ -708,7 +707,6 @@ elements.cyanide_spout = {
|
|||
tempHigh: 1455.5,
|
||||
stateHigh: "molten_steel",
|
||||
conduct: 0.42,
|
||||
temp: -190,
|
||||
behavior: [
|
||||
"XX|CR:cyanide|XX",
|
||||
"CR:cyanide|XX|CR:cyanide",
|
||||
|
|
|
|||
Loading…
Reference in New Issue