Update survival.js

This commit is contained in:
slweeb 2024-02-10 23:06:10 -05:00
parent b638f12156
commit 38c5e3ba4a
1 changed files with 47 additions and 2 deletions

View File

@ -46,6 +46,7 @@ function survivalCount(element) {
} }
function survivalUpdate(element) { function survivalUpdate(element) {
var btn = document.getElementById("elementButton-"+element); var btn = document.getElementById("elementButton-"+element);
if (elements[element] && elements[element].category === "tools") { return }
if (btn) { if (btn) {
btn.innerHTML = btn.innerHTML.split("(")[0]+"("+settings.survival[element]+")"; btn.innerHTML = btn.innerHTML.split("(")[0]+"("+settings.survival[element]+")";
} }
@ -58,7 +59,9 @@ function survivalUpdate(element) {
runAfterAutogen(function(){ runAfterAutogen(function(){
elements.erase.name = "pick_up"; elements.erase.name = "pick_up";
delete elements.paint.category; delete elements.paint.category;
delete elements.lookup.category;
delete elements.pick; delete elements.pick;
elements.radiation.category = "tools";
for (var element in elements) { for (var element in elements) {
if (elements[element].category !== "tools") { if (elements[element].category !== "tools") {
elements[element].hidden = true; elements[element].hidden = true;
@ -105,6 +108,44 @@ elements.cloner.tick = function(pixel) {
} }
} }
}; };
elements.cloner.ignore = elements.cloner.ignore.concat(["gold","gold_coin","molten_gold"]);
elements.smash.tool = function(pixel) {
if (elements[pixel.element].seed === true) { return }
if (elements[pixel.element].breakInto !== undefined || (elements[pixel.element].seed !== undefined && elements[pixel.element].seed !== true)) {
// times 0.25 if not shiftDown else 1
if (Math.random() < (elements[pixel.element].hardness || 1) * (shiftDown ? 1 : 0.25)) {
var breakInto = elements[pixel.element].breakInto;
if (!breakInto && elements[pixel.element].seed) {
if (Math.random() < 0.1) {
breakInto = elements[pixel.element].seed;
}
else {
breakInto = null;
}
}
// if breakInto is an array, pick one
if (Array.isArray(breakInto)) {
breakInto = breakInto[Math.floor(Math.random() * breakInto.length)];
}
if (breakInto === null) {
if (elements[pixel.element].seed) {
breakInto = elements[pixel.element].seed;
}
else {
deletePixel(pixel.x,pixel.y);
return;
}
}
var oldelement = pixel.element;
changePixel(pixel,breakInto);
pixelTempCheck(pixel);
if (elements[oldelement].breakIntoColor) {
pixel.color = pixelColorPick(pixel, elements[oldelement].breakIntoColor);
}
}
}
};
elementWorth = { elementWorth = {
"gold_coin": 1, "gold_coin": 1,
@ -112,12 +153,16 @@ elementWorth = {
"sap": 5, "sap": 5,
"cloner": 0, "cloner": 0,
"wall": 0, "wall": 0,
"fire": 0,
"smoke": 0,
"plasma": 0,
} }
elements.sell = { elements.sell = {
color: ["#fff0b5","#ffe680","#c48821","#986a1a","#eca832","#f0bb62"], color: ["#fff0b5","#ffe680","#c48821","#986a1a","#eca832","#f0bb62"],
tool: function(pixel) { tool: function(pixel) {
if (elementWorth[pixel.element] === 0) { return; } if (elementWorth[pixel.element] === 0) { return; }
deletePixel(pixel.x,pixel.y); deletePixel(pixel.x,pixel.y);
if (elementWorth[pixel.element] === -1) { return; }
survivalAdd("gold_coin",elementWorth[pixel.element]||1); survivalAdd("gold_coin",elementWorth[pixel.element]||1);
}, },
category: "tools", category: "tools",
@ -240,10 +285,10 @@ runAfterLoad(function(){
} }
} }
else if (isEmpty(x, y)) { else if (isEmpty(x, y)) {
if (survivalCount(currentElement) < 1) { if (survivalCount(currentElement) < 1 && elements[currentElement].category !== "tools") {
return; return;
} }
survivalRemove(currentElement,1); if (elements[currentElement].category !== "tools") { survivalRemove(currentElement,1); }
currentPixels.push(new Pixel(x, y, currentElement)); currentPixels.push(new Pixel(x, y, currentElement));
if (elements[currentElement].customColor || elements[currentElement].singleColor) { if (elements[currentElement].customColor || elements[currentElement].singleColor) {
pixelMap[x][y].color = pixelColorPick(currentElement,currentColor); pixelMap[x][y].color = pixelColorPick(currentElement,currentColor);