Version 1.13.1 - December 18, 2025 - G&G Hotfix
~ This is a quick group of bug fixes and improvements following yesterday's update.
+ More Shift-Select functionality:
+ Fuse can turn into an element after charged
+ Filler can turn into an element after cloning itself
+ Heat and Cool tools can specify limits
+ Paint tool can specify a specific element to paint
+ Udder can dispense a specific element
~ Distinct border for Shift-Selected element buttons
~ Chlorine Ice kills Virus like gaseous and liquid forms
~ When window is shortened vertically, canvas will shrink to fit screen
[Bug Fixes]
~ Fixed: 2- and 4-wide brushes aren't possible with scroll wheel
~ Fixed: Tea doesn't stain Paper very well
~ Fixed: Fireflies change the color of any pixel they touch
~ Fixed: Slow Cloner can't clone more than one element with Shift-Select
~ Fixed: Slow Cloner doesn't immediately grab element
~ Fixed: E-cloners can clone Walls
~ Fixed: Outline View uses white outline with custom URL backgrounds
~ Fixed: Heaters, Coolers, and Cloners can be mixed without holding Shift
~ Fixed: Language isn't autoselected for Brazilian Portuguese or Chinese
[Technical]
+ chargePixel(pixel, amount?) helper function to easily shock a pixel
+ burnPixel(pixel) helper function to easily ignite a pixel
This commit is contained in:
parent
4dbdc48bbd
commit
342504b04c
|
|
@ -113,6 +113,33 @@
|
|||
<p>The original <a href="https://sandboxels.R74n.com/changelog.txt">plain text version</a> of this is still maintained.</p>
|
||||
</div>
|
||||
|
||||
<h2 id="1.13.1">[Version 1.13.1 - December 18, 2025 - G&G Hotfix]</h2>
|
||||
<ul>
|
||||
<li>~ This is a quick group of bug fixes and improvements following yesterday's update.</li>
|
||||
<li>+ More Shift-Select functionality:</li>
|
||||
<li> + Fuse can turn into an element after charged</li>
|
||||
<li> + Filler can turn into an element after cloning itself</li>
|
||||
<li> + Heat and Cool tools can specify limits</li>
|
||||
<li> + Paint tool can specify a specific element to paint</li>
|
||||
<li> + Udder can dispense a specific element</li>
|
||||
<li> ~ Distinct border for Shift-Selected element buttons</li>
|
||||
<li>~ Chlorine Ice kills Virus like gaseous and liquid forms</li>
|
||||
<li>~ When window is shortened vertically, canvas will shrink to fit screen</li>
|
||||
<li>[Bug Fixes]</li>
|
||||
<li>~ Fixed: 2- and 4-wide brushes aren't possible with scroll wheel</li>
|
||||
<li>~ Fixed: Tea doesn't stain Paper very well</li>
|
||||
<li>~ Fixed: Fireflies change the color of any pixel they touch</li>
|
||||
<li>~ Fixed: Slow Cloner can't clone more than one element with Shift-Select</li>
|
||||
<li>~ Fixed: Slow Cloner doesn't immediately grab element</li>
|
||||
<li>~ Fixed: E-cloners can clone Walls</li>
|
||||
<li>~ Fixed: Outline View uses white outline with custom URL backgrounds</li>
|
||||
<li>~ Fixed: Heaters, Coolers, and Cloners can be mixed without holding Shift</li>
|
||||
<li>~ Fixed: Language isn't autoselected for Brazilian Portuguese or Chinese</li>
|
||||
<li>[Technical]</li>
|
||||
<li>+ chargePixel(pixel, amount?) helper function to easily shock a pixel</li>
|
||||
<li>+ burnPixel(pixel) helper function to easily ignite a pixel</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="1.13">[Version 1.13 - December 17, 2025 - Gizmos & Gadgets]</h2>
|
||||
<ul>
|
||||
<li>+ Filter</li>
|
||||
|
|
@ -146,7 +173,7 @@
|
|||
<li>~ Drag tool is faster and smoother</li>
|
||||
<li>~ Pixelated and colorful button borders</li>
|
||||
<li>+ Translations for Swedish</li>
|
||||
<li>+ Parital translations for Japanese, Thai, Arabic, Hebrew, and Viossa</li>
|
||||
<li>+ Partial translations for Japanese, Thai, Arabic, Hebrew, and Viossa</li>
|
||||
<li>[Changes]</li>
|
||||
<li>+ Pipes can transport pixels directly with Filter and Gate</li>
|
||||
<li>~ Pipes no longer conduct heat</li>
|
||||
|
|
|
|||
|
|
@ -4,6 +4,31 @@ 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 1.13.1 - December 18, 2025 - G&G Hotfix]
|
||||
~ This is a quick group of bug fixes and improvements following yesterday's update.
|
||||
+ More Shift-Select functionality:
|
||||
+ Fuse can turn into an element after charged
|
||||
+ Filler can turn into an element after cloning itself
|
||||
+ Heat and Cool tools can specify limits
|
||||
+ Paint tool can specify a specific element to paint
|
||||
+ Udder can dispense a specific element
|
||||
~ Distinct border for Shift-Selected element buttons
|
||||
~ Chlorine Ice kills Virus like gaseous and liquid forms
|
||||
~ When window is shortened vertically, canvas will shrink to fit screen
|
||||
[Bug Fixes]
|
||||
~ Fixed: 2- and 4-wide brushes aren't possible with scroll wheel
|
||||
~ Fixed: Tea doesn't stain Paper very well
|
||||
~ Fixed: Fireflies change the color of any pixel they touch
|
||||
~ Fixed: Slow Cloner can't clone more than one element with Shift-Select
|
||||
~ Fixed: Slow Cloner doesn't immediately grab element
|
||||
~ Fixed: E-cloners can clone Walls
|
||||
~ Fixed: Outline View uses white outline with custom URL backgrounds
|
||||
~ Fixed: Heaters, Coolers, and Cloners can be mixed without holding Shift
|
||||
~ Fixed: Language isn't autoselected for Brazilian Portuguese or Chinese
|
||||
[Technical]
|
||||
+ chargePixel(pixel, amount?) helper function to easily shock a pixel
|
||||
+ burnPixel(pixel) helper function to easily ignite a pixel
|
||||
|
||||
[Version 1.13 - December 17, 2025 - Gizmos & Gadgets]
|
||||
+ Filter
|
||||
+ Only allows the first element it touches to pass
|
||||
|
|
@ -36,7 +61,7 @@ A fancier version of this changelog can be found here: https://sandboxels.R74n.c
|
|||
~ Drag tool is faster and smoother
|
||||
~ Pixelated and colorful button borders
|
||||
+ Translations for Swedish
|
||||
+ Parital translations for Japanese, Thai, Arabic, Hebrew, and Viossa
|
||||
+ Partial translations for Japanese, Thai, Arabic, Hebrew, and Viossa
|
||||
[Changes]
|
||||
+ Pipes can transport pixels directly with Filter and Gate
|
||||
~ Pipes no longer conduct heat
|
||||
|
|
|
|||
208
index.html
208
index.html
|
|
@ -49,7 +49,7 @@
|
|||
<meta name="twitter:creator:id" content="1436857621827530753">
|
||||
|
||||
<script> // versioning info
|
||||
currentversion = "1.13";
|
||||
currentversion = "1.13.1";
|
||||
saveVersion = 6;
|
||||
standalone = false;
|
||||
standaloneType = null;
|
||||
|
|
@ -877,10 +877,21 @@ SEEDRISE: function(pixel) {
|
|||
"HT:2|HT:2|HT:2",
|
||||
"HT:2|HT:2|HT:2"
|
||||
],
|
||||
onShiftSelect: function(element) {
|
||||
promptInput("Enter a maximum temperature (Celsius).", function(r) {
|
||||
r = parseFloat(r);
|
||||
if (isNaN(r)) return;
|
||||
currentElementProp = { max:r }
|
||||
}, elemTitleCase(elements[element].name || element));
|
||||
},
|
||||
tool: function(pixel) {
|
||||
if (currentElementProp && pixel.temp >= currentElementProp.max) return;
|
||||
|
||||
if (shiftDown) {pixel.temp += elements.heat.temp+(Math.random()*elements.heat.temp*1.5)*20;}
|
||||
else {pixel.temp += elements.heat.temp+(Math.random()*elements.heat.temp*1.5);}
|
||||
pixelTempCheck(pixel);
|
||||
|
||||
if (currentElementProp && pixel.temp > currentElementProp.max) pixel.temp = currentElementProp.max
|
||||
},
|
||||
temp: 2,
|
||||
category: "tools",
|
||||
|
|
@ -895,10 +906,21 @@ SEEDRISE: function(pixel) {
|
|||
"CO:2|CO:2|CO:2",
|
||||
"CO:2|CO:2|CO:2"
|
||||
],
|
||||
onShiftSelect: function(element) {
|
||||
promptInput("Enter a minimum temperature (Celsius).", function(r) {
|
||||
r = parseFloat(r);
|
||||
if (isNaN(r)) return;
|
||||
currentElementProp = { min:r }
|
||||
}, elemTitleCase(elements[element].name || element));
|
||||
},
|
||||
tool: function(pixel) {
|
||||
if (currentElementProp && pixel.temp <= currentElementProp.min) return;
|
||||
|
||||
if (shiftDown) {pixel.temp += elements.cool.temp+(Math.random()*elements.cool.temp*1.5)*20;}
|
||||
else {pixel.temp += elements.cool.temp+(Math.random()*elements.cool.temp*1.5);}
|
||||
pixelTempCheck(pixel);
|
||||
|
||||
if (currentElementProp && pixel.temp < currentElementProp.min) pixel.temp = currentElementProp.min;
|
||||
},
|
||||
temp: -2,
|
||||
category: "tools",
|
||||
|
|
@ -1078,11 +1100,7 @@ SEEDRISE: function(pixel) {
|
|||
for (var j = 0; j < (shiftDown ? 5 : 1); j++) {
|
||||
if (Math.random() < con) { // If random number is less than conductivity
|
||||
if (!pixel.charge && !pixel.chargeCD) {
|
||||
pixel.charge = 1;
|
||||
pixel.chargeStart = pixelTicks;
|
||||
if (elements[pixel.element].colorOn) {
|
||||
pixel.color = pixelColorPick(pixel);
|
||||
}
|
||||
chargePixel(pixel);
|
||||
}
|
||||
}
|
||||
else if (elements[pixel.element].insulate !== true) { // Otherwise heat the pixel (Resistance simulation)
|
||||
|
|
@ -1098,7 +1116,17 @@ SEEDRISE: function(pixel) {
|
|||
},
|
||||
"paint": {
|
||||
color: ["#c27070","#c29c70","#c2c270","#70c270","#70c2c2","#7070c2","#c270c2"],
|
||||
onShiftSelect: function(element) {
|
||||
promptInput("Enter an element to only paint. Enter multiple elements separated by commas.", function(r) {
|
||||
r = validateElementList(r);
|
||||
if (!r) return;
|
||||
currentElementProp = { filter:r }
|
||||
}, elemTitleCase(elements[element].name || element));
|
||||
},
|
||||
tool: function(pixel) {
|
||||
if (currentElementProp && currentElementProp.filter && !currentElementProp.filter.split(",").includes(pixel.element)) {
|
||||
return;
|
||||
}
|
||||
if (!shiftDown) {
|
||||
pixel.color = pixelColorPick(pixel,currentColorMap.paint)
|
||||
}
|
||||
|
|
@ -2432,11 +2460,24 @@ SEEDRISE: function(pixel) {
|
|||
"SH|XX|SH",
|
||||
"XX|SH|XX"
|
||||
],
|
||||
// tick: function(pixel) {
|
||||
// doDefaults(pixel);
|
||||
// for (var i = 0; i < adjacentCoords.length; i++) {
|
||||
// var coords = adjacentCoords[i];
|
||||
// var x = pixel.x + coords[0];
|
||||
// var y = pixel.y + coords[1];
|
||||
// if (!isEmpty(x,y,true)) {
|
||||
// var newPixel = pixelMap[x][y];
|
||||
|
||||
// }
|
||||
// }
|
||||
// },
|
||||
category: "machines",
|
||||
tempHigh: 1455.5,
|
||||
stateHigh: ["molten_steel","explosion","acid_gas"],
|
||||
hardness: 0.8,
|
||||
breakInto: ["metal_scrap","acid"]
|
||||
breakInto: ["metal_scrap","acid"],
|
||||
movable: false
|
||||
},
|
||||
"cloner": {
|
||||
color: "#dddd00",
|
||||
|
|
@ -2447,7 +2488,8 @@ SEEDRISE: function(pixel) {
|
|||
category:"machines",
|
||||
insulate:true,
|
||||
hardness: 1,
|
||||
darkText: true
|
||||
darkText: true,
|
||||
movable: false
|
||||
},
|
||||
"sensor": {
|
||||
color: "#bebfa3",
|
||||
|
|
@ -2500,7 +2542,8 @@ SEEDRISE: function(pixel) {
|
|||
},
|
||||
temp: 22,
|
||||
category:"machines",
|
||||
insulate:true
|
||||
insulate:true,
|
||||
movable: false
|
||||
},
|
||||
"cooler": {
|
||||
color: "#111188",
|
||||
|
|
@ -2521,7 +2564,8 @@ SEEDRISE: function(pixel) {
|
|||
},
|
||||
temp: 18,
|
||||
category:"machines",
|
||||
insulate:true
|
||||
insulate:true,
|
||||
movable: false
|
||||
},
|
||||
"random": {
|
||||
color: ["#28BCD1","#9335E6","#E13294"],
|
||||
|
|
@ -2784,7 +2828,23 @@ SEEDRISE: function(pixel) {
|
|||
},
|
||||
"filler": {
|
||||
color: "#ae4cd9",
|
||||
behavior: behaviors.FILL,
|
||||
onShiftSelect: behaviors.CLONER_SHIFT_SELECT,
|
||||
tick: function(pixel) {
|
||||
doDefaults(pixel);
|
||||
|
||||
for (var i = 0; i < adjacentCoords.length; i++) {
|
||||
var coords = adjacentCoords[i];
|
||||
var x = pixel.x + coords[0];
|
||||
var y = pixel.y + coords[1];
|
||||
if (isEmpty(x,y)) {
|
||||
createPixel(pixel.element, x, y);
|
||||
if (pixel.clone) pixelMap[x][y].clone = pixel.clone;
|
||||
}
|
||||
}
|
||||
if (pixel.clone !== undefined && pixelTicks - pixel.start >= 2) {
|
||||
changePixel(pixel, choose(pixel.clone.split(",")));
|
||||
}
|
||||
},
|
||||
category:"special",
|
||||
excludeRandom: true,
|
||||
reactions: {
|
||||
|
|
@ -2794,7 +2854,8 @@ SEEDRISE: function(pixel) {
|
|||
"positron": { elem1:"vertical" },
|
||||
"plasma": { elem1:"armageddon", tempMin:500, charged:true }
|
||||
},
|
||||
density: 1834
|
||||
density: 1834,
|
||||
movable: false
|
||||
},
|
||||
"lattice": {
|
||||
color: "#cb4cd9",
|
||||
|
|
@ -3480,7 +3541,7 @@ SEEDRISE: function(pixel) {
|
|||
pixel.emit = false;
|
||||
}
|
||||
behaviors.FLY(pixel,function(firefly,newfly){
|
||||
if (newfly) {
|
||||
if (newfly && newfly.element === "firefly") {
|
||||
newfly.fff = firefly.fff;
|
||||
newfly.color = newfly.ffc||pixelColorPick(newfly,"#684841");
|
||||
newfly.glow = false;
|
||||
|
|
@ -4909,10 +4970,17 @@ SEEDRISE: function(pixel) {
|
|||
},
|
||||
"fuse": {
|
||||
color: "#825d38",
|
||||
onShiftSelect: function(element) {
|
||||
promptInput("Enter an element to turn into once charged.", function(r) {
|
||||
r = validateElementList(r);
|
||||
if (!r) return;
|
||||
currentElementProp = { clone:r }
|
||||
}, elemTitleCase(elements[element].name || element));
|
||||
},
|
||||
tick: function(pixel) {
|
||||
doDefaults(pixel);
|
||||
if (pixel.charge < 1) {
|
||||
changePixel(pixel,"flash");
|
||||
changePixel(pixel,pixel.clone ? choose(pixel.clone.split(",")) : "flash");
|
||||
pixel.charge = 0;
|
||||
}
|
||||
},
|
||||
|
|
@ -4981,6 +5049,7 @@ SEEDRISE: function(pixel) {
|
|||
},
|
||||
"udder": {
|
||||
color: "#ecb3f5",
|
||||
onShiftSelect: behaviors.CLONER_SHIFT_SELECT,
|
||||
tick: function(pixel) {
|
||||
if (!isEmpty(pixel.x+1,pixel.y,true)) {
|
||||
let pixel2 = pixelMap[pixel.x+1][pixel.y];
|
||||
|
|
@ -5747,8 +5816,7 @@ SEEDRISE: function(pixel) {
|
|||
behavior: behaviors.LIQUID,
|
||||
tick: function(pixel) {
|
||||
if (pixel.temp > 500 && !pixel.burning) {
|
||||
pixel.burning = true;
|
||||
pixel.burnStart = pixelTicks;
|
||||
burnPixel(pixel);
|
||||
}
|
||||
},
|
||||
reactions: {
|
||||
|
|
@ -7083,7 +7151,7 @@ SEEDRISE: function(pixel) {
|
|||
}
|
||||
},
|
||||
onClicked: behaviors.CLONE_ON_CLICK,
|
||||
ignore: ["cloner","slow_cloner","clone_powder","floating_cloner","wire","ewall","sensor","battery","fuse"],
|
||||
ignore: ["cloner","slow_cloner","clone_powder","floating_cloner","wire","wall","ewall","sensor","battery","fuse"],
|
||||
ignoreConduct:["fuse"],
|
||||
category:"machines",
|
||||
insulate:true,
|
||||
|
|
@ -7094,17 +7162,17 @@ SEEDRISE: function(pixel) {
|
|||
},
|
||||
"slow_cloner": {
|
||||
color: "#888800",
|
||||
behavior: [
|
||||
"XX|CF%10|XX",
|
||||
"CF%10|XX|CF%10",
|
||||
"XX|CF%10|XX"
|
||||
],
|
||||
tick: function(pixel) {
|
||||
doDefaults(pixel);
|
||||
behaviors.CLONER(pixel, 0.1);
|
||||
},
|
||||
onClicked: behaviors.CLONE_ON_CLICK,
|
||||
onShiftSelect: behaviors.CLONER_SHIFT_SELECT,
|
||||
ignore: ["cloner","ecloner","clone_powder","floating_cloner","wall","ewall"],
|
||||
category:"machines",
|
||||
insulate:true,
|
||||
hardness: 1
|
||||
hardness: 1,
|
||||
movable: false
|
||||
},
|
||||
"clone_powder": {
|
||||
color: "#f0f000",
|
||||
|
|
@ -7172,6 +7240,7 @@ SEEDRISE: function(pixel) {
|
|||
reactions: {
|
||||
"chlorine": { elem1:null },
|
||||
"liquid_chlorine": { elem1:null },
|
||||
"chlorine_ice": { elem1:null },
|
||||
"light": { elem1:null, chance:0.1 },
|
||||
"liquid_light": { elem1:null, chance:0.1 },
|
||||
"electric": { elem2:"malware" }
|
||||
|
|
@ -10249,6 +10318,7 @@ SEEDRISE: function(pixel) {
|
|||
state: "liquid",
|
||||
density: 1001,
|
||||
stain: -0.1,
|
||||
ignore: ["paper"],
|
||||
hidden: true,
|
||||
isFood: true
|
||||
},
|
||||
|
|
@ -11483,8 +11553,7 @@ SEEDRISE: function(pixel) {
|
|||
behavior: behaviors.LIQUID,
|
||||
tick: function(pixel) {
|
||||
if (!pixel.burning && pixel.temp >= 232) {
|
||||
pixel.burning = true;
|
||||
pixel.burnStart = pixelTicks;
|
||||
burnPixel(pixel);
|
||||
}
|
||||
},
|
||||
reactions: {
|
||||
|
|
@ -12645,8 +12714,7 @@ SEEDRISE: function(pixel) {
|
|||
tool: function(pixel) {
|
||||
pixel.temp += 10000;
|
||||
if (!pixel.burning && elements[pixel.element].burn) {
|
||||
pixel.burning = true;
|
||||
pixel.burnStart = pixelTicks;
|
||||
burnPixel(pixel)
|
||||
}
|
||||
pixelTempCheck(pixel);
|
||||
},
|
||||
|
|
@ -12821,8 +12889,7 @@ SEEDRISE: function(pixel) {
|
|||
color: "#c44f45",
|
||||
tick: function(pixel) {
|
||||
if ((pixel.temp > 1000 || pixel.charge) && !pixel.burning) {
|
||||
pixel.burning = true;
|
||||
pixel.burnStart = pixelTicks;
|
||||
burnPixel(pixel);
|
||||
}
|
||||
if (pixel.burning) {
|
||||
if (!tryMove(pixel, pixel.x, pixel.y-1)) {
|
||||
|
|
@ -13523,10 +13590,7 @@ SEEDRISE: function(pixel) {
|
|||
var x = coordsToShock[i][0];
|
||||
var y = coordsToShock[i][1];
|
||||
if (!isEmpty(x,y,true)) {
|
||||
var newpixel = pixelMap[x][y];
|
||||
if (elements[newpixel.element].conduct) {
|
||||
newpixel.charge = 1;
|
||||
}
|
||||
chargePixel(pixelMap[x][y]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -14077,7 +14141,11 @@ else if (!standalone && settings.lang !== null) {
|
|||
try {
|
||||
// try auto-setting language
|
||||
let code = navigator.languages ? navigator.languages[0] : navigator.language;
|
||||
if (code && !code.match(/^en-?/)) {
|
||||
if (code.match(/^en-?/)) { /*do nothing*/ }
|
||||
else if (code === "pt-BR") langCode = "pt_br";
|
||||
else if (code === "zh-CN") langCode = "zh_cn";
|
||||
else if (code === "zh-HK" || code === "zh-TW") langCode = "zh_hant";
|
||||
else if (code) {
|
||||
langCode = code.toLowerCase().split("-")[0];
|
||||
}
|
||||
}
|
||||
|
|
@ -14364,8 +14432,7 @@ function langKey(key,fallback,template) {
|
|||
pixel.start = pixelTicks;
|
||||
var elementInfo = elements[element];
|
||||
if (elementInfo.burning == true) {
|
||||
pixel.burning = true;
|
||||
pixel.burnStart = pixelTicks;
|
||||
burnPixel(pixel);
|
||||
}
|
||||
else if (pixel.burning && !elementInfo.burn) {
|
||||
delete pixel.burning;
|
||||
|
|
@ -14564,6 +14631,27 @@ function langKey(key,fallback,template) {
|
|||
}
|
||||
return null;
|
||||
}
|
||||
function chargePixel(pixel,amount=1) {
|
||||
var con = elements[pixel.element].conduct;
|
||||
if (con !== undefined) {
|
||||
if (Math.random() < con) { // If random number is less than conductivity
|
||||
if (elements[pixel.element].ignore && elements[pixel.element].ignore.indexOf(pixel.element) !== -1) {
|
||||
return;
|
||||
}
|
||||
if (!pixel.charge && !pixel.chargeCD) {
|
||||
pixel.charge = amount;
|
||||
if (elements[pixel.element].colorOn) {
|
||||
pixel.color = pixelColorPick(pixel);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
function burnPixel(pixel) {
|
||||
if (!elements[pixel.element].burn || pixel.burning) return;
|
||||
pixel.burning = true;
|
||||
pixel.burnStart = pixelTicks;
|
||||
}
|
||||
function pixelDistance(x1, y1, x2, y2) {
|
||||
let a = x1 - x2;
|
||||
let b = y1 - y2;
|
||||
|
|
@ -14932,20 +15020,10 @@ behaviorRules = {
|
|||
"SH": function() {
|
||||
if (!isEmpty(btemp.newCoords.x, btemp.newCoords.y, true)) {
|
||||
var newPixel = pixelMap[btemp.newCoords.x][btemp.newCoords.y];
|
||||
var con = elements[newPixel.element].conduct;
|
||||
if (con !== undefined) {
|
||||
if (Math.random() < con) { // If random number is less than conductivity
|
||||
if (btemp.info.ignore && btemp.info.ignore.indexOf(newPixel.element) !== -1) {
|
||||
chargePixel(newPixel, parseFloat(btemp.arg) || 1);
|
||||
if (btemp.arg !== null && newPixel.element !== btemp.arg) {
|
||||
return;
|
||||
}
|
||||
if (!newPixel.charge && !newPixel.chargeCD && (btemp.arg === null || newPixel.element == btemp.arg)) {
|
||||
newPixel.charge = (parseFloat(btemp.arg) || 1);
|
||||
if (elements[newPixel.element].colorOn) {
|
||||
newPixel.color = pixelColorPick(newPixel);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"ST": function() {
|
||||
|
|
@ -15392,8 +15470,7 @@ behaviorRules = {
|
|||
var newPixel = pixelMap[x][y];
|
||||
if (elements[newPixel.element].burn && !newPixel.burning) {
|
||||
if (Math.floor(Math.random()*100) < elements[newPixel.element].burn) {
|
||||
newPixel.burning = true;
|
||||
newPixel.burnStart = pixelTicks;
|
||||
burnPixel(newPixel);
|
||||
}
|
||||
}
|
||||
if (elements[newPixel.element].extinguish && elements[pixel.element].burning !== true) {
|
||||
|
|
@ -16275,8 +16352,7 @@ behaviorRules = {
|
|||
}
|
||||
}
|
||||
if (damage > 0.75 && info.burn) {
|
||||
pixel.burning = true;
|
||||
pixel.burnStart = pixelTicks;
|
||||
burnPixel(pixel);
|
||||
}
|
||||
pixel.temp += damage*radius*power;
|
||||
pixelTempCheck(pixel);
|
||||
|
|
@ -17178,13 +17254,13 @@ behaviorRules = {
|
|||
var deltaY = e.deltaY;
|
||||
if (settings.invertscroll) {
|
||||
if (deltaY > 0) { deltaY = 1; }
|
||||
else { deltaY = -1.5; }
|
||||
else { deltaY = -1; }
|
||||
}
|
||||
else {
|
||||
if (deltaY < 0) { deltaY = 1; }
|
||||
else { deltaY = -1.5; }
|
||||
else { deltaY = -1; }
|
||||
}
|
||||
mouseSize += Math.round(deltaY*1.5);
|
||||
mouseSize += Math.round(deltaY);
|
||||
checkMouseSize(true);
|
||||
}
|
||||
function chooseElementPrompt() {
|
||||
|
|
@ -17199,6 +17275,12 @@ behaviorRules = {
|
|||
selectCategory(elements[es].category);
|
||||
if (shiftDown && elements[currentElement].onShiftSelect) {
|
||||
elements[currentElement].onShiftSelect(currentElement);
|
||||
if (promptState) promptState.after = function() {
|
||||
if (currentElementProp) {
|
||||
let btn = document.getElementById("elementButton-"+currentElement);
|
||||
if (btn) btn.setAttribute("modified", "true");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
|
@ -17312,7 +17394,10 @@ behaviorRules = {
|
|||
elements[currentElement].onUnselect();
|
||||
}
|
||||
var e1 = document.getElementById("elementButton-"+currentElement);
|
||||
if (e1 !== null) { e1.setAttribute("current","false"); }
|
||||
if (e1 !== null) {
|
||||
e1.setAttribute("current","false");
|
||||
e1.setAttribute("modified","false");
|
||||
}
|
||||
prevElement = currentElement;
|
||||
currentElement = element;
|
||||
currentElementProp = null;
|
||||
|
|
@ -17420,6 +17505,12 @@ behaviorRules = {
|
|||
selectElement(this.getAttribute("element"));
|
||||
if (shiftDown && elements[currentElement].onShiftSelect) {
|
||||
elements[currentElement].onShiftSelect(currentElement);
|
||||
if (promptState) promptState.after = function() {
|
||||
if (currentElementProp) {
|
||||
let btn = document.getElementById("elementButton-"+currentElement);
|
||||
if (btn) btn.setAttribute("modified", "true");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -19191,6 +19282,7 @@ for (var k = 0; k < b0.split(" AND ").length; k++) {
|
|||
if (!url) return;
|
||||
if (!url.startsWith("http")) url = "https://"+url;
|
||||
setCanvasBackground(url);
|
||||
settings.bg = "#616161";
|
||||
});
|
||||
return;
|
||||
};
|
||||
|
|
@ -19359,9 +19451,13 @@ for (var k = 0; k < b0.split(" AND ").length; k++) {
|
|||
if (!promptState) return;
|
||||
if (!promptState.wasPaused && paused) togglePause();
|
||||
let handler = promptState.handler;
|
||||
let after = promptState.after;
|
||||
closeMenu();
|
||||
promptState = null;
|
||||
if (handler) handler(result);
|
||||
if (after) {
|
||||
after();
|
||||
}
|
||||
if (promptState && showingMenu !== "prompt") {
|
||||
showPromptScreen();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -136,7 +136,7 @@
|
|||
<tr><td>classic_textures.js</td><td>Use textures from early versions of the game</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>color_everything.js</td><td>Allows every element to have a custom color</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>death_count.js</td><td>Messages counting when Humans die</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>devsnacks.js</td><td>Extra food ingredients and recipes; Only Tea stuff currently</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<tr><td>devsnacks.js</td><td>Extra food ingredients and recipes</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
<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>Re-adds FOOLS Mode</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||
|
|
|
|||
13
style.css
13
style.css
|
|
@ -84,6 +84,10 @@ a:hover { text-decoration: underline; }
|
|||
#game {
|
||||
image-rendering: pixelated;
|
||||
max-width: 100vw;
|
||||
max-height: 100vh;
|
||||
transform: translateX(-50%);
|
||||
left: 50%;
|
||||
position: relative;
|
||||
}
|
||||
#bottomInfoBox { /* place under the game canvas */
|
||||
margin: 1.5em 50px 0px 50px;
|
||||
|
|
@ -458,6 +462,9 @@ input[type="button"]:active, input[type="button"]:active:hover {
|
|||
border-color:#5ee05e!important;
|
||||
box-shadow: 0px 1px 15px rgba(0, 255, 0, .75);
|
||||
}
|
||||
#controls .elementButton[modified="true"] {
|
||||
border-color:#0d62ff!important;
|
||||
}
|
||||
#controls button.bright[current="true"] {
|
||||
color: rgba(0, 0, 0, 1);
|
||||
}
|
||||
|
|
@ -791,7 +798,8 @@ button, input { /*Disable double tap zoom on mobile devices*/
|
|||
}
|
||||
#canvasDiv {
|
||||
position:relative;
|
||||
overflow-x:hidden
|
||||
overflow-x:hidden;
|
||||
background-color: var(--theme-opac75);
|
||||
}
|
||||
#colorSelector {
|
||||
position:absolute;
|
||||
|
|
@ -1069,3 +1077,6 @@ img {
|
|||
#controls .elementButton[current="true"]::after {
|
||||
background: #5ee05e;
|
||||
}
|
||||
#controls .elementButton[modified="true"]::after {
|
||||
background: #0d62ff;
|
||||
}
|
||||
Loading…
Reference in New Issue